API RU
Early access. API keys are issued on request. How to get a key

Every API change is listed here: new routes, fields, values and fixes.

#410 error on lists

The detail text of the cursor_expired error now covers both lists and the event feed: for a list, start again without cursor; for the feed, run recovery. The new text reads: "The cursor expired. Restart a list without cursor. For the event feed, record the gap, request start=now, reconcile campaigns and leads, then resume the feed". The code and status are unchanged.

#v1, early access

The first version of the public API. Read-only access with an organization API key.

  • Routes: GET /v1/me, GET /v1/workspaces, GET /v1/campaigns, GET /v1/campaigns/{id}, GET /v1/leads, GET /v1/leads/{id}, GET /v1/leads/{id}/messages, GET /v1/events.
  • Key permissions: campaigns:read, leads:read, messages:read, events:read, plus a separate "Message text" checkbox.
  • Key scope by workspace and campaign, expiration date, IP allowlist, rotation with an overlap period, revocation and a request log.
  • An event feed with lead.first_message_sent and lead.replied, a 30-day cursor, and the start=now and include_text parameters.
  • Errors in RFC 9457 format with a Request-Id header, and rate limits in weight units with RateLimit headers.
  • An OpenAPI 3.1 specification.
  • Materials for AI agents: llms.txt, llms-full.txt, Markdown for every page, an agent prompt and a "Copy page" menu.

Known early access limitations:

  • delivery_state with the values waiting_queue and failed, and automation_state with the value completed, are not returned yet.
  • Completeness of the conversation archive and the event feed is not guaranteed: check meta.completeness and meta.coverage.
  • The API can't write data yet. Plans are described in What's next.