Conventions
- Content type. All requests and responses are
application/json. We don’t accept form-encoded bodies. - Time. All timestamps are returned both as Unix milliseconds (
ts,lastEventAt,createdAt) and ISO 8601 strings (tsIso,lastEventAtIso,createdAtIso). Pick whichever your stack prefers. - Identifiers. Conversation ids look like
conv_<16hex>, event ids likeevt_<26char ULID>, account ids likeacc_<16hex>. They’re opaque; treat as strings. - Pagination. Listing endpoints return
nextCursor(ornull) alongside the page. Pass it back ascursoron the next call. - Errors. JSON with an
errorstring and an optionaldetailsfield. See Errors for the full table.
Endpoints
POST /send
Send a new conversation, or reply by
convId. Idempotent on
Idempotency-Key.GET /conversations
List threads in an identity with filters and pagination.
GET /conversations/:convId
Full timeline for one conversation.
GET /events
Cursor-based stream of every customer-observable event on an identity.
Long-poll up to 25 seconds.
Webhooks
Configure
Set the URL, manage the signing secret, retry behavior.
Verify
HMAC-SHA256 signature verification with a 5-minute window.