Skip to main content
🤖 LLM Friendly: This page is available in raw Markdown format for LLM consumption:phone-numbers.md|Get full documentation:llms.txt/llms-full.txt

Phone Numbers

Manage virtual phone numbers in your workspace. Phone numbers can be used for inbound/outbound calls, assigned to call flows, extensions, or SIP trunks.

Endpoints​

MethodEndpointDescription
GET/phone-numbersList all phone numbers
GET/phone-numbers/:idGet phone number details
POST/phone-numbers/connectConnect a new phone number
PATCH/phone-numbers/:idUpdate phone number settings
DELETE/phone-numbers/:idRelease a phone number

Phone Number Object​

FieldTypeDescription
idstringUnique phone number ID (prefixed)
titlestringDisplay name / label
numberstringFull phone number with country calling code (e.g. 84901234567)
country_codestringISO 3166-1 alpha-2 country code (e.g. VN, US)
dial_codestringCountry calling code (e.g. 84, 1)
statusstringpending, active, or inactive
typestringlocal, tollfree, mobile, or international
capabilitiesstring[]Supported capabilities: voice, sms
providerstringNumber provider: firetell or sip_trunk
enable_outboundbooleanWhether outbound calling is enabled
inbound_acl_idstringID of the assigned Inbound IP ACL for whitelisting inbound SIP traffic
outbound_gateway_idstringID of the assigned Outbound Gateway for outbound trunk call routing
call_flow_idstring | nullID of the assigned call flow (null if not assigned)
shared_teams_idstring[]IDs of teams this number is shared with
record_outboundbooleanWhether to record outbound calls
fee_per_monthnumberMonthly fee for this number
fee_per_mins_callnumberPer-minute call fee
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last update timestamp

List Phone Numbers​

GET /phone-numbers

Retrieves a paginated list of all phone numbers in the workspace.

Authentication​

Requires ApiKey with any scope.

Query Parameters​

ParameterTypeDefaultDescription
pagenumber1Page number (min: 1)
limitnumber20Items per page (min: 1, max: 100)
searchstring—Search by title or number (text search)
sort_fieldstring—Sort by field: created_at, title
sort_orderstringdescSort order: asc or desc

Example Request​

curl -X GET "https://{workspace_id}.firetell.app/api/v1/phone-numbers?page=1&limit=10&search=support" \
-H "Authorization: ApiKey YOUR_API_KEY"

Response 200 OK​

{
"data": [
{
"id": "pn_a1b2c3d4e5f6g7h8i9j0k1",
"title": "Main Number",
"number": "84901234567",
"country_code": "VN",
"dial_code": "84",
"status": "active",
"type": "local",
"capabilities": ["voice"],
"provider": "sip_trunk",
"enable_outbound": true,
"inbound_acl_id": "acl_abc123",
"outbound_gateway_id": "gw_def456",
"call_flow_id": "cf_ghi789",
"shared_teams_id": [],
"record_outbound": true,
"fee_per_month": 0,
"fee_per_mins_call": 0,
"created_at": "2026-01-15T08:30:00.000Z",
"updated_at": "2026-01-15T08:30:00.000Z"
}
],
"meta": {
"total": 1,
"page": 1,
"limit": 10,
"total_pages": 1
}
}

Get Phone Number Details​

GET /phone-numbers/:id

Retrieve detailed information about a specific phone number, including populated ACL and gateway data.

Authentication​

Requires ApiKey with full scope.

Path Parameters​

ParameterTypeDescription
idstringPhone number ID (e.g. pn_a1b2c3...)

Example Request​

curl -X GET "https://{workspace_id}.firetell.app/api/v1/phone-numbers/pn_a1b2c3d4e5f6g7h8i9j0k1" \
-H "Authorization: ApiKey YOUR_API_KEY"

Response 200 OK​

{
"id": "pn_a1b2c3d4e5f6g7h8i9j0k1",
"title": "Main Number",
"number": "84901234567",
"country_code": "VN",
"dial_code": "84",
"status": "active",
"type": "local",
"capabilities": ["voice"],
"provider": "sip_trunk",
"enable_outbound": true,
"inbound_acl_id": "acl_abc123",
"outbound_gateway_id": "gw_def456",
"call_flow_id": "cf_ghi789",
"shared_teams_id": [],
"record_outbound": true,
"fee_per_month": 0,
"fee_per_mins_call": 0,
"acl": {
"id": "acl_abc123",
"name": "SIP Trunk ACL",
"workspace_id": "my_workspace"
},
"gateway": {
"id": "gw_def456",
"name": "Primary Gateway",
"workspace_id": "my_workspace"
},
"created_at": "2026-01-15T08:30:00.000Z",
"updated_at": "2026-01-15T08:30:00.000Z"
}

