Retell AI Import Phone Number API
The Import Phone Number API from Retell AI — 1 operation(s) for import phone number.
The Import Phone Number API from Retell AI — 1 operation(s) for import phone number.
openapi: 3.0.3
info:
title: Retell SDK Add Community Voice Import Phone Number API
version: 3.0.0
contact:
name: Retell Support
url: https://www.retellai.com/
email: support@retellai.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api.retellai.com
description: The production server.
security:
- api_key: []
tags:
- name: Import Phone Number
paths:
/import-phone-number:
post:
description: Import a phone number from custom telephony & Bind agents
operationId: importPhoneNumber
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- phone_number
- termination_uri
properties:
phone_number:
type: string
minLength: 1
example: '+14157774444'
description: The number you are trying to import in E.164 format of the number (+country code, then number with no space, no special characters), used as the unique identifier for phone number APIs.
ignore_e164_validation:
type: boolean
description: If true, E.164 validation for phone_number is skipped. This is useful for internal pseudo numbers when using custom telephony. If omitted, default is true. Must be a boolean literal; string values like "true" or "false" are invalid.
example: true
termination_uri:
type: string
example: someuri.pstn.twilio.com
description: The termination uri to uniquely identify your elastic SIP trunk. This is used for outbound calls. For Twilio elastic SIP trunks it always end with ".pstn.twilio.com".
sip_trunk_auth_username:
type: string
example: username
description: The username used for authentication for the SIP trunk.
sip_trunk_auth_password:
type: string
example: '123456'
description: The password used for authentication for the SIP trunk.
inbound_agents:
type: array
items:
$ref: '#/components/schemas/AgentWeight'
description: Inbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each inbound call, with probability proportional to the weight. Total weights must add up to 1.
nullable: true
outbound_agents:
type: array
items:
$ref: '#/components/schemas/AgentWeight'
description: Outbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each outbound call, with probability proportional to the weight. Total weights must add up to 1.
nullable: true
nickname:
type: string
example: Frontdesk Number
description: Nickname of the number. This is for your reference only.
inbound_webhook_url:
type: string
example: https://example.com/inbound-webhook
description: If set, will send a webhook for inbound calls, where you can to override agent id, set dynamic variables and other fields specific to that call.
nullable: true
allowed_inbound_country_list:
type: array
items:
type: string
example:
- US
- CA
- GB
description: List of ISO 3166-1 alpha-2 country codes from which inbound calls are allowed. If not set or empty, calls from all countries are allowed.
nullable: true
allowed_outbound_country_list:
type: array
items:
type: string
example:
- US
- CA
description: List of ISO 3166-1 alpha-2 country codes to which outbound calls are allowed. If not set or empty, calls to all countries are allowed.
nullable: true
transport:
type: string
example: TCP
description: Outbound transport protocol to update for the phone number. Valid values are "TLS", "TCP" and "UDP". Default is "TCP".
nullable: true
responses:
'201':
description: Successfully imported a number.
content:
application/json:
schema:
$ref: '#/components/schemas/PhoneNumberResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalServerError'
tags:
- Import Phone Number
components:
responses:
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- error
message:
type: string
example: API key is missing or invalid.
BadRequest:
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- error
message:
type: string
example: Invalid request format, please check API reference.
InternalServerError:
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- error
message:
type: string
example: An unexpected server error occurred.
schemas:
PhoneNumberResponse:
type: object
required:
- phone_number
- phone_number_type
- last_modification_timestamp
properties:
phone_number:
type: string
example: '+14157774444'
description: E.164 format of the number (+country code, then number with no space, no special characters), used as the unique identifier for phone number APIs.
phone_number_type:
type: string
enum:
- retell-twilio
- retell-telnyx
- custom
example: retell-twilio
description: Type of the phone number.
phone_number_pretty:
type: string
example: +1 (415) 777-4444
description: Pretty printed phone number, provided for your reference.
allowed_inbound_country_list:
type: array
items:
type: string
example:
- US
- CA
- GB
description: List of ISO 3166-1 alpha-2 country codes from which inbound calls are allowed. If not set or empty, calls from all countries are allowed.
nullable: true
allowed_outbound_country_list:
type: array
items:
type: string
example:
- US
- CA
description: List of ISO 3166-1 alpha-2 country codes to which outbound calls are allowed. If not set or empty, calls to all countries are allowed.
nullable: true
area_code:
type: integer
example: 415
description: Area code of the number to obtain. Format is a 3 digit integer. Currently only supports US area code.
inbound_agents:
type: array
items:
$ref: '#/components/schemas/AgentWeight'
description: Inbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each inbound call, with probability proportional to the weight. Total weights must add up to 1.
nullable: true
outbound_agents:
type: array
items:
$ref: '#/components/schemas/AgentWeight'
description: Outbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each outbound call, with probability proportional to the weight. Total weights must add up to 1.
nullable: true
inbound_sms_agents:
type: array
items:
$ref: '#/components/schemas/AgentWeight'
description: Inbound SMS agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each inbound SMS, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to inbound_sms_agent_id.
nullable: true
outbound_sms_agents:
type: array
items:
$ref: '#/components/schemas/AgentWeight'
description: Outbound SMS agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each outbound SMS, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to outbound_sms_agent_id.
nullable: true
nickname:
type: string
example: Frontdesk Number
description: Nickname of the number. This is for your reference only.
nullable: true
inbound_webhook_url:
type: string
example: https://example.com/inbound-webhook
description: If set, will send a webhook for inbound calls, where you can to override agent id, set dynamic variables and other fields specific to that call.
nullable: true
inbound_sms_webhook_url:
type: string
example: https://example.com/inbound-sms-webhook
description: If set, will send a webhook for inbound SMS, where you can override agent id, set dynamic variables and other fields specific to that chat.
nullable: true
last_modification_timestamp:
type: integer
example: 1703413636133
description: Last modification timestamp (milliseconds since epoch). Either the time of last update or creation if no updates available.
sip_outbound_trunk_config:
type: object
nullable: true
properties:
termination_uri:
type: string
example: someuri.pstn.twilio.com
nullable: true
description: The termination URI for the SIP trunk for the phone number.
auth_username:
type: string
example: username
nullable: true
description: The username used for authenticating the SIP trunk for the phone number.
transport:
type: string
example: TCP
nullable: true
description: Outbound transport protocol for the SIP trunk for the phone number. Valid values are "TLS", "TCP" and "UDP". Default is "TCP".
fallback_number:
type: string
example: '+14155551234'
description: Enterprise only. Phone number to transfer inbound calls to when organization is in outage mode. Can be either a Retell phone number or an external number. Cannot be the same as this phone number, and cannot be a number that already has its own fallback configured (prevents nested forwarding).
nullable: true
AgentWeight:
type: object
required:
- agent_id
- weight
properties:
agent_id:
type: string
minLength: 1
example: oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD
agent_version:
$ref: '#/components/schemas/AgentVersionReference'
weight:
type: number
example: 0.5
minimum: 0
exclusiveMinimum: true
maximum: 1
description: The weight of the agent. When used in a list of agents, the total weights must add up to 1.
AgentVersionReference:
oneOf:
- type: integer
minimum: 0
example: 1
- type: string
minLength: 1
maxLength: 20
pattern: ^[a-z0-9_-]+$
example: prod
description: Agent version reference. Supports a numeric version (for example 3) or a tag/environment name (for example "prod"). When a tag is provided, resolution uses that exact tag assignment (including its dynamic variables). If the tag exists but is currently unassigned, it resolves to latest. When a numeric version (or latest) is provided, resolution applies dynamic variables from the preferred tag for that resolved version (most recently assigned), if any.
securitySchemes:
api_key:
type: http
scheme: bearer
bearerFormat: string
description: Authentication header containing API key (find it in dashboard). The format is "Bearer YOUR_API_KEY"