Manage Sinch phone numbers: search available numbers, view active numbers, update configuration, and release numbers. See Sinch Numbers API on developers.sinch.com for product documentation.
Interactive by default. These commands prompt for filters before running:
active listasks for region and number type;available searchasks for region, type, capabilities, and a digit pattern. Pass the corresponding filter flags shown in each command's option table below — or add--non-interactive— to skip the prompts and get immediate output, which is what you want in scripts and CI. Foravailable searchthe digit-pattern prompt is part of the search query rather than a post-filter; leave it blank (press Enter) to match any number.
Manage phone numbers currently active in your project.
List all active phone numbers, with optional filters.
sinch numbers active list [options]| Option | Description |
|---|---|
-r, --region <code> | Filter by region code (e.g., US, GB, SE) |
-t, --type <type> | Filter by type: MOBILE, LOCAL, or TOLL_FREE |
-c, --capability <cap...> | Filter by capability: SMS, VOICE |
-p, --pattern <digits> | Filter by digit pattern |
--search-pattern <mode> | Pattern match mode: START, CONTAINS, or END |
-l, --limit <number> | Maximum results to return |
--non-interactive | Skip prompts; list with whatever filters are given |
--json | Output as JSON |
Get details for a specific active number.
sinch numbers active get [phone-number]The number is accepted in E.164 (+12027887772). Numbers copied straight from active list output — which prints the pretty format +1 202-788-7772 — are normalized automatically, so you can paste them directly. This normalization also applies to active update, active release, and available check/rent.
Update configuration for an active number (display name, SMS service plan, voice app, or callback URL).
sinch numbers active update [phone-number] [options]| Option | Description |
|---|---|
-d, --display-name <name> | New display name |
--sms-service-plan <id> | SMS service plan ID (empty string to unlink) |
--voice-app <id> | Voice app ID |
--callback-url <url> | Callback URL for provisioning events |
Release an active number, cancelling your subscription. Requires confirmation.
sinch numbers active release [phone-number] [-f, --force]Search for and rent available phone numbers. This is a group of subcommands:
| Subcommand | Purpose |
|---|---|
search | Search for available numbers to rent |
check <phone-number> | Check whether a specific number is available |
rent <phone-number> | Rent (activate) a specific number |
rent-any | Rent any number matching your criteria (US LOCAL) |
sinch numbers available search [options]| Option | Description |
|---|---|
-r, --region <code> | Region code (e.g., US, GB, SE) |
-t, --type <type> | Number type: MOBILE, LOCAL, or TOLL_FREE |
-c, --capabilities <cap...> | Capabilities: SMS, VOICE |
-p, --pattern <digits> | Digit pattern to match |
--search-pattern <mode> | Pattern match mode: START, CONTAINS, or END |
-s, --size <number> | Maximum results |
--non-interactive | Skip prompts; search with whatever flags are given |
--json | Output as JSON |
sinch numbers available rent [phone-number] [options]| Option | Description |
|---|---|
--sms-service-plan <id> | SMS service plan ID (see "Renting with SMS") |
--sms-campaign <id> | SMS campaign ID (for US numbers) |
--voice-app <id> | Voice app ID (for RTC) |
--voice-type <type> | Voice config type: RTC, EST, or FAX |
--trunk-id <id> | EST trunk ID (when --voice-type EST) |
--callback-url <url> | Callback URL for provisioning events |
--data-file <path> | KYC registration JSON (see sinch numbers order) |
-f, --force | Skip the confirmation prompt |
--non-interactive | Skip prompts; require configuration as flags |
--json | Output as JSON |
Some numbers show [docs required] in search results. It means the number's region requires supporting documentation (for example proof of address or business identity) before the number can be activated. Whether it applies varies by region, and it is driven by the number's supportingDocumentationRequired field from the Numbers API.
Renting one of these still works, and provisioning may simply pause until the documents are supplied. If the rental is rejected outright, rent automatically switches to the guided KYC ordering flow described under sinch numbers order — you answer the region's questionnaire inline and the order goes for review. Nothing is activated in that case until a Sinch compliance reviewer approves it.
One exception: if the API turns out to have no requirements on file for that region and number type, there is no questionnaire to run, so rent reports the original rental error instead of starting the order flow.
When you rent a number and choose to configure SMS, the CLI asks for an SMS service plan ID. Unlike fax services and EST trunks — which the CLI can list into a picker — SMS service plans have no list endpoint, so there is no in-CLI lookup. Copy your Service Plan ID from the dashboard at dashboard.sinch.com/sms/api/rest and paste it when prompted (or pass --sms-service-plan <id>).
Order numbers in regions that require regulatory identity documentation (KYC). Most users never invoke these directly — available rent falls back to this flow automatically when a rental is rejected for missing documentation.
An order is a different thing from a rental. Renting activates a number immediately; an order reserves the numbers for between 30 minutes and 48 hours, collects the region's KYC questionnaire and any required attachments, then submits the whole thing for human compliance review. The numbers become active only if that review passes.
A reservation cannot be cancelled. The Numbers API provides no cancel endpoint — an order you no longer want simply holds its numbers until
expireTimepasses. The confirmation prompt shown before the order is created is the last reversible moment in the flow.
Runs the whole flow: look up the region's requirements, choose numbers, reserve them, fill in the questionnaire, upload attachments, submit.
Not every region and number type needs paperwork. When the requirements lookup comes back empty, create says so and points you at sinch numbers available instead of starting the questionnaire — nothing is reserved in that case.
Interactively, and with neither --number nor --quantity given, create searches the region for available numbers and offers them as a checklist. Numbers requiring supporting documentation are tagged [docs required], the same as in sinch numbers available search. Tick as many as you want: one questionnaire covers every number in the order. Selecting nothing exits without reserving anything.
sinch numbers order create [options]| Option | Description |
|---|---|
-r, --region <code> | Region code (e.g. AU, DE, BR) |
-t, --type <type> | Number type: MOBILE, LOCAL, or TOLL_FREE |
-n, --number <e164...> | Specific phone number(s) to order; skips the search |
-q, --quantity <count> | Order any N matching numbers instead of specific ones; skips the search |
--sms-service-plan <id> | SMS service plan ID |
--sms-campaign <id> | SMS campaign ID (US 10DLC) |
--callback-url <url> | Callback URL for order events |
--data-file <path> | JSON file holding the KYC answers (required with --non-interactive) |
-f, --force | Skip confirmation prompts |
--non-interactive | Skip prompts; require --data-file |
--json | Output as JSON |
The questionnaire is not fixed. The CLI fetches it from the API at run time and builds the prompts from it, because each region defines its own fields and those change when regulators change the rules. Expect questions about intended traffic, the end business, and a contact person.
For CI, --data-file takes a JSON array whose entries line up positionally with the sections the API returns (or an object with a data key holding that array). Run the command interactively once to see the section order for your region.
Continue an order that was interrupted, or fix one that failed validation.
sinch numbers order resume [orderId] [options]Omit the ID to pick from orders tracked on this machine. The CLI works out where the order actually is by asking the API — whether it still needs the questionnaire, an attachment, or just submission — rather than trusting anything stored locally.
A validation failure on the questionnaire does not invalidate the order. Correct the answers and resume; the original reservation is still yours, and re-creating the order would only restart the 48-hour clock.
sinch numbers order get <orderId> [options]Shows state, reserved numbers, and time left on the reservation. For a REJECTED or BLOCKED order it also prints the compliance reviewer's feedback, which is the only explanation of why the order failed.
sinch numbers order list [options]Lists orders and refreshes each one's state from the API.
This list is local. The Numbers API has no endpoint for listing orders, so the CLI records the IDs of orders you create on this machine. Orders created elsewhere — the dashboard, another machine, a colleague — will not appear, and you will need the order ID to act on them. Only order identifiers are stored; your KYC answers are never written to disk.
List regions where phone numbers are available.
sinch numbers regions [options]| Option | Description |
|---|---|
-t, --type <type> | Filter by number type |
-c, --capability <cap> | Filter by capability |