Voice API
Build voice applications with Orbit’s Voice API. Make and receive calls, connect AI agents, configure SIP trunks, build IVR menus, host conference calls, and manage voicemail — all through a unified API. Base path:/v1/voice
Calls
Initiate a Call
POST /v1/voice/calls
Start an outbound call. Route it to an AI voice agent, an IVR flow, or a raw SIP destination.
Destination phone number in E.164 format
Caller ID — must be a number registered in your Orbit account
AI agent to handle the call (omit for raw SIP or IVR)
IVR flow ID to execute when the call connects
URL to receive call status callbacks
Whether to record the call
Maximum call duration in seconds
Arbitrary key-value pairs attached to the call
List Calls
GET /v1/voice/calls
Retrieve call logs with cursor-based pagination and optional filters.
Cursor for pagination
Results per page (max 100)
Filter by status:
initiating, ringing, in_progress, completed, failedFilter by caller number
Filter by destination number
Get Call Details
GET /v1/voice/calls/{id}
Retrieve full details of a call including status, duration, recording URL, and agent interaction summary.
Hang Up a Call
POST /v1/voice/calls/{id}/hangup
Terminate an active call. AI agents receive a graceful shutdown signal before disconnection.
SIP Trunks
Bring your own carrier by connecting SIP trunks to Orbit. Orbit acts as an SBC (Session Border Controller) with TLS and SRTP encryption.Create SIP Trunk
POST /v1/voice/sip-trunks
A descriptive name for the trunk
SIP URI for outbound call routing (e.g.,
sip:trunk.carrier.com:5060)SIP URIs that Orbit should accept inbound calls from
SIP authentication username
SIP authentication password
Preferred audio codecs in priority order
Transport encryption:
tls_srtp, tls, or noneList SIP Trunks
GET /v1/voice/sip-trunks
Get SIP Trunk
GET /v1/voice/sip-trunks/{id}
Update SIP Trunk
PUT /v1/voice/sip-trunks/{id}
Delete SIP Trunk
DELETE /v1/voice/sip-trunks/{id}
IVR (Interactive Voice Response)
Build programmable voice menus that route callers through options, collect DTMF input, and transfer to agents or queues.Create IVR Flow
POST /v1/voice/ivr
IVR flow name
Text-to-speech greeting played when a caller connects
Language for TTS and speech recognition
Menu definition with DTMF key-to-action mappings
Seconds to wait for DTMF input before replaying the menu
Maximum menu replays before fallback action
Action when max retries reached:
voicemail, transfer_number, hangupList IVR Flows
GET /v1/voice/ivr
Update IVR Flow
PUT /v1/voice/ivr/{id}
Delete IVR Flow
DELETE /v1/voice/ivr/{id}
Conferences
Host multi-party conference calls with moderation controls, recording, and real-time participant management.Create Conference
POST /v1/voice/conferences
Conference name
Maximum number of participants
Record the conference
Mute participants when they join
URL for conference event callbacks
Add Participant
POST /v1/voice/conferences/{id}/participants
Phone number to dial into the conference
Join the participant in muted state
Remove Participant
DELETE /v1/voice/conferences/{id}/participants/{participantId}
End Conference
POST /v1/voice/conferences/{id}/end
Voicemail
Manage voicemail boxes for receiving and transcribing voice messages when calls go unanswered.Create Voicemail Box
POST /v1/voice/voicemail
Voicemail box name
Custom TTS greeting (default: “Please leave a message after the tone.”)
Automatically transcribe voicemail messages using STT
Maximum voicemail recording duration in seconds
Email to send voicemail notifications to
URL for voicemail event callbacks
List Voicemail Messages
GET /v1/voice/voicemail/{id}/messages
Retrieve voicemail messages with transcriptions.
Call Statuses
| Status | Description |
|---|---|
initiating | Call is being set up |
ringing | Destination phone is ringing |
in_progress | Call is connected and active |
completed | Call ended normally |
failed | Call could not be connected |
busy | Destination returned busy signal |
no_answer | Destination did not answer within timeout |
cancelled | Call was cancelled before connection |