Changelog and versioning
Versioning
- The public API is versioned in the path: every route is under
/v1. There is no /api prefix.
- Additive changes ship in
/v1 without notice: new routes, new optional fields in requests, new fields in responses and new enum values. Write clients that ignore unknown fields.
- Breaking changes (removing or renaming a route or a field, changing a type, making an optional field required, tightening a scope) ship as a new version (
/v2), announced here at least 90 days before the old one stops, and the old version keeps working during that window.
- The OpenAPI document is generated from the running code, so it always describes the version you are calling.
2026-09
- Public API v1. Every route now lives under
/v1, in lower case with hyphens, with plural collections, the page always addressed by its id, lists with limit, cursor and sort answering {items, nextCursor}, batches with PUT on the collection and DELETE ?ids=, and errors in application/problem+json. The account comes from the token, or from ?accountId= when the token reaches more than one account. The routes that existed before /v1 keep working for now, are marked deprecated in /swagger/v1/swagger.json with their successor, and left this reference; they will be removed once nobody calls them.
- API tokens with scopes. Tokens
cf_live_... created in Configurações > Tokens de API, bound to a user, to scopes by area (area:read or area:write) and optionally to one account. Rate limit per token of 120 requests per minute per API instance, with 429 and Retry-After.
- OpenAPI for tokens.
/swagger/agents/swagger.json lists only the /v1 routes a token can call, each with the scope it needs in x-required-scope.
- Documentation portal. This site: guides, the interactive reference with test requests and the Postman collection.
PATCH clears with null. A field left out of a PATCH body is kept; an explicit null clears an optional field and is refused with 400 on a required one. PUT /v1/broadcasts/{broadcastId} replaces the whole broadcast.
- Counts. Lists that count their filter return
total next to items (GET /v1/schemas with ?includeTotal=true), and batch DELETE ...?ids= of variables, slugs and UTM answers 200 {"deleted": n}.
- More fields.
pageReferenceId in alerts, connections, Meta app pages and broadcasts; tokenId in alerts; region in countries; status of each account in GET /v1/me; the current referenceId, providerId, categoryId, status and language of the pages cited by flows, journeys and variable checks. GET /v1/pages sorts by leadsToday, leads7d, firstReply, defaultReply and sequence; GET /v1/accounts/utm and GET /v1/accounts/language-slugs read every active account at once; GET /v1/meta/template-library pages with Meta's cursor.