Skip to main content

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 object types, 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/objects lists the objects your workspace defined and GET /v1/objects/{key} returns one object’s schema (properties, stages, associations).
  • Records — list (GET /v1/objects/{key}/records, cursor pagination, q, stage, owner_id and property filters such as filter[premium][gte]=100&filter[line][in]=auto,life), create, get, update and delete records. POST /v1/objects/{key}/records/upsert creates 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=links embeds them.
  • Webhooks — new events record.created, record.updated (with the changed keys), record.stage_changed (with from and to) and record.deleted.
  • Scopes — objects:read and objects:write.
  • Objects provided by a marketplace integration have integration_id; their records, stages and managed properties are written by the integration, so those writes return 403 managed_object.
Async jobs, messaging extensions, best practices
  • Async jobs — POST /v1/contacts/bulk, POST /v1/contacts/import, and POST /v1/analytics/export now return 202 with a job you poll at GET /v1/jobs/{id}.
  • Messaging extensions — POST /v1/messages accepts a raw recipient via to.identifier (resolves or creates the contact) and new content types on WhatsApp: interactive, location, contacts, and reaction.
  • Idempotency — send an Idempotency-Key header on writes to make retries safe.
  • Expand — ?expand=contact (and expand=company on deals) embeds related resources.
  • Observability — inspect usage at GET /v1/usage and the write audit trail at GET /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).