Error Responses​

StatusDescription
404Phone number not found or does not belong to this workspace

Connect a Phone Number​

POST /phone-numbers/connect

Connect (provision) a new phone number to the workspace. The phone number will be created with pending status. The country calling code is automatically prepended to the number based on the country_code.

Authentication​

Requires ApiKey with full scope.

Request Body​

FieldTypeRequiredDescription
titlestring✅Display name (1–36 characters)
numberstring✅Phone number without country code, digits only (6–14 chars)
country_codestring✅ISO 3166-1 alpha-2 code (e.g. VN, US, SG)
inbound_acl_idstring✅Inbound ACL ID for whitelisting inbound SIP traffic
enable_outboundboolean✅Enable outbound calling
outbound_gateway_idstringOptionalOutbound Gateway ID for trunk routing (required if enable_outbound is true)

Example Request​

curl -X POST "https://{workspace_id}.firetell.app/api/v1/phone-numbers/connect" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Support Line",
"number": "901234567",
"country_code": "VN",
"inbound_acl_id": "acl_abc123",
"enable_outbound": true,
"outbound_gateway_id": "gw_def456"
}'

Response 201 Created​

{
"id": "pn_x1y2z3w4v5u6t7s8r9q0p1",
"title": "Support Line",
"number": "84901234567",
"country_code": "VN",
"dial_code": "84",
"status": "pending",
"type": "local",
"capabilities": ["voice"],
"provider": "sip_trunk",
"enable_outbound": true,
"inbound_acl_id": "acl_abc123",
"outbound_gateway_id": "gw_def456",
"call_flow_id": null,
"shared_teams_id": [],
"record_outbound": true,
"workspace_id": "my_workspace",
"created_at": "2026-07-13T08:30:00.000Z",
"updated_at": "2026-07-13T08:30:00.000Z"
}

Error Responses​

StatusDescription
400Validation error, invalid ACL ID, or invalid gateway ID
403Maximum limit of 100 phone numbers reached
409Phone number already exists in this workspace
tip

The number field should contain only digits without the country calling code. For example, for a Vietnamese number +84 901 234 567, send "number": "901234567" with "country_code": "VN". The system will automatically prepend 84.


Update a Phone Number​

PATCH /phone-numbers/:id

Update settings for an existing phone number. All fields are optional — only include the fields you want to change.

Authentication​

Requires ApiKey with full scope.

Path Parameters​

ParameterTypeDescription
idstringPhone number ID

Request Body​

FieldTypeDescription
titlestringDisplay name (1–36 characters)
inbound_acl_idstringInbound ACL ID for whitelisting inbound SIP traffic
enable_outboundbooleanEnable/disable outbound calling
outbound_gateway_idstringOutbound Gateway ID for trunk routing
shared_teams_idstring[]Team IDs this number is shared with (max 100)
record_outboundbooleanEnable/disable outbound call recording
call_flow_idstring | nullAssign a call flow, or null to unassign

Example Request​

curl -X PATCH "https://{workspace_id}.firetell.app/api/v1/phone-numbers/pn_a1b2c3d4e5f6g7h8i9j0k1" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Support Line",
"call_flow_id": "cf_new789",
"record_outbound": false
}'

Response 200 OK​

Returns the updated phone number object.

{
"id": "pn_a1b2c3d4e5f6g7h8i9j0k1",
"title": "Support Line",
"number": "84901234567",
"status": "active",
"call_flow_id": "cf_new789",
"record_outbound": false,
"updated_at": "2026-07-13T09:00:00.000Z"
}

Error Responses​

StatusDescription
400Invalid ACL ID or gateway ID
404Phone number not found

Delete a Phone Number​

DELETE /phone-numbers/:id

Release (delete) a phone number from the workspace. This action is permanent and cannot be undone.

Authentication​

Requires ApiKey with full scope.

Path Parameters​

ParameterTypeDescription
idstringPhone number ID

Example Request​

curl -X DELETE "https://{workspace_id}.firetell.app/api/v1/phone-numbers/pn_a1b2c3d4e5f6g7h8i9j0k1" \
-H "Authorization: ApiKey YOUR_API_KEY"

Response 200 OK​

Returns the deleted phone number object.

{
"id": "pn_a1b2c3d4e5f6g7h8i9j0k1",
"title": "Main Number",
"number": "84901234567",
"status": "active",
"workspace_id": "my_workspace"
}

Error Responses​

StatusDescription
404Phone number not found or does not belong to this workspace
caution

Deleting a phone number is irreversible. Any call flows, extensions, or SIP trunks referencing this number will no longer route calls to it. Make sure to update or remove those references before deleting.