Webhooks
Events
Subscribe with call.* and message.*, or by event name. The * subscription does not include them.
| Event | Sent when |
|---|---|
call.completed | A call ends |
call.updated | A recording, transcript or summary is added |
message.sent | A text is sent (once per text) |
message.status | A sent text is delivered or fails |
message.received | A text is received |
Call
json
{
"call_id": "7c1e9f2a-4b3d-4e5f-8a6b-1c2d3e4f5a6b",
"direction": "outbound",
"from": "+15134388255",
"to": "+15135550123",
"line": "+15134388255",
"contact_phone": "+15135550123",
"user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user_email": "sarah@example.com",
"started_at": "2026-11-04T14:24:10+00:00",
"answered_at": "2026-11-04T14:24:18+00:00",
"ended_at": "2026-11-04T14:29:00+00:00",
"duration_seconds": 282,
"ring_seconds": 8,
"result": "answered",
"status": "completed",
"handled_by_ai": false,
"recording_status": "ready",
"recording_url": "https://...",
"recording_expires_at": "2026-11-06T14:30:00+00:00",
"transcript": "agent: Hi John...\ncaller: Hi...",
"summary": "Driver asked for a call after 5 pm.",
"occurred_at": "2026-11-04T14:24:10+00:00"
}| Field | Values |
|---|---|
result | answered, voicemail, no_answer, busy, failed |
recording_status | ready, processing, off, unavailable |
recording_url | Valid 48 hours |
line | Your TheCarGo number |
Message
json
{
"message_id": "1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e",
"direction": "inbound",
"from": "+15135550123",
"to": "+15134388255",
"line": "+15134388255",
"contact_phone": "+15135550123",
"user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user_email": "sarah@example.com",
"body": "Yes, call me after 5pm.",
"segments": 1,
"media_urls": [],
"status": "delivered",
"error_code": null,
"error": null,
"origin": null,
"created_at": "2026-11-04T15:02:41+00:00",
"sent_at": null,
"delivered_at": "2026-11-04T15:02:41+00:00",
"occurred_at": "2026-11-04T15:02:41+00:00"
}| Field | Values |
|---|---|
status | queued, sending, sent, delivered, failed |
origin | manual, campaign, automation, ai, system; null for received texts |
user_email | Sender, or the line owner for received texts |