curl --request GET \
--url https://example.com/api/v1/project/{projectSlug}/{env}/outbound-calls/{outboundCallId}/events \
--header 'x-api-key: <api-key>'"event: snapshot\ndata: {\"type\":\"snapshot\",\"outboundCallId\":\"oc_01a0a4af5a417f5186af\",\"phase\":\"ringing\",\"outcome\":null,\"version\":2,\"statusHistory\":[{\"phase\":\"dialing\",\"outcome\":null,\"providerEventAt\":\"2026-09-15T10:49:11.100Z\",\"ingestedAt\":\"2026-09-15T10:49:11.204Z\"},{\"phase\":\"ringing\",\"outcome\":null,\"providerEventAt\":\"2026-09-15T10:49:12.800Z\",\"ingestedAt\":\"2026-09-15T10:49:12.910Z\"}]}\n\nevent: phase\ndata: {\"type\":\"phase\",\"outboundCallId\":\"oc_01a0a4af5a417f5186af\",\"phase\":\"in_progress\",\"outcome\":null,\"version\":3}\n"{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>"
}
}Events of outbound calls
Live status stream for one outbound call (server-sent events).
curl --request GET \
--url https://example.com/api/v1/project/{projectSlug}/{env}/outbound-calls/{outboundCallId}/events \
--header 'x-api-key: <api-key>'"event: snapshot\ndata: {\"type\":\"snapshot\",\"outboundCallId\":\"oc_01a0a4af5a417f5186af\",\"phase\":\"ringing\",\"outcome\":null,\"version\":2,\"statusHistory\":[{\"phase\":\"dialing\",\"outcome\":null,\"providerEventAt\":\"2026-09-15T10:49:11.100Z\",\"ingestedAt\":\"2026-09-15T10:49:11.204Z\"},{\"phase\":\"ringing\",\"outcome\":null,\"providerEventAt\":\"2026-09-15T10:49:12.800Z\",\"ingestedAt\":\"2026-09-15T10:49:12.910Z\"}]}\n\nevent: phase\ndata: {\"type\":\"phase\",\"outboundCallId\":\"oc_01a0a4af5a417f5186af\",\"phase\":\"in_progress\",\"outcome\":null,\"version\":3}\n"{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>"
}
}text/event-stream. The first event is always a snapshot, carrying the call’s current phase/outcome plus its full statusHistory to date. Every subsequent event is a phase event describing one applied transition. Every event carries a version — use it to detect and discard a phase event that describes the same transition already included in the initial snapshot.
The stream stays open until the call reaches phase=terminal (one final event is still delivered) or the client disconnects. There is no guaranteed minimum interval between events; treat gaps as normal, not as evidence of a stall.Authorizations
Project-bound Platform API key (abl_...). The key must carry outbound_calls.initiate
for write operations (initiate, terminate) or outbound_calls.read for read operations
(lookup, list, summary, search, event stream).
Path Parameters
The project's slug.
1Deployment environment segment the call runs under, e.g. production, staging, dev.
1Identifier returned when the call was initiated.
1Response
An open text/event-stream. Each data: line is one JSON-encoded
OutboundStreamEvent.
snapshot=the first event on the stream, current state + full history; phase=one applied transition.
snapshot, phase Lifecycle phase, in order: accepted=submitted, not yet dialing; dialing=submitted to
the carrier; ringing=destination is ringing; in_progress=answered, call is live;
terminal=call has ended (see outcome).
accepted, dialing, ringing, in_progress, terminal How a terminal call ended. completed=ended normally after connecting;
busy=destination was busy; rejected=destination actively declined/rejected the call;
no_answer=rang without being picked up; machine=answering machine detected (only
possible with amdMode other than off); failed=a hard failure prevented completion;
canceled=terminated by a .../terminate call before it connected; expired=the call was
abandoned before reaching a provider-reported outcome.
completed, busy, rejected, no_answer, machine, failed, canceled, expired Monotonically increasing per call. Use to dedupe a phase event already covered by the initial snapshot.
Present only on the snapshot event.
Show child attributes
Show child attributes
Was this page helpful?