call_sid: the media session, the agent session,
the audio tracks, the CDR, and the telemetry. This page is the control plane
for the call object. Use it to place a call, look up a call, move a call, and
end a call. To move audio in and out of a live call, see
the audio bridge.
The Voice SDK (
ClutchCallClient) exposes these operations. There is no
hand-written REST surface. Each SDK call maps to a typed control-plane RPC
(voice.calls.*). The SDK carries your API key and org id. The control-plane
API relays the operation to the engine over a correlated control channel.
Address calls through the SDK. There is no separately documented POST /calls
REST endpoint to curl.Construct the client
Every calls operation hangs off aClutchCallClient instance with a scope
of one org. Construct the instance once and reuse it.
- TypeScript
- Python
- Go
- Rust
Originate a call
calls.originate dials to from from over the trunk that you name. If you
pass an agent, the engine attaches the voice agent automatically when the far
end answers. You get back a Call (below) as soon as the engine accepts the
request. Watch status (or the
call-lifecycle events)
to follow the call from dialing to in_progress.
Request
string
required
The destination in E.164 (e.g.
+15551234567).string
required
The caller-ID that the outbound leg presents, in E.164. This must be a number
that your trunk can present.
string
required
The trunk to originate on. You provision trunks in the console. See
SIP trunking.
string
Optional agent id. When set, the engine binds this server-side voice agent to
the call on answer. The engine also connects the audio bridge end-to-end, so
you do not open one yourself. Omit this field to originate a bare call and
drive the audio yourself.
integer
default:"30"
The number of seconds to ring before the engine stops the attempt. The call
then lands in
no_answer. The control plane clamps this value to 5..120.- TypeScript
- Python
- Go
- Rust
The Call object
originate and get both return a Call. These fields are the whole object.
There are no video codecs or track lists here. Audio lives on the bridge.
string
The
call_sid — the universal key. Use this key to open the audio bridge,
attach an agent, transfer, and hang up. Also use this key to join CDRs,
recordings, and telemetry.string
One of
dialing, ringing, in_progress, completed, failed, no_answer.string
The destination number (E.164).
string
The presented caller-ID (E.164). In the Python SDK this attribute is
from_.string
The ISO-8601 timestamp for when the engine created the call.
string
The trunk that the call is on. This field is absent for calls with no trunk
association.
string
The bound agent id, if an agent was attached (at originate, or later through
agents.attach).Get a call
calls.get fetches the current Call snapshot by sid. Use it to poll the
status after an originate. Also use it to hydrate a call that you learned about
from a webhook or the lifecycle stream.
string
required
The
call_sid to look up.- TypeScript
- Python
- Go
- Rust
get returns a point-in-time snapshot. It does not stream. For live status
without polling, consume
call-lifecycle events
or set up webhooks.Transfer a call
call.transfer moves a connected call. Pass exactly one of:
string
A PSTN number (E.164). The engine forwards the call to this number. This drives
a SIP transfer (
REFER) on the caller leg.string
An agent id. The engine re-attaches the call to this server-side agent instead
of a forward off-net.
- TypeScript
- Python
- Go
- Rust
Hang up a call
call.hangup stops the dialog and both media legs. It emits the cleared
lifecycle event (with a Q.850 cause and duration) and finalizes the CDR.
- TypeScript
- Python
- Go
- Rust
End-to-end
1
Originate
Dial out. Optionally bind an agent, so the engine connects the audio for you.
2
Track status
Poll
calls.get, or subscribe to lifecycle events, until status reaches
in_progress (or no_answer / failed).3
Act on the live call
Move audio with the audio bridge,
transfer, or attach a different
agent mid-call.
4
Hang up
Call
hangup when you are done. This step finalizes the CDR.Related
Audio bridge
Move caller and agent audio in and out of a live call over MoQT.
Agents API
Bind or swap a server-side voice agent on a call.
Call lifecycle
Every state that a call moves through, and the events that you can subscribe to.
Outbound dialing
Single originate, paced campaigns, and the dialer model.

