Versioning
The API is versioned in the path (/v1). We add fields and endpoints without bumping the version;
these are backward-compatible and safe to receive. We treat the following as non-breaking, so your
integration should tolerate them:
- New fields on existing responses.
- New endpoints, new optional request parameters.
- New
objecttypes, new enum values, new webhook event types.
Deprecation policy
When we need to retire an endpoint or field, the API keeps serving it and warns you first via standard RFC 8594 headers, so nothing breaks silently:
Watch for these headers in your integration’s logs and migrate before the
Sunset date.
Recent changes
Custom objects
- Custom objects —
GET /v1/objectslists the objects your workspace defined andGET /v1/objects/{key}returns one object’s schema (properties, stages, associations). - Records — list (
GET /v1/objects/{key}/records, cursor pagination,q,stage,owner_idand property filters such asfilter[premium][gte]=100&filter[line][in]=auto,life), create, get, update and delete records.POST /v1/objects/{key}/records/upsertcreates or updates by a unique property (id_property). - Links and notes — relate a record to contacts, companies, deals, tickets or other records
(
/records/{id}/links) and add notes (/records/{id}/notes).?expand=linksembeds them. - Webhooks — new events
record.created,record.updated(with the changed keys),record.stage_changed(withfromandto) andrecord.deleted. - Scopes —
objects:readandobjects:write. - Objects provided by a marketplace integration have
integration_id; their records, stages and managed properties are written by the integration, so those writes return403 managed_object.
Async jobs, messaging extensions, best practices
- Async jobs —
POST /v1/contacts/bulk,POST /v1/contacts/import, andPOST /v1/analytics/exportnow return202with a job you poll atGET /v1/jobs/{id}. - Messaging extensions —
POST /v1/messagesaccepts a raw recipient viato.identifier(resolves or creates the contact) and new content types on WhatsApp:interactive,location,contacts, andreaction. - Idempotency — send an
Idempotency-Keyheader on writes to make retries safe. - Expand —
?expand=contact(andexpand=companyon deals) embeds related resources. - Observability — inspect usage at
GET /v1/usageand the write audit trail atGET /v1/audit-logs.
Public API v1
- Initial release: contacts, conversations, messages, channels, inboxes, campaigns, analytics, webhooks, and the CRM resources (deals, tasks, companies, tickets, notes, segments, macros).
