REST API Reference
Full read/write access to the adaptlive canonical schema. Every entity follows the same five-verb pattern with consistent authentication, pagination, and error handling.
Base URL
https://adaptlive.app/api/v1Authentication
Every request requires a Bearer token in the Authorization header. API keys are minted from the developer portal at /portal/api-keys.
curl https://adaptlive.app/api/v1/work-records \
-H "Authorization: Bearer ak_live_XXXXXXXXXXXXXXXXXXXXXXXXXX"API Key Scopes
READ— List and retrieve records. Cannot create or modify.WRITE— Full CRUD access to records. Cannot manage organization settings.ADMIN— Full access including organization management. Owner only.
Request Format
All request and response bodies are JSON. Set Content-Type: application/json on POST and PATCH requests.
Idempotency
For POST, PATCH, and PUT requests, include an Idempotency-Key header (UUID format). We store the response for 24 hours and replay it verbatim on duplicate keys—safe to retry through proxies and job runners.
POST /v1/work-records
Authorization: Bearer ak_live_...
Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000
Content-Type: application/json
{
"kind": "JOB",
"title": "Emergency water leak repair",
"customerId": "cust_abc123"
}Reusing the same key with a different request body returns 422 Unprocessable Entity with code idempotency_conflict.
Pagination
List endpoints use cursor-based pagination. Pass limit (default 50, max 100) and cursor (from previous response) as query parameters.
GET /v1/work-records?limit=25&cursor=eyJpZCI6ImNreDEyMyJ9
{
"data": [...],
"pagination": {
"limit": 25,
"nextCursor": "eyJpZCI6ImNreDQ1NiJ9"
}
}When nextCursor is null, you've reached the end of the result set.
Endpoints
Every canonical entity exposes the same REST surface. Methods not listed are not supported for that entity.
Work records
/v1/work-recordsJobs, appointments, cases, matters, deliveries — the unit of work your business performs. `kind` filter for the Zapier kind-specific triggers.
Work record search
/v1/work-records/searchFree-text + filter search. Powers the Zapier `find_work_record` search action.
People
/v1/people/by-phone, /v1/people/upsertLookup by phone (Zapier search) + idempotent upsert by primary phone / email (Zapier create-or-update action).
Phone numbers
/v1/phone-numbersNumbers owned by your org. Backs the Zapier `Send SMS` action's From dropdown.
SMS
/v1/sms, /v1/messagesPolling endpoint for `sms_received` / `sms_sent` triggers and the headline `Send SMS` create action.
Voicemails
/v1/voicemailsCaller voicemails with transcripts.
Drafts
/v1/draftsPost-call drafts pending human approval. `?status=approved` drives the Zapier `draft_approved` trigger.
Facts
/v1/fact-definitions, /v1/facts/{id}/confirm/promote/rejectList your org's fact definitions + confirm / promote / reject proposed facts captured during calls.
Signals
/v1/signalsHigh-confidence event signals — complaints, upsell opportunities, escalations.
Webhooks
/v1/webhooks, /v1/webhooks/{id}, /v1/webhooks/{id}/deliveries/...Subscription CRUD + delivery introspection + replay. Requires ADMIN scope.
Call surface
/v1/calls/{id}/surfaceStable read model combining the CallSession, drafted WorkRecord, captured facts, transcript pointer, and surface events.
Generic schema CRUD
/v1/{entity}, /v1/{entity}/{id}Long-tail entities — parties, integration-connections, external-refs, field-values, field-history-entries, etc. Slugs from GET /v1/schema.
Response Format
All responses include a request ID for debugging and support:
// Success (200, 201)
{
"requestId": "req_abc123",
"data": { ... }
}
// Error (4xx, 5xx)
{
"requestId": "req_abc123",
"error": {
"code": "not_found",
"message": "Party not found."
}
}Rate limits
adaptlive throttles abusive callers. Specific limits aren't advertised today and may be tightened without notice; if you expect sustained high volume, email developers@adaptlive.app before launch so we can carve out headroom.
When throttled you'll get 429 Too Many Requests with error.code = "rate_limited" plus a Retry-After header. See Authentication → Rate limits for the response shape and X-RateLimit-* header details.
Interactive API Reference
Explore every endpoint, schema, and request/response shape in an interactive viewer generated directly from our OpenAPI 3.1 specification.
