Provision voice-agent phone number

POST/v1/voice-agents/agents/{agentId}/phone-number

How to call this endpoint

Every ACP API request uses bearer authentication. The examples here show the actual request path, auth header, and body shape that the platform expects.

Path, query, and header parameters

These parameters control which ACP object the endpoint acts on and how the request is processed.

Path parameters
NameLocationTypeRequiredDescription
agentIdpathstringYesAgent ID
Query parameters
None.

Body schema

Content type: application/json · Optional

FieldTypeRequiredDescription
originxai_provisioned | byo_trunkNo—
namestringNoHuman-readable name.
phoneNumberstringNoRequired for BYO trunk phone numbers.
webhookUrlstringNo—
webhookNamestringNo—
sipAuthobjectNo—

What the API returns

Each response code below includes the documented payload shape for the ACP API.

201Phone number binding createdapplication/json
FieldTypeRequiredDescription
agentobjectNo—
agent.idstringNoUnique identifier.
agent.userIdstringNoUser ID.
agent.organizationIdstringNo—
agent.createdByUserIdstringNo—
agent.namestringNoHuman-readable name.
agent.descriptionstringNoHuman-readable description.
agent.modelstringNoModel identifier for the agent. Built-in managed models: - `claude-opus-4-8` - `claude-opus-4-7` - `claude-opus-4-6` - `claude-sonnet-4-5` - `claude-haiku-4-5` - `gpt-5.5-pro` - `gpt-5.5` - `gpt-5.4` - `gpt-5.4-mini` - `gpt-5.4-nano` - `grok-4.5` - `gemini-3-flash` - `gemini-3-1-flash` - `gemini-3-1-pro` - `deepseek-v4-pro` - `deepseek-v4-flash` - `minimax-m3` - `kimi-k2.6` - `kimi-k2.7-code` - `glm-5.2` - `qwen3.5-397b-a17b` Deployment-fixed installations may additionally expose `qwen3.8-flash-next`. Team and Enterprise organizations can also use connected external models in the form `external:{providerType}:{urlEncodedModelId}`. Use `GET /agents/models` to discover the exact managed and external model IDs available in the current workspace.
agent.instructionsstringNo—
agent.binaryClaude Code CLINoExecution binary used for the agent runtime.
agent.executionEnginecomputer-agents-cli | native-claude | grok-buildNoDurable execution-engine choice. Native Claude is restricted to managed Anthropic models; Computer Agents CLI and Grok Build retain their provider-target policies.
agent.reasoningEffortminimal | low | medium | highNoReasoning intensity used by the execution runtime.
agent.enabledSkillsstring[]NoSkill IDs enabled for this agent, for example `deep_research` or custom installed skills.
agent.deepResearchModelgemini-3-flash-preview | gemini-3-pro-previewNoOptional model override used by the deep research skill when enabled.
agent.permissionSetobjectNoAgent permission policy. The shape is intentionally subject-typed so it can also be reused for human users and teams later.
agent.permissionSet.version1No—
agent.permissionSet.subjectTypeagent | human_user | team | project | security_repositoryNo—
agent.permissionSet.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.ringsobjectNo—
agent.permissionSet.actionsobjectNo—
agent.permissionSet.resourcesobjectNo—
agent.permissionSet.resources.agentsobjectNo—
agent.permissionSet.resources.agents.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.agents.rulesobject[]No—
agent.permissionSet.resources.agents.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.agents.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.agents.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.agents.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.agents.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.skillsobjectNo—
agent.permissionSet.resources.skills.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.skills.rulesobject[]No—
agent.permissionSet.resources.skills.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.skills.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.skills.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.skills.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.skills.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.serversobjectNo—
agent.permissionSet.resources.servers.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.servers.rulesobject[]No—
agent.permissionSet.resources.servers.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.servers.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.servers.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.servers.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.servers.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.computersobjectNo—
agent.permissionSet.resources.computers.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.computers.rulesobject[]No—
agent.permissionSet.resources.computers.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.computers.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.computers.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.computers.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.computers.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.filesobjectNo—
agent.permissionSet.resources.files.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.files.rulesobject[]No—
agent.permissionSet.resources.files.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.files.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.files.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.files.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.files.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.directoriesobjectNo—
agent.permissionSet.resources.directories.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.directories.rulesobject[]No—
agent.permissionSet.resources.directories.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.directories.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.directories.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.directories.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.directories.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.projectsobjectNo—
agent.permissionSet.resources.projects.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.projects.rulesobject[]No—
agent.permissionSet.resources.projects.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.projects.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.projects.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.projects.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.projects.rules[].notestringNoOptional human-readable note for the rule.
agent.permissionSet.resources.security_repositoriesobjectNo—
agent.permissionSet.resources.security_repositories.defaultAccessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.security_repositories.rulesobject[]No—
agent.permissionSet.resources.security_repositories.rules[].idstringNoOptional stable rule ID.
agent.permissionSet.resources.security_repositories.rules[].targetIdstringNoOptional resource identifier for agent, skill, server, computer, or project rules.
agent.permissionSet.resources.security_repositories.rules[].pathstringNoOptional file or directory path for path-scoped rules.
agent.permissionSet.resources.security_repositories.rules[].accessfull_access | ask_for_permission | read_only | no_accessNoAccess level for a resource category. `full_access` allows viewing and actions, `ask_for_permission` allows proposed actions that require approval, `read_only` allows viewing without mutation, and `no_access` blocks view and action access.
agent.permissionSet.resources.security_repositories.rules[].notestringNoOptional human-readable note for the rule.
agent.voiceModeoff | web | phone | web_and_phoneNoVoice availability for an agent.
agent.voiceProviderxaiNo—
agent.voiceModelstringNo—
agent.voiceIdstringNoxAI built-in or custom voice ID.
agent.voiceInstructionsstringNo—
agent.voiceLanguageHintstringNo—
agent.voiceTurnDetectionobjectNo—
agent.voicePronunciationReplacementsobjectNo—
agent.isDefaultbooleanNo—
agent.isSystembooleanNo—
agent.isActivebooleanNo—
agent.metadataobjectNoFree-form metadata object.
agent.createdAtstringNoISO 8601 timestamp.
agent.updatedAtstringNoISO 8601 timestamp.
agent.lastRunAtstringNo—
voiceobjectNo—
phoneNumberobjectNo—
phoneNumber.idstringNoUnique identifier.
phoneNumber.statusstringNoCurrent lifecycle status.
phoneNumber.originxai_provisioned | byo_trunkNo—
phoneNumber.phoneNumberstringNo—
phoneNumber.sipUristringNo—
phoneNumber.providerxaiNo—
phoneNumber.channelphoneNo—
phoneNumber.lastErrorstringNo—
phoneNumber.metadataobjectNoFree-form metadata object.
phoneNumber.createdAtstringNoISO 8601 timestamp.
phoneNumber.updatedAtstringNoISO 8601 timestamp.
recentSessionsobject[]No—
recentSessions[].idstringNoUnique identifier.
recentSessions[].agentIdstringNoAgent ID.
recentSessions[].threadIdstringNoThread ID.
recentSessions[].bindingIdstringNo—
recentSessions[].providerxaiNo—
recentSessions[].channelweb | phoneNo—
recentSessions[].statusinitializing | active | completed | failed | cancelledNoCurrent lifecycle status.
recentSessions[].xaiCallIdstringNo—
recentSessions[].xaiSessionIdstringNo—
recentSessions[].fromNumberstringNo—
recentSessions[].toNumberstringNo—
recentSessions[].startedAtstringNoISO 8601 timestamp.
recentSessions[].endedAtstringNo—
recentSessions[].durationSecondsnumberNo—
recentSessions[].metadataobjectNoFree-form metadata object.
Provision voice-agent phone number
Loading...
Response 201
Loading...
See the ACP quickstart and SDK flow