Phone numbers
Phone numbers are carrier-grade, SMS- and voice-enabled numbers. You can provision new numbers, attach them to agents, list existing numbers, retrieve messages for a number, and release numbers when no longer needed.
SMS compliance: Receiving inbound SMS works out of the box. To send outbound SMS, US carriers require 10DLC (10-Digit Long Code) registration. Fill out the registration form, it takes about 5 minutes and we submit everything to the carriers for you. If you can’t figure it out, schedule a call and we’ll handle the registration for you. Voice calls (inbound and outbound) are not affected and work immediately.
Search available numbers
Preview purchasable numbers before buying one.
Query parameters
Searching with no criteria returns a page of whatever is in stock. Giving a Canadian area code searches Canada even though country defaults to US.
Criteria support varies by account and there is no single rule that holds everywhere:
areaCodeis the most broadly supported filter.city,stateandzipwork on some accounts and not others. Where they aren’t supported they are ignored rather than rejected, so check what comes back instead of assuming the filter applied.stateon its own is honored on some accounts and rejected with400on others. Pair it withcityfor consistent behavior.
Number search isn’t available on every account. When it isn’t, this endpoint returns 404 (or 422 if it’s enabled but not yet configured).
That doesn’t block you from buying a number. POST /v1/numbers accepts an areaCode and picks one for you on any account, so search is a convenience rather than a requirement. Contact support if you want search enabled.
Example
phoneNumber is the only guaranteed field. city, state and rateCenter are null when the inventory source returns no per-number detail, so key off phoneNumber and treat the rest as best-effort labels.
widened: true means your exact criteria were out of stock and these are nearby alternatives instead. Check it before assuming you got what you asked for.
Buying a number you found
Pass the same phoneNumber to POST /v1/numbers:
Search results are not reserved. This is live inventory, so a number can be bought by someone else between your search and your purchase. When that happens the purchase returns 409 with fresh alternatives in the same shape as the search response. Pick another and retry rather than treating it as fatal.
Search is rate limited to 30 requests per minute per account, and purchase to 20.
Create number
Provision a new SMS-enabled phone number.
Request body
Example
List numbers
List all phone numbers for this project.
Query parameters
Example
Look up a number
Check line-type intelligence for any phone number before you message it: whether it is a mobile, landline, or VoIP line, its country, and whether the handset supports RCS. Useful for keeping agents from spending messages on numbers that can never receive them.
Billed at $0.009 per number looked up.
Query parameters
Example
lineType is "mobile", "landline", or "voip"; fields are null when a number cannot be resolved. Accounts with a negative balance receive a 402 before any lookup runs.
Delete number (release)
Release (delete) a phone number.
This action:
- Releases the number back to the carrier pool
- Marks the number as
"released"in the database - Keeps all messages and conversation history for audit purposes
This action is irreversible. The number cannot be recovered once released.
Example
Get messages for number
Get messages for a specific phone number. Supports cursor-based pagination via before/after timestamps.

