What changed. GET /v1/sites is now GET /sites, and the same for the other 58 endpoints: pages, releases, media, forms, blog, funnels, analytics, audits, integrations, contacts and the member admin routes. The old paths return 404.
Why. The API version has been negotiated with the x-ferrgrowth-api-version header since the contract-version work, so the /v1 segment named a version nothing read. Two ways to say the same thing meant a client could pin one and get the other, and the path won every time.
What you have to do. Point your base URL at the host without the prefix and keep sending the version header:
curl -H "x-ferrgrowth-api-version: 2026-08-04" \
-H "authorization: Bearer ferr_..." \
https://api.ferrgrowth.com/sites
Nothing your visitors touch breaks. POST /v1/server-events, the analytics and form endpoints inlined into published pages, the heatmap script and the site-member endpoints all stay mounted next to their new paths. A page published before this release keeps recording analytics and accepting form submissions, and a backend already posting server events keeps working. Those aliases are deprecated: the settings page shows the new URLs, and the old ones go away once every site has been republished.