Guides
Calls
Read call activity — filtered lists, statuses, per-assistant summaries, bulk export, and full single-call payloads.
The calls API is your read-only window into everything your assistants have handled on the phone: transcripts, summaries, analysis, cost, and recording links.
Read-only
There is no API to place calls. Calls are created by the platform when someone dials one of your phone numbers; these endpoints only read the results.
| Method | Path | Purpose |
|---|---|---|
| GET | /calls | List calls with filters and pagination |
| GET | /calls/statuses | Distinct call statuses seen in your tenant |
| GET | /calls/summary-by-assistant | Per-assistant call summaries |
| GET | /calls/export | Bulk export (up to 10,000 rows, lean fields) |
| GET | /calls/{id} | One call with the full payload |
List calls#
GET /calls
| Query param | Type | Required | Description |
|---|---|---|---|
limit | number | No | Page size, max 500 (default 50) |
offset | number | No | Items to skip (default 0) |
assistantId | UUID | No | Only calls handled by this assistant |
status | string | No | Filter by status (values from /calls/statuses) |
dateFrom / dateTo | ISO 8601 datetime (with offset) | No | Time window, e.g. 2026-07-01T00:00:00+00:00 |
durationMin / durationMax | number | No | Call duration bounds |
sortBy | startedAt | createdAt | No | Sort key (default startedAt) |
search | string | No | Free-text search |
curl "https://core-api.heysadie.ai/calls?assistantId=ASSISTANT_ID&dateFrom=2026-07-01T00:00:00%2B00:00&limit=100" \
-H "Authorization: ApiKey YOUR_API_KEY"Discover statuses#
GET /calls/statuses returns the distinct status strings that actually occur in your tenant's call history — use it to build filter dropdowns rather than hard-coding values.
curl https://core-api.heysadie.ai/calls/statuses \
-H "Authorization: ApiKey YOUR_API_KEY"Per-assistant summaries#
GET /calls/summary-by-assistant returns one row per assistant:
| Field | Description |
|---|---|
assistantId / assistantName | Which assistant |
totalCalls | Total call count |
avgDuration | Average duration (nullable) |
successRate | Success rate |
curl https://core-api.heysadie.ai/calls/summary-by-assistant \
-H "Authorization: ApiKey YOUR_API_KEY"Export calls in bulk#
GET /calls/export returns up to 10,000 calls as JSON in one response. It accepts the same filters as the list endpoint (assistantId, status, dateFrom, dateTo, durationMin, durationMax, search) but no pagination params.
Lean rows only
Export rows exclude the heavy fields — no transcript, messages, analysis, summary, or recording URL. You get identifiers, timing, status, cost, and duration. Fetch GET /calls/{id} for the full payload of any call you need in depth. Use date-range filters to stay under the 10,000-row cap on busy tenants.
curl "https://core-api.heysadie.ai/calls/export?dateFrom=2026-07-01T00:00:00%2B00:00&dateTo=2026-08-01T00:00:00%2B00:00" \
-H "Authorization: ApiKey YOUR_API_KEY"Get one call#
GET /calls/{id} returns the full call record:
| Field | Description |
|---|---|
id, cid | Call identifiers |
type, status, endedReason | What kind of call, how it ended |
startedAt, endedAt, callDuration | Timing |
transcript, messages | Full transcript and message log |
summary, analysis | AI-generated summary and structured analysis |
recordingUrl | Recording link (when recording is enabled) |
cost, costBreakdown | Billing detail |
customerNumber | The caller's number |
assistantId, assistantName | Which assistant handled it |
supervisorAnswered | Whether a human supervisor answered (transfers) |
createdAt, updatedAt | Record timestamps |
curl https://core-api.heysadie.ai/calls/CALL_ID \
-H "Authorization: ApiKey YOUR_API_KEY"Next steps#
- Conversations — the same activity view for messaging channels.
- End-of-call report webhook — get results pushed to your
serverUrlinstead of polling.