API and webhooks

Build on the same model the console uses

The public API v1 covers contacts, conversations, messages, calls, leads, tickets, tasks, reports, exports and more: 47 operations, described in an OpenAPI 3.1 document.

Designed for integrations that keep working

  • Scoped tokens

    Bearer tokens with only the scopes they need, made in the console by an admin who has passed MFA, and never accepted in a URL.

  • Idempotent writes

    Send an Idempotency-Key and a retry gets the first answer, never a second write.

  • Stable pagination

    Cursor pagination on a stable order: inserts while you page never repeat or skip a row.

  • Clear rate limits

    A per-token limit with RateLimit headers on every answer and Retry-After on a 429.

  • Signed webhooks

    33 event types, signed with HMAC-SHA-256, retried with back-off, dead-lettered and replayable.

  • CRM connectors

    Contact sync with a field mapping, screen-pop lookups and structured write-back of outcomes.

First call in three steps

  1. Create a token

    In the console's Developer page, with the scopes your integration needs.

  2. Call the API

    Send it as Authorization: Bearer cck_... to your console's address under /api/v1/.

  3. Subscribe to events

    Add a webhook endpoint and verify each delivery's signature. The webhooks guide has the code.

Questions about the API

Is there an OpenAPI document?

Yes, OpenAPI 3.1, generated from the same route table that serves the API, so it cannot drift from it. Download it or browse the reference.

Can webhooks reach internal systems?

Webhook URLs must use https and resolve to public addresses, and redirects are not followed.

Can we create leads and calls from our CRM?

Yes. Leads go to speed-to-lead sources, and click-to-call starts with the agent and then dials the customer, through the same checks as the dialler.

Start with the reference