Skip to main content
GET
Live status stream for one outbound call (server-sent events)
Subscribes to the call’s status as a 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

x-api-key
string
header
required

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

projectSlug
string
required

The project's slug.

Minimum string length: 1
env
string
required

Deployment environment segment the call runs under, e.g. production, staging, dev.

Minimum string length: 1
outboundCallId
string
required

Identifier returned when the call was initiated.

Minimum string length: 1

Response

An open text/event-stream. Each data: line is one JSON-encoded OutboundStreamEvent.

type
enum<string>
required

snapshot=the first event on the stream, current state + full history; phase=one applied transition.

Available options:
snapshot,
phase
outboundCallId
string
required
phase
enum<string>
required

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).

Available options:
accepted,
dialing,
ringing,
in_progress,
terminal
outcome
enum<string> | null
required

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.

Available options:
completed,
busy,
rejected,
no_answer,
machine,
failed,
canceled,
expired
version
integer
required

Monotonically increasing per call. Use to dedupe a phase event already covered by the initial snapshot.

statusHistory
object[]

Present only on the snapshot event.