adaptlive
← Documentation

Quickstart

Five minutes from no integration to your first webhook. Mint an API key, call the REST API, and subscribe to call + SMS + work-record events.

Prerequisites

1

Mint an API key

In the developer portal go to /portal/api-keys and click Create key. Pick a scope:

  • READ — list / get endpoints only. Safe for analytics jobs and read-only integrations.
  • WRITE — adds the create / update / upsert endpoints. The default for most apps.
  • ADMIN — adds webhook subscription CRUD and other org-administration endpoints.

Keys are shown once at mint time. Format: ak_live_<32-char base32> for production or ak_test_… for the sandbox.

Important: Copy the key right away — we store only a SHA-256 hash, so it cannot be recovered. If you lose it, revoke + mint a new one.

bash
# Store the key as an environment variable
export ADAPT_API_KEY="ak_live_..."
2

Make your first request

Hit GET /v1/schema to confirm the key works and to see every canonical entity exposed to your workspace.

bash
curl https://adaptlive.app/api/v1/schema \
  -H "Authorization: Bearer $ADAPT_API_KEY"

Response shape — every API response follows the same envelope:

json
{
  "data": {
    "entities": [
      { "slug": "work-records", "modelName": "WorkRecord", "writable": true, "scalarFields": [ ... ] },
      { "slug": "field-values",  "modelName": "FieldValue",  "writable": true, "scalarFields": [ ... ] },
      ...
    ]
  },
  "meta": { "requestId": "f4c0…-…-…-…" }
}

Now try a list endpoint — work records (jobs, appointments, cases, matters, deliveries):

bash
curl "https://adaptlive.app/api/v1/work-records?limit=10" \
  -H "Authorization: Bearer $ADAPT_API_KEY"

List responses add a pagination block — pass ?cursor=… with the value from pagination.nextCursor to walk the page.

3

Subscribe to webhooks

Webhooks push events to your endpoint over HTTPS, signed with an HMAC-SHA256 secret. Send eventTypes: [] to subscribe to every event type, or list specific ones from the event catalog.

bash
curl -X POST https://adaptlive.app/api/v1/webhooks \
  -H "Authorization: Bearer $ADAPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-app.example.com/webhooks/adaptlive",
    "eventTypes": ["call.ended", "sms.received", "work_record.created"]
  }'

The response includes the full signing secret — store it now, it is shown only once:

json
{
  "data": {
    "id": "5d8f…-…",
    "url": "https://your-app.example.com/webhooks/adaptlive",
    "eventTypes": ["call.ended", "sms.received", "work_record.created"],
    "status": "active",
    "signingSecret": "whsec_<48 hex chars>"
  },
  "meta": { "requestId": "…" }
}

Verify incoming deliveries against the secret — adaptlive sends the signature in the X-AdaptLive-Signature header using the same t=<timestamp>,v1=<hex> shape Stripe / Linear / Vercel use. The Webhooks reference has copy-paste verifier code in Node, Python, Ruby, and Go.

4

Explore the rest of the API

The full machine-readable contract lives at /openapi.json — feed it into openapi-typescript, openapi-fetch, Postman, Insomnia, or Stoplight to generate a typed client in one command. The dynamic equivalent at /api/v1/openapi.json always reflects the deployed shape.

Where to next

Stuck?

Email developers@adaptlive.app with your request ID (every response includes one in meta.requestId) and we'll dig in.

We use essential cookies to keep the app secure. Optional cookies help us improve reliability and measure campaigns. Cookie policy