Skip to main content

Phone

Use Phone endpoints for telephony resource management.

Authentication & scope

  • Header: X-API-Key: YOUR_API_KEY
  • Read operations: phone:read
  • Write operations: phone:write
  • Use API Reference for Try-it on each phone endpoint.

GET /v1/phone/purchases

Lists purchased numbers for your organization.

Common status codes

  • 200 success
  • 403 missing phone:read
  • 500 server error

GET /v1/phone/contacts/{id}

Lists contacts for a purchased number.

Common status codes

  • 200 success
  • 403 missing phone:read
  • 404 purchase not found
  • 500 server error

POST /v1/phone/allocate-assistant

Assigns inbound/outbound agents to a number. Body is DTO-accurate to PhoneAssistantDTO.

Common status codes

  • 200 success
  • 400 validation error
  • 403 missing phone:write
  • 404 resource not found
  • 500 server error

PATCH /v1/phone/{id}/call-forwarding

Configures conditional call forwarding for a purchased number. Body is DTO-accurate to UpdateCallForwardingDTO.
  • always — every inbound call is forwarded immediately, without connecting to the assistant.
  • unavailable — forwarded only if the number has no inbound assistant assigned.
  • no_answer — forwarded if the assistant doesn’t pick up within the connect timeout.
  • busy — accepted by the API but not yet enforced.
Set callForwardingEnabled: false to turn forwarding off; callForwardingNumber and callForwardingWhen are then ignored.

Common status codes

  • 200 success
  • 400 validation error (e.g. callForwardingNumber missing or not E.164 when enabled)
  • 403 missing phone:write
  • 404 phone purchase not found
  • 500 server error

GET /v1/phone/{id}/call-forwarding/history

Lists forwarding events for a purchased number, most recent first.

Common status codes

  • 200 success
  • 403 missing phone:read
  • 404 phone purchase not found
  • 500 server error

POST /v1/phone/schedule-call

Schedules outbound calls. Body is DTO-accurate to ScheduleCallDTO.

201 Created

Common status codes

  • 201 scheduled
  • 400 validation error
  • 403 missing phone:write
  • 404 resource not found
  • 500 server error

POST /v1/phone/contacts

Adds a single contact to a purchased phone number. Body is DTO-accurate to ManualContactDTO.

Common status codes

  • 200 success
  • 400 validation error, or contact already exists
  • 403 missing phone:write
  • 404 phone number not found
  • 500 server error

POST /v1/phone/contacts/upload

Uploads a contact list file (.xlsx, .vcf, or .csv) for a purchased phone number. Each phone number in the file must include a country code (start with +).

200 OK

Common status codes

  • 200 success
  • 400 unsupported file type, or numbers missing country code
  • 403 missing phone:write
  • 404 phone number not found
  • 500 server error

POST /v1/phone/announce

Places an outbound announcer call: the system dials the destination number and, once the call connects, speaks a one-way message — either synthesized from text or played back from an audio source — using the voice configured on the assistant allocated to the purchased number, then automatically hangs up. The call never listens for or accepts caller audio; nothing the recipient says is transcribed or acted on. This is useful for reminders, alerts, one-time codes, or any broadcast-style message that doesn’t need a two-way conversation.
Provide exactly one of text, audioUrl, or the audioFile upload. Sending zero, or more than one, returns a 400.

How it’s routed

  • The underlying telephony carrier for the purchased number is resolved automatically — you don’t choose it.
  • The assistant used is the number’s outboundAssistantId if set, otherwise its inboundAssistantId. That assistant must be configured with a voice provider that supports announcer calls; assistants configured to rely on a full conversational voice engine are rejected, since announcer calls are one-way only (no conversation, no listening).
  • The call is placed first (a Calls record is created and the number is dialed), and once it connects, the announcement is streamed into the live call audio.
  • At the end of the call: the transcript, call analysis, and call tag are generated as with any other assistant call, and credit is deducted from your organization’s balance for call duration exactly as with /v1/calls/phone/initiate.

Request body

201 Created

Use the returned id with the Calls endpointsGET /v1/calls/{id}, GET /v1/calls/{id}/transcripts, GET /v1/calls/{id}/analysis, and GET /v1/calls/{id}/recording — to check on the announcement call afterwards.

Common status codes

  • 201 announcer call initiated
  • 400 validation error; zero or more than one of text/audioUrl/audioFile provided; the audio couldn’t be fetched or processed; the allocated assistant isn’t configured for announcer calls; the number’s carrier doesn’t support announcer calls; or the phone number is no longer active
  • 403 missing phone:write
  • 404 phone purchase or assistant not found
  • 500 server error