Download OpenAPI specification:
External, token-authenticated API for customer integrations.
Create/revoke tokens and configure webhooks in the app: Settings → REST API
conversations: list/get conversationstranscripts: per-conversation transcriptinsights: per-conversation insights/topicsrecordings: per-conversation recording URL (also requires token setting include_recordings=true)users, teams, departments: reference endpointsWe send conversation.completed webhooks when a conversation is fully processed.
Requests are HMAC-SHA256 signed using your webhook secret.
X-Webhook-Signature: sha256=<HMAC-SHA256 of raw request body>X-Webhook-Event: conversation.completedX-Webhook-Delivery-Id: <uuid>X-Webhook-Timestamp: <unix timestamp>{
"event": "conversation.completed",
"timestamp": "2026-02-08T00:00:00.000Z",
"data": {
"conversation": {
"id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"title": "Discovery call — Acme",
"company": "Acme",
"date": "2026-02-07T09:00:00.000Z",
"duration": 1800,
"medium": "call",
"sentiment": "positive",
"conversation_type": "sales",
"summary": "Summary text...",
"department": { "id": "11111111-0000-0000-0000-000000000001", "name": "B2B Sales" },
"user": { "id": "67c869eb-30b1-4eb3-bd2c-be8c912a9827", "name": "Erik Lindström", "email": "erik.lindstrom@telco-demo.test" },
"participants": [{ "name": "Jane Doe", "email": "jane@acme.com", "role": "customer" }]
}
},
"_meta": {
"token_prefix": "mt_ab12cd34",
"delivery_id": "bbbbbbbb-cccc-dddd-eeee-ffffffffffff"
}
}
Returns basic account info and branding fields. Useful for verifying token/account context.
{- "id": "fb1919a3-3ba7-4427-b04e-b49a592804fc",
- "name": "Telco Demo",
- "created_at": "2026-01-10T17:31:07.548Z",
- "updated_at": "2026-02-07T12:00:00.000Z",
- "brand_name": "Dstny",
- "brand_logo_url": null,
- "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Lists active users in the account. Requires scope: users.
{- "users": [
- {
- "id": "67c869eb-30b1-4eb3-bd2c-be8c912a9827",
- "full_name": "Erik Lindström",
- "email": "erik.lindstrom@telco-demo.test",
- "role": "owner",
- "team_id": "11111111-2222-3333-4444-555555555555",
- "team_name": "Sales"
}
], - "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}{- "teams": [
- {
- "id": "22222222-3333-4444-5555-666666666666",
- "name": "Sales",
- "created_at": "2026-01-10T17:31:07.548Z",
- "members": [
- {
- "id": "67c869eb-30b1-4eb3-bd2c-be8c912a9827",
- "full_name": "Erik Lindström",
- "email": "erik.lindstrom@telco-demo.test"
}
]
}
], - "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Lists enabled departments. Requires scope: departments.
{- "departments": [
- {
- "id": "11111111-0000-0000-0000-000000000001",
- "name": "B2B Sales",
- "slug": "b2b-sales",
- "enabled": true,
- "display_name": "Sales"
}
], - "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Lists conversations in the last 30 days. Cursor pagination, max 25/page. Requires scope: conversations.
| cursor | string Pagination cursor (ISO timestamp). Use |
| limit | string Results per page (max 25). Default: 25. |
| department_id | string Filter by department UUID. |
| medium | string Filter by medium. One of: call, video, email, chat, live. |
| date_from | string Filter from date (ISO timestamp). |
| date_to | string Filter to date (ISO timestamp). |
| user_id | string Filter by user UUID. |
{- "conversations": [
- {
- "id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "title": "Discovery call — Acme",
- "company": "Acme",
- "date": "2026-02-07T09:00:00.000Z",
- "duration": 1800,
- "medium": "call",
- "sentiment": "positive",
- "conversation_type": "sales",
- "department": {
- "id": "11111111-0000-0000-0000-000000000001",
- "name": "B2B Sales"
}, - "user": {
- "id": "67c869eb-30b1-4eb3-bd2c-be8c912a9827",
- "name": "Erik Lindström",
- "email": "erik.lindstrom@telco-demo.test"
}
}
], - "pagination": {
- "has_more": false,
- "next_cursor": null,
- "limit": 25
}, - "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Returns conversation detail (summary, participants). Optionally includes transcript/insights if requested and the token has those scopes.
| id required | string Conversation UUID. |
| include_transcript | string When true, include transcript data (requires scope: transcripts). |
| include_insights | string When true, include insights/topics (requires scope: insights). |
{- "id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "title": "Discovery call — Acme",
- "company": "Acme",
- "date": "2026-02-07T09:00:00.000Z",
- "duration": 1800,
- "medium": "call",
- "sentiment": "positive",
- "conversation_type": "sales",
- "summary": "Summary text...",
- "department": {
- "id": "11111111-0000-0000-0000-000000000001",
- "name": "B2B Sales"
}, - "user": {
- "id": "67c869eb-30b1-4eb3-bd2c-be8c912a9827",
- "name": "Erik Lindström",
- "email": "erik.lindstrom@telco-demo.test"
}, - "participants": [
- {
- "name": "Jane Doe",
- "email": "jane@acme.com",
- "role": "customer"
}
], - "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Returns transcript data for a single conversation. Requires scope: transcripts.
| id required | string Conversation UUID. |
{- "conversation_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "transcript": {
- "segments": [
- {
- "speaker": "Erik",
- "text": "Hello!",
- "start": 0,
- "end": 1.2
}
]
}, - "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Returns extracted insights for a single conversation. Requires scope: insights.
| id required | string Conversation UUID. |
{- "conversation_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "insights": [
- {
- "id": "99999999-aaaa-bbbb-cccc-dddddddddddd",
- "insight_type": "kpi",
- "insight_text": "Customer requested SSO.",
- "kpi_slug": "sso",
- "kpi_label": "SSO",
- "impact": "high",
- "start_time_seconds": 120,
- "end_time_seconds": 165,
- "message_index": 14
}
], - "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Returns a recording URL if available. Requires scope: recordings and token setting include_recordings=true.
| id required | string Conversation UUID. |
{- "conversation_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "has_recording": true,
- "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Returns the stored AI summary for a single conversation. Requires scope: conversations.
| id required | string Conversation UUID. |
{- "conversation_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "summary": "Customer wants a follow-up on pricing and onboarding timeline.",
- "created_at": "2026-02-07T09:04:50.000Z",
- "updated_at": "2026-02-07T09:05:10.000Z",
- "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Requests a notetaker to join an ad-hoc Zoom, Microsoft Teams, or Google Meet URL immediately. Requires scope: notetaker.
| meeting_url required | string Zoom, Microsoft Teams, or Google Meet URL. |
| meeting_title | string Optional title stored with the notetaker request. |
| meeting_start_time | string <date-time> Optional scheduled start time if this is not an immediate join. |
| meeting_end_time | string <date-time> Optional scheduled end time. |
| meeting_platform | string Optional platform hint. The backend also infers this from the URL. |
{- "meeting_title": "Customer sync",
- "meeting_start_time": "2019-08-24T14:15:22Z",
- "meeting_end_time": "2019-08-24T14:15:22Z",
- "meeting_platform": "google_meet"
}{- "id": "cccccccc-dddd-eeee-ffff-111111111111",
- "provider_bot_id": "bot_123",
- "meeting_platform": "google_meet",
- "meeting_title": null,
- "meeting_start_time": null,
- "status": "joining",
- "status_message": null,
- "conversation_id": null,
- "created_at": "2026-02-07T09:04:50.000Z",
- "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}Lists recent webhook deliveries (last 7 days).
| token_id | string Filter by API token UUID. |
{- "deliveries": [
- {
- "id": "bbbbbbbb-cccc-dddd-eeee-ffffffffffff",
- "event_type": "conversation.completed",
- "resource_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "status": "delivered",
- "attempts": 1,
- "last_attempt_at": "2026-02-07T09:05:00.000Z",
- "delivered_at": "2026-02-07T09:05:00.000Z",
- "response_status": 200,
- "created_at": "2026-02-07T09:04:50.000Z"
}
], - "_meta": {
- "token_prefix": "mt_ab12cd34",
- "timestamp": "2026-02-08T00:00:00.000Z"
}
}