Phone numbers
List the phone numbers on your account and check whether each one can place calls.
Phone numbers are read-only through this API. Use them to find the phoneNumberId for placing a call, and to check a number's readiness first.
| Endpoint | Request |
|---|---|
| List phone numbers | GET/v1/phone-numbers |
| Get a phone number | GET/v1/phone-numbers/{id} |
The phone number object
Fields are in camelCase.
Identity
idstringrequiredphoneNumberId when placing a call.numberstringrequiredcountryCodestring | nulllocalitystring | nullregionstring | nullpostalCodestring | nullmonthlyCoststring | nullcreatedAtstringrequiredupdatedAtstringrequiredprovisionedAtstring | nullStatus
statusstringrequiredactive, inactive, provisioning or failed.syncStatusstringrequiredpending, provisioning, synced or error.syncStatestringrequiredsyncStatus.lastSyncedAtstring | nullregulatoryStatusstring | nullpending, approved, blocked or unknown. pending and blocked make POST /v1/calls return 422. See Regulatory status.addressValidatedAtstring | nullAgent link and readiness
assignedAgentIdstring | nullagentId must match this value.linkedAssistantIdstring | nulllinkedAssistantNamestring | nulllinkedAssistantStatusstring | nullisCallableForCampaignsbooleanrequiredtrue when the number is ready to place outbound calls with its linked agent.campaignExecutionAvailabilitystringrequiredcampaignExecutionMessagestringrequiredcampaignExecutionAvailability.campaignExecutionActionstring | nullnull when it already is.Voice and messaging capabilities
voiceEnabledbooleanrequiredsmsEnabledbooleanrequiredmmsEnabledbooleanrequiredvoiceInboundEnabledbooleanrequiredvoiceInboundRestrictionCodestring | nullvoiceInboundOriginScopestringnone, domestic_only, regional, international or unknown.voiceOutboundEnabledbooleanrequiredvoiceOutboundRestrictionCodestring | nullVOICE_NOT_SUPPORTED, PHONE_NUMBER_NOT_PROVISIONED or AU_TOLL_FREE_DO_NOT_ORIGINATE.voiceOutboundDestinationScopestringnone, domestic_only, international_restricted, international, provider_managed or unknown.voiceCapabilitiesEvaluatedAtstring | nullvoiceGeographyEvaluatedAtstring | nullAvailability values
campaignExecutionAvailability | Meaning |
|---|---|
linked_callable | The number is ready to place calls. |
assistant_callable | The agent is ready to place calls. |
inventory_unlinked | Not assigned to an agent. |
phone_inactive | The number isn't active. |
phone_outbound_unsupported | The number can't make outbound voice calls. |
phone_runtime_missing | The number's setup is incomplete. |
phone_execution_account_missing | The number's setup is incomplete. |
phone_execution_auth_missing | The number's setup is incomplete. |
phone_execution_verification_required | The number must be verified before it can place calls. |
phone_configuration_unsupported | The number's setup can't place outbound calls. |
phone_compliance_pending | Regulatory approval is pending. |
phone_compliance_blocked | Regulatory approval failed. |
phone_sync_pending | The number is still being set up. |
phone_sync_failed | The number could not be set up. |
linked_assistant_missing | The linked agent no longer exists. |
linked_assistant_inactive | The linked agent isn't active. |
linked_assistant_runtime_missing | The linked agent isn't ready to place calls. |
linked_assistant_binding_mismatch | The number and its linked agent are out of step. |
assistant_inactive | The agent isn't active. |
assistant_runtime_missing | The agent isn't ready to place calls. |
assistant_missing_linked_phone | The agent has no phone number. |
assistant_missing_callable_phone | None of the agent's phone numbers can place calls. |
unknown | The number isn't ready, for another reason. |
campaignExecutionMessage and campaignExecutionAction explain each value in plain language, so show those to a person.
Regulatory status
Some countries require approval before a number can place calls.
regulatoryStatus | Effect on POST /v1/calls |
|---|---|
approved, unknown or null | Doesn't block the call. |
pending | Returns 422 PHONE_NUMBER_COMPLIANCE_PENDING. Wait for approval, or use a different number. |
blocked | Returns 422 PHONE_NUMBER_COMPLIANCE_BLOCKED. Resolve the issue, or use a different number. |
Nothing is queued in either 422 case. The same check runs again while a call waits, and a call stopped that way fails with call_not_ready.
List phone numbers
/v1/phone-numbersread keyReturns your phone numbers with a status of active or provisioning, newest first. Numbers awaiting regulatory approval are included. To read an inactive or failed number, use its ID with GET /v1/phone-numbers/{id}.
Query parameters
limitintegerdefault 50offsetintegerdefault 0curl "https://backend.synthesys.app/api/v1/phone-numbers?limit=10" \
-H "SYNTH_API_KEY: YOUR_API_KEY"{
"success": true,
"data": [
{
"id": "b2c4d6e8-1a3f-4c5d-8e7f-90a1b2c3d4e5",
"number": "+12025550123",
"countryCode": "US",
"status": "active",
"syncStatus": "synced",
"syncState": "synced",
"regulatoryStatus": "approved",
"assignedAgentId": "6f1d2a34-8b7c-4e21-9a10-3c5d7e9f1b20",
"linkedAssistantId": "6f1d2a34-8b7c-4e21-9a10-3c5d7e9f1b20",
"linkedAssistantName": "Sales Agent",
"linkedAssistantStatus": "active",
"voiceEnabled": true,
"smsEnabled": true,
"mmsEnabled": false,
"voiceInboundEnabled": true,
"voiceOutboundEnabled": true,
"isCallableForCampaigns": true,
"campaignExecutionAvailability": "linked_callable",
"campaignExecutionMessage": "This phone number is ready for outbound calls.",
"campaignExecutionAction": null,
"createdAt": "2026-09-12T10:15:00.000Z",
"updatedAt": "2026-10-30T08:22:41.000Z"
}
],
"pagination": {
"total": 1,
"limit": 10,
"offset": 0
}
}Get a phone number
/v1/phone-numbers/{id}read keyReturns one phone number.
Path parameters
idstringrequiredErrors
| Status | When |
|---|---|
400 | The ID isn't a valid UUID. |
404 | No phone number with this ID exists on your account. code is NOT_FOUND. |
curl https://backend.synthesys.app/api/v1/phone-numbers/b2c4d6e8-1a3f-4c5d-8e7f-90a1b2c3d4e5 \
-H "SYNTH_API_KEY: YOUR_API_KEY"{
"success": true,
"data": {
"id": "b2c4d6e8-1a3f-4c5d-8e7f-90a1b2c3d4e5",
"number": "+12025550123",
"status": "active",
"syncStatus": "synced",
"syncState": "synced",
"assignedAgentId": null,
"voiceEnabled": true,
"smsEnabled": true,
"mmsEnabled": false,
"voiceInboundEnabled": true,
"voiceOutboundEnabled": true,
"isCallableForCampaigns": false,
"campaignExecutionAvailability": "inventory_unlinked",
"campaignExecutionMessage": "This phone number is not assigned to an agent.",
"campaignExecutionAction": "Assign this phone number to an agent.",
"createdAt": "2026-09-12T10:15:00.000Z",
"updatedAt": "2026-10-30T08:22:41.000Z"
}
}{
"success": false,
"error": "Phone number not found",
"code": "NOT_FOUND",
"requestId": "e3a1c5d7-2b4f-4a6c-9d8e-1f2a3b4c5d6e",
"timestamp": "2026-10-31T14:02:11.482Z"
}