Skip to content

Switch a number between dialer and voice AI

PATCH
/phone-numbers/update-capabilities

Change what a number is for, and re-provision it to match.

This reaches the voice platform: the LiveKit trunks and the carrier voice_url are re-pointed so inbound calls arrive where the new capability says they should. A number is briefly answering neither while that happens.

The two flags are not independent. dialer set with voice unset means dialer; every other combination means voice AI - which is the app’s own derivation, mirrored rather than reinvented.

Admin-only for the same reason as update-assignee.

Authorizations

Parameters

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

Switch a number between dialer and voice-AI answering.

Mirrors phone_numbers.interfaces.fastapi.dtos.UpdateCapabilitiesRequest.

The two flags are not independent in effect: the app derives the voice service’s inbound_type as dialer only when dialer is set and voice is not, and ai in every other combination.

object
dialer

Use the number for outbound dialing.

boolean
phone_number
required

The number to reconfigure, E.164.

string
voice

Answer inbound calls with a voice AI agent.

boolean

Responses

200

Successful Response

object
data
required

An open envelope for a purchase result, a release, or an A2P job.

Open on purpose. A purchase returns the stored row (whose capability and provider-metadata keys differ per provider), a workflow start returns a workflow_id, and the A2P reconcile returns per-number outcomes that grow as carriers add statuses. Pinning it would silently drop whatever the provider reported that this contract had not caught up on.

object
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string