Skip to main content
Languages: every operation supports cURL, Node.js (TypeScript), Python, Go, Ruby, and PHP. The first 15 operations on this page show all six languages; the remaining 212 show cURL and TypeScript — the two most-used.

Numbers API

Numbers endpoints exposed by the Devotel CPaaS API Base path: /api/v1/numbers Endpoint count: 227

Worked sequences

The endpoint list below documents each operation with its parameters, but the two flows that integrate against this surface — renting a number and porting one in — span several calls, and their response bodies are what you branch on. These two sequences show every call in order with the body each one returns.

Sequence 1 — rent a number

Go from inventory search to an active, capability-checked number in three calls. Step 1 — search inventory. Filter by country, line type, capability, and area code. Each result carries the per-number capability list and monthly price, so you can filter before you buy.
200
For a regulated country (most of the EU/EEA, GB, and several others), run GET /api/v1/numbers/regulatory-preview?country… before this step — it returns the documents and data fields the carrier requires, and whether a compliance profile you already hold satisfies them.
Step 2 — purchase the number. Submit the E.164 you picked. The 201 body returns the owned-number record — save the id, because every follow-up operation (configure, suspend, release) addresses the number by it. Billing starts immediately.
201
Step 3 — verify the provisioned number. Read the number back by its id to confirm it is active and that the capabilities you ordered are the ones the carrier actually provisioned — a regulated country can hold the number at pending_compliance until the required documents clear.
200

Sequence 2 — port a number in

Move an existing number from a losing carrier onto the platform. A full port runs eligibility check → LOA upload → submit → poll status; the check step is optional but cheap, and it turns a multi-day carrier rejection into an instant answer. Step 1 — check eligibility (recommended). Run a live pre-flight against the losing carrier’s database. The response tells you in seconds whether the number can port; US and Canadian numbers are checked live, other countries return check-not-supported and proceed straight to submission.
200
Step 2 — submit the port-in request. Send the numbers, the losing carrier, and the account details the carrier will verify. The 201 body returns the request id and the starting status — porting requests move submitted → reviewing → approved → completed, with rejected as the carrier-declined terminal state. Branch on these values; there is no pending state.
201
Step 3 — poll status until complete. Read the request’s status timeline; each stage transition appends an entry with the stage name and a recommendedAction when the port is waiting on you (for example, a supplement on a rejection). Porting typically takes 7–14 business days depending on the country and carrier — subscribe to the number.ported webhook instead of polling once you are past submission.
200
When the timeline reaches completed, the numbers appear in your GET /api/v1/numbers/ inventory as active.

Error samples

Two purchase-time rejections account for most failed buys; both return the standard error envelope with a stable code you can branch on. Regulated country without a compliance profile — buying a number in a country that requires verified end-user documents before the carrier will activate it:
422
Fix it by creating and approving a compliance profile that covers the country (under Settings → Compliance in the dashboard), then passing its id as compliance_profile_id on the retry. No billing happens on this rejection — your balance is untouched. Number already owned — the number sold between your search and your purchase, or is already on an account:
409
Fix it by re-running the search and submitting another candidate. Search results are live inventory, not holds — treat a purchase attempt as a claim race and retry with the next match.

List numbers

GET /api/v1/numbers
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get numbers

GET /api/v1/numbers/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Per-DID configuration activity log

GET /api/v1/numbers/{id}/activity-log
Cursor-paginated change history for a single owned DID — the mutation timeline (routing repoints, CNAM / emergency-address edits, dispatchable-location, campaign assignment, compliance attach, release / renew, port-out, …) with the acting user, the channel it was performed via, the source IP, and a per-event details payload. Backs the dashboard number-activity tab and gives operators a “who changed this number” audit trail and compliance reviewers a per-resource mutation record (Twilio / Telnyx per-resource change-history parity). Pure read of locally-stored audit_logs, org-scoped + ownership-gated. Read-only; scoped on numbers:read.
string
required
—
integer
Number of events per page (1–100, default 50).
string
Opaque <created_at>|<id> cursor from the previous page’s meta.pagination.cursor. Omit for the first page.
string
Optional exact audit-action filter (e.g. number.cnam_registered) for a targeted compliance lookup.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the branded-caller profile for a number

GET /api/v1/numbers/{id}/branded-caller-profile
Read the per-DID Branded Calling (Rich Call Data) profile — a verified display name, brand logo, and reason-for-call registered against this specific number, which OVERRIDES the org-level default when the DID is used as the outbound caller-id. Returns profile: null when none has been captured. Pure read; org-ownership gated.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List branded-calling-analytics

GET /api/v1/numbers/{id}/branded-calling-analytics
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List branded-calling-cohort

GET /api/v1/numbers/{id}/branded-calling-cohort
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List campaign-assignment

GET /api/v1/numbers/{id}/campaign-assignment
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List cnam

GET /api/v1/numbers/{id}/cnam
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List dip

GET /api/v1/numbers/{id}/cnam/dip
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List spam-labels

GET /api/v1/numbers/{id}/cnam/spam-labels
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List cost-analytics

GET /api/v1/numbers/{id}/cost-analytics
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the deliverability score for a number

GET /api/v1/numbers/{id}/deliverability-score
Per-DID deliverability score: score (0-100), tier, last_computed_at, and a contributing-factor breakdown from the daily number-health-score tick (read-only, no live re-compute). This is the industry-standard ‘Deliverability Score’ vocabulary applied to the same snapshot served by /:id/health; distinct from /:id/reputation, which reads carrier-displayed caller-ID labels.
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the 411/DA directory listing for a number

GET /api/v1/numbers/{id}/directory-listing
Read the captured 411/DA (directory-assistance white-page) listing state for an owned DID. Returns listing: null when nothing has been captured yet. Pure read; no carrier call. Org-ownership gated.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List documents

GET /api/v1/numbers/{id}/documents
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List emergency-address

GET /api/v1/numbers/{id}/emergency-address
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List the dispatchable emergency locations for a number

GET /api/v1/numbers/{id}/emergency-address/location
Read every device-scoped E911 dispatchable location registered against an owned DID, keyed by device_key, plus the bounded update history. These dynamic, per-device locations layer on top of the DID’s single static emergency address (GET /numbers/{id}/emergency-address) without replacing it, so a nomadic soft-phone user gets a distinct dispatchable address at call time (RAY BAUM’s Act / Kari’s Law). Returns empty locations/history when nothing has been registered. Pure read; org-ownership gated.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List fax-routing

GET /api/v1/numbers/{id}/fax-routing
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List flood-guard

GET /api/v1/numbers/{id}/flood-guard
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the deliverability health score for a number

GET /api/v1/numbers/{id}/health
Per-DID deliverability health: score, tier, last_computed_at, and a contributing-factor breakdown from the daily number-health-score tick (read-only, no live re-compute). Distinct from /:id/reputation, which reads carrier-displayed caller-ID labels.
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the deliverability health trend + forecast for a number

GET /api/v1/numbers/{id}/health/trend
Per-DID deliverability health trajectory: a per-period score series, trend direction + slope, a linear forecast at a configurable horizon, and a step-change anomaly flag (read-only, live bucketed scan). Query: window (30d|60d|90d, default 90d), bucket (day|week, default week), horizon_days (1..60, default 14). Distinct from /:id/health, which serves the daily point-in-time snapshot.
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List network-events

GET /api/v1/numbers/{id}/network-events
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List port-out-protection

GET /api/v1/numbers/{id}/port-out-protection
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List regulator

GET /api/v1/numbers/{id}/regulator
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List reputation

GET /api/v1/numbers/{id}/reputation
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List scheduled-release

GET /api/v1/numbers/{id}/scheduled-release
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get SMS spam-complaint feedback loop for a number

GET /api/v1/numbers/{id}/sms-complaints
Per-DID SMS complaint rate, threshold level, and suppression hold (read-only).
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the predictive spam-likelihood score for a number

GET /api/v1/numbers/{id}/spam-likelihood
Per-DID predictive spam-likelihood: a 0..100 score mapped to low/moderate/high/severe with a contributing-factor breakdown and an ordered remediation playbook. Query: window (7d|14d|30d, default 30d), horizon_days (1..60, default 14 — forwarded to the trend forecast). Distinct from /:id/health (point-in-time deliverability) and /:id/reputation (carrier-displayed label).
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List tfv

GET /api/v1/numbers/{id}/tfv
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List usage-analytics

GET /api/v1/numbers/{id}/usage-analytics
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the 10DLC warming-tier state for a number

GET /api/v1/numbers/{id}/warming
Per-DID 10DLC warming state: current daily_cap, live current_day_count, warming_phase (initial|ramp|steady|verified), trust_score, and warming_started_at (read-only). Returns null for non-10DLC numbers.
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the number-warming progression forecast

GET /api/v1/numbers/{id}/warming/progression
Per-DID warming progression: warming_state (off|warming|warmed), warming_started_at, warming_max_daily_sms, live current_day_count, days_warmed, and a 15-day forecast of the growth-curve ceiling for the FE chart (read-only).
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a number’s inbound call/SMS route

GET /api/v1/numbers/{phoneNumber}/routing
Return the inbound routing configuration for one owned DID — how inbound calls (and, when set, inbound SMS) to this number are handled: the route type (e.g. agent, voicemail, ivr, sip_forward, ring_group), its config, any fallback, business-hours gating, caller-ID filtering, and recording override. Returns 404 when no route is configured (treat as the default voicemail behaviour) or when the number is not owned by the caller’s organization. This reads INBOUND handling only; it does not affect outbound calling. Read-only; scoped on the numbers resource (numbers:read or numbers:write). SIP passwords are redacted to ***.
string
required
The DID in E.164 (e.g. +14155550100). A leading + is optional — it is added if missing.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List applications

GET /api/v1/numbers/applications
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get applications

GET /api/v1/numbers/applications/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

STIR/SHAKEN attestation analytics

GET /api/v1/numbers/attestation-analytics
Org-wide STIR/SHAKEN attestation rollup over outbound calls in the window: the A/B/C/unknown distribution, the answer rate each tier buys (lift vs the C tier), a downgrade-cause breakdown, and an A/B/C mix time-series. Scoped to the caller org’s owned DIDs (a sibling subaccount never sees another org’s mix). Read-only; scoped on numbers:read.
string
Rollup window — one of 24h | 7d | 30d | 90d (default 30d).
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Search available numbers to buy

GET /api/v1/numbers/available
Search live carrier inventory for purchasable phone numbers, filtered by country, line type, capabilities, area code, locality, US rate center, US LATA, Twilio-style geo proximity (near_lat_lng / near_postal_code + distance), and price. Returns paginated candidates — each with its E.164 number, capabilities, monthly + one-time setup price, two-way-SMS flag, and (when resolved) rate center / state / LATA / distance-in-miles — plus a per-country compliance preflight (required / eligible) so a buyer knows up front whether documents are needed. When every carrier is unavailable or unconfigured the response carries setup_required / inventory_limited hints instead of a hard error. Pass a chosen number to POST /numbers/purchase. Read-only discovery; scoped on the numbers resource (numbers:read or numbers:write).
string
ISO 3166-1 alpha-2 country code to search (defaults to US).
string
Line type — one of local | mobile | toll_free.
string
Comma-separated required capabilities — any of sms | mms | voice | fax (e.g. sms,voice).
string
Digit/vanity pattern the number must contain (matched per pattern_type).
string
How contains matches — contains (default) | starts_with | ends_with.
string
NPA / national destination code to restrict to (2–5 digits).
string
City / locality name to restrict to (free text).
string
US rate center (exchange/wire-center) name to restrict to, e.g. SAN FRANCISCO (Bandwidth/Telnyx local-number-selection parity). US/CA only.
string
US LATA code (Local Access and Transport Area), 3-5 digits, e.g. 132 for New York Metro. Resolved from each candidate’s NANP area code. US only.
string
Twilio-parity geo proximity — restrict to numbers whose NPA centroid is within distance miles of this point. Format <lat>,<lng>, e.g. 37.7749,-122.4194. US/CA only.
string
Twilio-parity geo proximity via US ZIP code — resolved to its 3-digit prefix centroid. When both near_lat_lng and near_postal_code are supplied, near_lat_lng wins.
string
Search radius in miles for near_lat_lng / near_postal_code (default 25, clamped to 1-500).
string
true to return only numbers that can both send AND receive SMS.
string
1-based page number (default 1).
string
Results per page (default 20).
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List block

GET /api/v1/numbers/available/block
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List countries with available number inventory

GET /api/v1/numbers/available/countries
List every country that currently has purchasable phone-number inventory across the platform’s carriers, with the line types (local, mobile, toll_free) each can supply. Drives the country dropdown on the Buy Numbers page so a buyer only ever sees countries a search can actually fill. Inventory-truthful — a country with zero live stock never appears — aggregated across carriers (carrier names are never surfaced) and cached ~24h. Read-only; scoped on the numbers resource (numbers:read or numbers:write).
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get bulk-reserve

GET /api/v1/numbers/bulk-reserve/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List fleets

GET /api/v1/numbers/connectivity/fleets
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List network-access

GET /api/v1/numbers/connectivity/fleets/{fleetId}/network-access
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List plans

GET /api/v1/numbers/connectivity/plans
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a connectivity data plan

GET /api/v1/numbers/connectivity/plans/{id}
Fetch a single eSIM / IoT data plan from the connectivity catalog — pricing (monthly fee + per-MB rate), covered countries and regions, and the SIM form factor (esim | iot-sim). Plans are DATA-ONLY: outbound voice/SMS capability is never exposed (invariant #45 — outbound MT exits only via the Devotel softswitch). Returns 404 on an unknown plan id. Read-only; requires the numbers:read scope.
string
required
The connectivity plan id.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List cost-estimate

GET /api/v1/numbers/connectivity/plans/{id}/cost-estimate
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List sims

GET /api/v1/numbers/connectivity/sims
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a connectivity SIM

GET /api/v1/numbers/connectivity/sims/{iccid}
Fetch a single eSIM / IoT connectivity SIM by ICCID — lifecycle state (ordered, active, suspended, terminated), the subscribed data plan, accumulated usage, and the eUICC / eSIM profile where one is assigned. Org-ownership gated: an ICCID another org owns returns 404, never the SIM. Read-only; requires the numbers:read scope.
string
required
The connectivity SIM’s ICCID.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List activation

GET /api/v1/numbers/connectivity/sims/{iccid}/esim/activation
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a connectivity SIM’s data usage

GET /api/v1/numbers/connectivity/sims/{iccid}/usage
Fetch a connectivity SIM’s accumulated data usage — total usage_bytes, the plan’s data_limit_bytes, the configured warning_threshold_pct, and the most recent data sessions — to gauge how close the SIM is to its monthly cap without polling the carrier. Data sessions are recorded via POST /numbers/connectivity/sims//usage. Read-only; requires the numbers:read scope.
string
required
The connectivity SIM’s ICCID.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get number cost analytics

GET /api/v1/numbers/cost-analytics
Return a per-DID cost-attribution rollup joining each owned number’s recurring monthly cost to its realised usage spend over the window, sorted by total spend. Org-scoped; pure read, no carrier call.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Per-country capability + stock summary

GET /api/v1/numbers/country-capabilities
Per-(line_type × capability) inventory summary for a single country so a buyer can see the stock reality (e.g. GB has plenty of local-voice numbers but 0 SMS-capable mobiles) BEFORE running /numbers/available. Counts are bucketed and clamped at 100 (100 means ‘plenty’, not exactly one hundred), aggregated across carriers (provider names are never surfaced), and cached server-side for 5 minutes. Pre-purchase discovery read; scoped on numbers:read.
string
ISO 3166-1 alpha-2 country code to summarise (e.g. GB, US). Required — a missing/invalid value returns a 422 envelope from the handler.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List numbers with expiring regulatory documents

GET /api/v1/numbers/document-expiry-alerts
Org-scoped list of owned DIDs whose carrier compliance deadline or attached compliance-profile document is already expired or falls due within the look-ahead window (default 30 days; override on the org or preview via ?days=). Each row carries the soonest expiry, days-to-expiry, and a suggested_action (renew | renew_or_release) so the dashboard can warn customers before they silently lose a number to a compliance lapse. Read-only; scoped on numbers:read.
string
Optional look-ahead window override (integer 1–365). When omitted, the per-tenant org setting (or the platform default of 30) is used.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List dormant DID release candidates

GET /api/v1/numbers/dormancy-alerts
Org-scoped list of owned DIDs with no inbound/outbound calls or SMS for the dormancy window (default 30 days; override on the org or preview via ?days=). Each row carries the reclaimable monthly spend and a suggested_release flag so the dashboard can drive silent-number cost trimming. Companion read surface to the number.dormant webhook. Read-only; scoped on numbers:read.
string
Optional dormancy window override (integer 1–365). When omitted, the per-tenant org setting (or the platform default of 30) is used.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Export the number inventory

GET /api/v1/numbers/export
Export the organization’s phone-number inventory as a downloadable file. Pure read on the tenant’s phone_numbers table; no carrier call and no outbound voice/SMS path.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List hosted-messaging

GET /api/v1/numbers/hosted-messaging
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get hosted-messaging

GET /api/v1/numbers/hosted-messaging/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Inbound STIR/SHAKEN attestation analytics

GET /api/v1/numbers/inbound-attestation-analytics
Org-wide STIR/SHAKEN attestation rollup over INBOUND calls in the window: the A/B/C/failed/none/unknown distribution, the answer rate each tier gets (lift vs the A tier), a spoof-risk breakdown (verification-failed + unsigned), and an attestation-mix time-series so customers can detect spoofed/fraudulent inbound traffic and monitor carrier signing quality. Scoped to the caller org’s owned DIDs (a sibling subaccount never sees another org’s mix). Read-only; scoped on numbers:read.
string
Rollup window — one of 24h | 7d | 30d | 90d (default 30d).
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List health

GET /api/v1/numbers/inbound-resolution/health
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List inbound reverse-map gaps

GET /api/v1/numbers/inbound-reverse-map-gap
Org-scoped list of SMS-capable owned DIDs missing their public.phone_number_owners reverse-map entry — inbound MO/DLR to such a number may silently drop until the hourly reverse-map reconciler backfills it. Org-scoped; pure read.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List international-freephone

GET /api/v1/numbers/international-freephone
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get international-freephone

GET /api/v1/numbers/international-freephone/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List coverage

GET /api/v1/numbers/international-freephone/coverage
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List low-stock inventory alerts

GET /api/v1/numbers/inventory-alerts
List live low-stock DID inventory alerts — one row per (country, area-code prefix) bucket whose available count is below the tenant’s configured threshold. Powers the dashboard low-inventory banner. Pure read.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Number-Intelligence lookup history & spend analytics

GET /api/v1/numbers/lookup-history
Number-Intelligence console analytics — a pure read over the finance ledger (public.credit_transactions) of every billed number lookup (single, by-number, trust-package, and bulk all debit the wallet via the number_lookup channel). Returns, scoped to the caller’s org: a daily lookup-count + spend series over the requested window, the configured per-tenant daily cost cap with today’s spend against it, and a recent-activity feed. No carrier call and no mutation. Read-only; scoped on numbers:read.
string
Window length in days for the daily series. Integer 1-90, default 30; out-of-range or non-numeric values are rejected by the handler with a 422 VALIDATION_ERROR.
string
Number of entries in the recent-activity feed. Integer 1-100, default 25; out-of-range or non-numeric values are rejected by the handler with a 422 VALIDATION_ERROR.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Full phone number intelligence lookup

GET /api/v1/numbers/lookup/{phoneNumber}
Full number intelligence (carrier / portability / SIM swap / roaming / live status) for a single E.164 phone number. Uses Devotel HLR as primary and Telnyx as fallback. When fields= is supplied (comma-separated or JSON array), the response also carries a dataPackages map keyed by the requested field names — each entry carries a discriminated status enum (available | coming_soon | not_implemented | error), a reason string, the intended provider, and an optional data payload when realised. The cnam and caller_name (Twilio-compat CNAM alias) fields return the registered caller name in data.caller_name (sourced from the Telnyx caller-name dip); data.caller_name is null when the number has no CNAM record, and the fields fall back to coming_soon only when the dip is not configured. The sms_pumping_risk field (Twilio Lookup v2 SMS-pumping-risk parity) returns a transparent 0-100 fraud score in data.score with a data.risk_level bucket (low/medium/high) and the contributing signals (line_type, line_type_risk, reachable, ported) — derived from the same HLR/Telnyx upstream the lookup already fetched, so fraud/ATO teams can score a number before granting an OTP send. The reassigned_number field (Twilio Lookup v2 US-only Reassigned Number parity) checks the FCC Reassigned Numbers Database (47 CFR § 64.1200(m)) for the TCPA reassigned-number safe harbor — supply consent_date (YYYY-MM-DD) and data carries status (yes = disconnected after consent, no = safe harbor applies, no_data = no record), safe_harbor, and last_disconnect_date; it returns error (consent_date_required) when consent_date is omitted and coming_soon until the RND feed is provisioned. The call_forwarding field (Twilio Lookup v2 forwarding parity) returns a DERIVED, best-effort signal in data.call_forwarding (boolean) inferred from the HLR reachability dip — an unreachable valid line is the classic proxy for an active unconditional divert; it is explicitly flagged data.derived: true with data.confidence: "low" (NOT an operator-asserted forwarding flag, which would need the paid Telnyx add-on) and falls back to coming_soon only when HLR returns no usable reachability signal. The sim_swap field (Twilio Lookup v2 SIM-swap parity) returns the carrier-asserted SIM-swap signal in data — last_swap_date (the most recent SIM-change timestamp), swapped (whether a change falls inside the look-back window), and a risk_level bucket (high within 24h, medium within 7d, low otherwise) — sourced from the GSMA Open Gateway / CAMARA SIM Swap network API so account-takeover and step-up-auth flows can block or challenge high-risk numbers. It falls back to coming_soon only when no CAMARA operator is configured for the deployment. The number_reputation field (Twilio Lookup v2 Number Reputation parity) returns a transparent 0-1 spam/fraud risk score in data.risk_score with a data.risk_bucket (low/medium/high), the data.factors that fired, and the contributing signals (line_type, reachable, ported, sim_swapped) — DERIVED from the same HLR/Telnyx upstream the lookup already fetched (flagged data.derived: true, NOT a paid reputation feed); it falls back to not_implemented only when no usable signal is present. The identity_match field (Twilio Lookup v2 Identity Match parity) matches caller-supplied identity attributes against the mobile operator’s own KYC records via the CAMARA KYC Match network API — supply one or more identity_* attributes (identity_name, identity_given_name, identity_family_name, identity_birthdate, identity_email, identity_id_document) and data carries per-attribute verdicts in data.matches (true/false/not_available), any partial-match data.scores, and an aggregate data.overall_match — never the underlying PII. It returns error (identity_attributes_required) when no attribute is supplied and coming_soon until a CAMARA operator is configured. The live_activity field (Twilio Lookup real-time reachability parity) returns a DERIVED, real-time reachability verdict fused from the live HLR dip — data.active_line (whether the SIM is currently reachable on-network), data.roaming (whether the serving network differs from the home network), data.serving_network_mcc + data.serving_country (the current serving network), data.ported, and a composite data.fraud_risk bucket (low/medium/high/unknown) — so fraud/ATO teams can score real-time reachability before an OTP send; it is flagged data.derived: true (NOT a paid live-activity feed) and falls back to coming_soon only when the upstream returns no usable live signal. Mirrors the Twilio Lookup v2 add-on selector.
string
required
Phone number in E.164 format. URL-encode the leading + (or use %2B). The route also accepts an unencoded + for back-compat — decodeURIComponent runs server-side.
string
Optional Twilio-compat data-package selector. Comma-separated list of field names from the enumeration below (case-insensitive, deduped server-side, max 16 fields per request). Unknown field names reject the whole request with 422.
Required only when reassigned_number is in fields. The date (YYYY-MM-DD) prior-express consent was obtained or last verified. The FCC reassigned-number safe harbor is evaluated against this date — if reassigned_number is requested without it, that field returns status: error (consent_date_required) while the rest of the response is unaffected.
string
Used only when identity_match is in fields. Full registered name to verify against the operator’s KYC records. Supply at least one identity_* attribute when requesting identity_match, else that field returns status: error (identity_attributes_required).
string
Used only when identity_match is in fields. Given (first) name to verify against the operator’s KYC records.
string
Used only when identity_match is in fields. Family (last) name to verify against the operator’s KYC records.
string
Used only when identity_match is in fields. Date of birth (YYYY-MM-DD) to verify against the operator’s KYC records.
string
Used only when identity_match is in fields. Email address to verify against the operator’s KYC records.
string
Used only when identity_match is in fields. Government ID document reference to verify against the operator’s KYC records.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List number orders

GET /api/v1/numbers/orders
List the organization’s bulk number-purchase order records, each with per-line delivered/failed fulfillment status, so customers can audit partial fulfillment of large orders. Inbound DID provisioning only; pure read.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a number order

GET /api/v1/numbers/orders/{id}
Get a single bulk number-purchase order record by id, including its per-line delivered/failed fulfillment status. Inbound DID provisioning only; pure read.
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List porting

GET /api/v1/numbers/porting
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a port-in request timeline

GET /api/v1/numbers/porting/{id}/timeline
Return a structured, per-stage view of a port-in request — submitted, LOA validation, carrier review, FOC assigned, FOC scheduled, and completed — with each stage marked current, completed, pending, or skipped, an elapsed-days counter, the FOC date once assigned, and, on rejection, a plain-English explanation of the carrier reject code plus a recommended action. Read-only; no carrier call is made. Requires the numbers:read scope.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List port-out requests

GET /api/v1/numbers/porting/out
List every customer-initiated port-OUT request for the organization, each with its tracking id, the gaining carrier, the E.164 numbers being migrated away, and its current provider lifecycle status. Read-only; requires the numbers:read scope. Inbound number administration only — no outbound (MT) voice/SMS path is created (invariant #45).
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a port-out request

GET /api/v1/numbers/porting/out/{id}
Fetch a single customer-initiated port-OUT request by id, including its current provider status, the requested gaining carrier, and its lifecycle timeline.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List toll-free RespOrg change requests

GET /api/v1/numbers/porting/toll-free/resporg
List this organization’s toll-free RespOrg-change requests (bring-in and release-out). Pure read; no carrier call.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a toll-free RespOrg change request

GET /api/v1/numbers/porting/toll-free/resporg/{id}
Fetch a single toll-free RespOrg-change request by id. Pure read; no carrier call.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List recoverable (snapback) numbers

GET /api/v1/numbers/recoverable
List the calling org’s recently-released numbers that are still recoverable via snapback — sitting in the post-release parking cooldown, not yet resold, and within the recovery window. Each row carries the id and recoverable_until deadline needed to drive POST /numbers/{id}/reclaim. Keyset-paginated on the parking deadline so a telco-scale tenant with a large parked inventory never returns an unbounded list. Org-scoped; read-only on numbers:read.
integer
Recoverable numbers per page (default 25). Hard-capped server-side at 100 — larger values are silently clamped, not rejected.
string
Opaque keyset cursor from the previous page’s data.next_cursor (ordered by the parking deadline). Omit for the first page.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List regulatory bundles

GET /api/v1/numbers/regulatory-bundles
List the regulatory compliance bundles covering the organization’s numbers, filterable by country and lifecycle status. Org-scoped so a sibling subaccount never sees another org’s bundles. Pure read; no carrier call.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Pre-purchase regulatory preview for one country

GET /api/v1/numbers/regulatory-preview
Live, single-country regulatory preview a buyer calls BEFORE /numbers/purchase: the identity/address documents and data fields a purchase will require, the expected activation window for regulated countries, and — scoped to the caller’s organization — whether an existing compliance profile already satisfies the requirements (compliance_profile_satisfies). Use the all-country catalog /numbers/regulatory-requirements for bulk discovery; use this for the at-a-glance ‘documents needed’ disclosure on a specific country/line type. Pre-purchase discovery read; scoped on numbers:read.
string
ISO 3166-1 alpha-2 country code (required — a missing/invalid value returns a 422 envelope from the handler).
string
Line type the requirements vary by — one of local | mobile | toll_free (default local).
string
Optional carrier to narrow the schema to — one of telnyx | didww. When omitted, the requirement sets from every provider that could serve the country are unioned.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Discover pre-purchase regulatory requirements

GET /api/v1/numbers/regulatory-requirements
Enumerate the identity/address documents and data fields a number purchase will require BEFORE ordering, so documents are collected proactively instead of via a carrier-side bundle decline. With ?country= it returns that single country’s record; without it, the catalog across every regulated country for the line type. Pure catalog read off the compliance registry — no carrier call, no tenant coupling. Read-only; scoped on numbers:read.
string
Optional ISO 3166-1 alpha-2 country code. When omitted, returns the catalog across all regulated countries.
string
Line type the requirements vary by — one of local | mobile | toll_free (default local).
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List numbers about to lapse with auto-renew off

GET /api/v1/numbers/renewal-expiry-alerts
Org-scoped list of owned, active DIDs whose auto-renew preference is OFF and whose next_billing_at paid-through boundary is already past or falls due within the look-ahead window (default 30 days — one full billing cycle; override on the org or preview via ?days=). Each row carries the next billing date, days-to-expiry, monthly cost, and a suggested_action (renew | renew_now) so the dashboard can warn customers before they silently lose a number they meant to keep. Read-only; scoped on numbers:read.
string
Optional look-ahead window override (integer 1–365). When omitted, the per-tenant org setting (or the platform default of 14) is used.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Preview the number-replenishment plan

GET /api/v1/numbers/replenishment-plan
Preview the number-replenishment plan the current policy would execute — which numbers it would source and buy — without ordering anything. Read-tier; inbound DID provisioning only.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the number-replenishment policy

GET /api/v1/numbers/replenishment-policy
Get the organization’s automatic number-replenishment policy (target stock levels and buy triggers persisted on the org settings). Read-tier; inbound DID provisioning only.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List carrier reputation alerts

GET /api/v1/numbers/reputation-alerts
Return a fleet-wide carrier spam-label rollup (Spam Likely / Scam Likely) across every monitored owned DID so operators can see which numbers the carrier ecosystem is currently flagging. Org-scoped; pure read.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Preview the reputation-remediation plan

GET /api/v1/numbers/reputation-remediation-plan
Preview the closed-loop remediation plan for degraded owned DIDs — what the policy WOULD do — without mutating routing, ordering a number, or retiring anything. Read-tier.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the reputation-remediation policy

GET /api/v1/numbers/reputation-remediation-policy
Get the organization’s closed-loop number-reputation remediation policy (quarantine, replacement and re-attestation settings) persisted on the org settings. Read-tier; no mutation.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List short-code applications

GET /api/v1/numbers/short-codes
List every SMS short-code leasing/provisioning application for the organization, each with its current lifecycle status (draft, submitted, vetting, provisioned, rejected, or cancelled).
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a short-code application

GET /api/v1/numbers/short-codes/{id}
Fetch a single SMS short-code application by id, including its program brief, lease type and term, requested/assigned code, and per-carrier vetting status.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a short-code application’s carrier-vetting timeline

GET /api/v1/numbers/short-codes/{id}/timeline
Return the structured carrier-vetting timeline for one SMS short-code application: an ordered list of stages (submitted → CSCA reservation → program-brief review → carrier vetting → provisioned) with each stage’s state (completed / current / pending / skipped) and typical wait, the per-carrier vetting snapshot, calendar days elapsed since submission, and the lease renew-by date once provisioned. Use it to render a step-by-step progress view of the multi-week review without calling the aggregator. Returns 404 if no application with that id belongs to the caller’s organization. Read-only; requires the numbers:read scope.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List toll-free numbers and their verification status

GET /api/v1/numbers/tfv
List every toll-free DID the organization owns together with its Toll-Free Verification (TFV) state — status, submission and approval timestamps, any rejection reason, the submitted use case, the carrier / provider submission id, and the business-identity fields (EIN or business registration number + country). Use it to render the TFV dashboard and spot numbers that are unverified or rejected before toll-free traffic is throttled with 30032 errors. Results are keyset-paginated: pass cursor (from the previous page’s meta.pagination) and limit. Scoped to the caller’s owned DIDs so a sibling sub-org sharing the tenant schema never sees another org’s attestation. Read-only; requires the numbers:read scope.
string
Opaque pagination cursor returned as meta.pagination.cursor on the previous page.
string
Max entries per page (default 25). Values above 200 are silently clamped, never rejected.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List tracking-pools

GET /api/v1/numbers/tracking-pools
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get tracking-pools

GET /api/v1/numbers/tracking-pools/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List resolve

GET /api/v1/numbers/tracking-pools/resolve
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get the organization’s active trial number

GET /api/v1/numbers/trial
Return the organization’s current trial phone-number assignment from the shared pool — the free 24-hour test number claimed via POST /numbers/claim-trial. Use it to render the trial card on the dashboard and decide whether to show the “claim a trial number” call to action. Responds 200 with data: null when the organization holds no active (unexpired, unreleased) trial, so a missing trial is not an error. Read-only; requires the numbers:read scope.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List number-waitlist entries

GET /api/v1/numbers/waitlist
List the organization’s standing DID backorder / notify-when-available waitlist entries for exhausted (country, area code, number type) pools. Read-tier; inbound DID sourcing only.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List availability

GET /api/v1/numbers/waitlist/availability
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create attach-compliance-profile

POST /api/v1/numbers/{id}/attach-compliance-profile
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Dispatch cnam

POST /api/v1/numbers/{id}/cnam/dispatch
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Remediate cnam

POST /api/v1/numbers/{id}/cnam/remediate
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Spam-labels cnam

POST /api/v1/numbers/{id}/cnam/spam-labels
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Dispatch the captured directory listing to the wholesale queue

POST /api/v1/numbers/{id}/directory-listing/dispatch
Hand the captured 411/DA directory listing off to the Devotel wholesale-softswitch LIDB/directory provisioning queue (advances pending/failed -> submitted, stamps submitted_at). 404 when there is no captured listing to dispatch; 409 when it is already submitted/active. INVARIANT #45 safe — the authoritative directory write runs on the operator-managed Devotel wholesale side-band; no Telnyx/DIDWW write. Org-ownership gated + audit-logged.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create upload

POST /api/v1/numbers/{id}/documents/{docId}/upload
string
required
—
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Refresh documents

POST /api/v1/numbers/{id}/documents/refresh
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Register or replace a dispatchable emergency location

POST /api/v1/numbers/{id}/emergency-address/location
Register (or fully replace) the E911 dispatchable location for one device on an owned DID. The location is keyed by device_key, structurally validated on write (required civic fields, per-country postal shape, lat/lng range — the verdict is returned as validation_status/validation_issues, it does not reject the write), and appended to the number’s update history. Pure emergency-location metadata: this enriches WHERE a 911 call is dispatched to, never how a call egresses. Org-ownership gated + audit-logged.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
—
string
—
string
required
House number + street.
string
Apartment / suite / floor.
string
required
—
string
required
—
string
required
—
string
required
ISO-3166 alpha-2 country code; normalized to upper-case.
number
—
number
—
string (enum: manual|softphone|api)
required
How this location was captured.
string
required
Identifier of the roaming extension / device the location belongs to — the same identifier the device registers with.

Psap-confirmation emergency-address

POST /api/v1/numbers/{id}/emergency-address/psap-confirmation
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Verify emergency-address

POST /api/v1/numbers/{id}/emergency-address/verify
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create port-out

POST /api/v1/numbers/{id}/port-out
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create port-out-protection

POST /api/v1/numbers/{id}/port-out-protection
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create reactivate

POST /api/v1/numbers/{id}/reactivate
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create reassign

POST /api/v1/numbers/{id}/reassign
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create reclaim

POST /api/v1/numbers/{id}/reclaim
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create repair-provisioning

POST /api/v1/numbers/{id}/repair-provisioning
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Observations reputation

POST /api/v1/numbers/{id}/reputation/observations
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Submissions reputation

POST /api/v1/numbers/{id}/reputation/submissions
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create retry-release

POST /api/v1/numbers/{id}/retry-release
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Ingest an SMS spam-complaint report for a number

POST /api/v1/numbers/{id}/sms-complaints/reports
Record a carrier/CTIA complaint report (counts per period) and recompute the rollup.
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create suspend

POST /api/v1/numbers/{id}/suspend
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create tfv-refresh

POST /api/v1/numbers/{id}/tfv-refresh
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create tfv-submit

POST /api/v1/numbers/{id}/tfv-submit
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Applications numbers

POST /api/v1/numbers/applications
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create bind

POST /api/v1/numbers/applications/{id}/bind
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create unbind

POST /api/v1/numbers/applications/{id}/unbind
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Bulk HLR lookup for up to 100 numbers

POST /api/v1/numbers/bulk-lookup
Validate and enrich up to 100 phone numbers in a single HLR (Home Location Register) lookup, returning per-number line type, carrier/network, portability, and reachability. Use it to scrub a list before a campaign — invalid or unreachable numbers surface per row so you can drop them ahead of send. Wallet balance is pre-checked for the whole batch and only successfully-resolved rows are billed; a genuinely failed row is not charged. Rate-limited tighter than single lookup (5 requests/minute). Scoped on the numbers resource (numbers:read or numbers:write).
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string[]
The phone numbers to validate/enrich, 1–100 per request (batch size is enforced by the handler, which pre-checks wallet balance for the batch).

Bulk-reserve numbers

POST /api/v1/numbers/bulk-reserve
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create cancel

POST /api/v1/numbers/bulk-reserve/{id}/cancel
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create finalize

POST /api/v1/numbers/bulk-reserve/{id}/finalize
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Bulk-update numbers

POST /api/v1/numbers/bulk-update
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Buy-block numbers

POST /api/v1/numbers/buy-block
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Buy-bulk numbers

POST /api/v1/numbers/buy-bulk
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Claim-trial numbers

POST /api/v1/numbers/claim-trial
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Sims connectivity

POST /api/v1/numbers/connectivity/sims
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create activate

POST /api/v1/numbers/connectivity/sims/{iccid}/activate
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Send an M2M SMS Command to a SIM’s device

POST /api/v1/numbers/connectivity/sims/{iccid}/commands
Send an M2M SMS Command to the SIM’s device (Twilio/KORE Super SIM “SMS Commands” parity). from must be an org-owned active phone number; the command is delivered as a standard SMS routed through Devotel’s wholesale softswitch — no cellular bearer is used. Rejected on a terminated SIM (409, no device left to command). Requires the numbers:write scope.
string
required
The connectivity SIM’s ICCID.
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
required
The SIM device’s phone number, E.164-ish.
string
required
An org-owned active phone number to send from.
string
required
The command payload text.

Activation esim

POST /api/v1/numbers/connectivity/sims/{iccid}/esim/activation
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Provision esim

POST /api/v1/numbers/connectivity/sims/{iccid}/esim/provision
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create ota

POST /api/v1/numbers/connectivity/sims/{iccid}/ota
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create resume

POST /api/v1/numbers/connectivity/sims/{iccid}/resume
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create suspend

POST /api/v1/numbers/connectivity/sims/{iccid}/suspend
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create terminate

POST /api/v1/numbers/connectivity/sims/{iccid}/terminate
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create usage

POST /api/v1/numbers/connectivity/sims/{iccid}/usage
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Hosted-messaging numbers

POST /api/v1/numbers/hosted-messaging
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Sign loa

POST /api/v1/numbers/hosted-messaging/{id}/loa/sign
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create submit

POST /api/v1/numbers/hosted-messaging/{id}/submit
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Repair inbound-resolution

POST /api/v1/numbers/inbound-resolution/repair
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

International-freephone numbers

POST /api/v1/numbers/international-freephone
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create activate

POST /api/v1/numbers/international-freephone/{id}/activate
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create countries

POST /api/v1/numbers/international-freephone/{id}/countries
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create provision

POST /api/v1/numbers/international-freephone/{id}/provision
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create resume

POST /api/v1/numbers/international-freephone/{id}/resume
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create submit

POST /api/v1/numbers/international-freephone/{id}/submit
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create suspend

POST /api/v1/numbers/international-freephone/{id}/suspend
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Search international-freephone

POST /api/v1/numbers/international-freephone/search
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Lookup numbers

POST /api/v1/numbers/lookup
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Trust-package lookup

POST /api/v1/numbers/lookup/trust-package
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Bulk-csv port-in

POST /api/v1/numbers/port-in/bulk-csv
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Porting numbers

POST /api/v1/numbers/porting
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Upload a port-in LOA document

POST /api/v1/numbers/porting/{id}/loa
Upload the Letter of Authorization (LOA) for a port-in request as multipart/form-data under the file field. Accepts a single PDF, JPEG, PNG, or HEIC up to 10 MB; the document is stored and the request’s LOA signature status moves to draft. Replacement is refused once the LOA is signed or submitted — cancel the request and resubmit to attach a different document. Requires the numbers:write scope.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Sign a port-in LOA

POST /api/v1/numbers/porting/{id}/loa/sign
Record an in-platform signature on an uploaded port-in LOA. Send the authorized signer’s name and email plus the verbatim acknowledgement text they agreed to, and the request’s LOA signature status moves from draft to signed. Requires an uploaded LOA and a draft signature status — a second signature returns 422. Requires the numbers:write scope.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Submit a signed port-in LOA

POST /api/v1/numbers/porting/{id}/loa/submit
Forward a signed port-in LOA to the destination carrier and move its signature status to submitted. Manual-mode requests skip the carrier forward so operations can attach the signed document out of band. Requires a signed signature status. Requires the numbers:write scope.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Refresh a port-in request status

POST /api/v1/numbers/porting/{id}/refresh
Re-poll the destination provider for an in-flight port-in order and store the carrier’s latest status on the local row. Manual-mode requests — those submitted without a country, so no carrier order was dispatched — return 422 because there is nothing to refresh. Requires the numbers:write scope.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Supplement a rejected port-in request

POST /api/v1/numbers/porting/{id}/supplement
Correct a carrier-rejected port-in within the carrier’s amend window without restarting the Firm Order Confirmation (FOC) clock. Supply at least one of an updated LOA URL, an updated CSR URL, billing name, billing address, account number, PIN, or a narrative, and the amended details are re-sent to the carrier. Returns 422 when the request is not in a rejected or supplement-submitted state, is manual-mode, or the provider offers no supplement API, and 409 when the carrier refuses (amend window expired or order already completed). Requires the numbers:write scope.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Check port-in eligibility

POST /api/v1/numbers/porting/check
Run a synchronous pre-flight portability check on a single number before creating a port-in request — no LOA is required and no order is created. US/CA numbers are checked live against Telnyx; numbers elsewhere resolve to DIDWW, which has no synchronous check and returns a check-not-supported status. Surface the verdict in the porting wizard to catch a non-portable number up front instead of waiting out the 2–7 business-day submission window. Requires the numbers:read scope.
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
The E.164 number to check for portability (e.g. +14155550100).
string
Optional name of the losing carrier, recorded for telemetry.

Bulk check

POST /api/v1/numbers/porting/check/bulk
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Submit a port-out request

POST /api/v1/numbers/porting/out
Open a customer-initiated port-OUT request to migrate an existing Orbit number away to another carrier (local number portability). Returns the created port-out record with its tracking id and initial provider status. Inbound number administration only — no outbound message/voice path is created (invariant #45).
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Refresh a port-out request

POST /api/v1/numbers/porting/out/{id}/refresh
Re-poll the losing/gaining carrier for the latest status of an in-flight port-OUT request and update the stored record so the dashboard reflects the current provider state.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Pre-validate porting

POST /api/v1/numbers/porting/pre-validate
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Submit a toll-free RespOrg change request

POST /api/v1/numbers/porting/toll-free/resporg
Bring a toll-free number onto the platform (direction: 'in') or release it (direction: 'out') by requesting a Responsible Organization (RespOrg) change via Somos — the SMS/800 analogue of geographic LNP porting (toll-free numbers are never ported carrier-to-carrier). newRespOrgId is required for direction: 'out'. The request is captured and tracked here and fulfilled by operations through Somos out-of-band (no live Somos API integration). Invariant #45 unaffected — inbound toll-free number administration only.
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string (enum: in|out)
required
—
string[]
required
North-American toll-free numbers in E.164 (800/833/844/855/866/877/888…).
string
5-character alphanumeric RespOrg code.
string
5-character alphanumeric RespOrg code. Required when direction is ‘out’.
string
—
string
A Devotel-issued GCS signed URL from POST /files/upload.

Sign the LOA for a toll-free RespOrg change request

POST /api/v1/numbers/porting/toll-free/resporg/{id}/loa/sign
Attach and sign the Letter of Authorization in-platform for a pending toll-free RespOrg-change request, transitioning it from submitted to loa_signed. loaFileUrl may be supplied here when it wasn’t attached at creation. acknowledgement is the verbatim consent text the signer accepted (20-4000 chars).
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
required
—
string
required
—
string
required
—
string
A Devotel-issued GCS signed URL from POST /files/upload — required if not supplied at creation.

Purchase a phone number

POST /api/v1/numbers/purchase
Order a single available phone number for the organization and provision the DID. The organization wallet is checked and debited up-front for the number’s cost; insufficient balance returns a 402 error. Inbound provisioning only (invariant #45).
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Purchase the trial number

POST /api/v1/numbers/purchase-trial
Convert the organization’s assigned trial number into a permanently-owned number so it is retained after the trial period ends, moving it from the shared trial pool into the organization’s owned inventory.
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Release-bulk numbers

POST /api/v1/numbers/release-bulk
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Run replenishment

POST /api/v1/numbers/replenishment/run
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Bulk routing

POST /api/v1/numbers/routing/bulk
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Open a short-code application

POST /api/v1/numbers/short-codes
Open a new SMS short-code leasing application (draft) for the organization, capturing the destination country, lease type and term, and the CTIA program brief. The application starts in draft, so the brief can still be edited with PATCH /numbers/short-codes/{id}/brief until it is submitted for carrier vetting; a vanity selection also requires requestedCode. Returns the created draft application. Provisioning lifecycle only — no outbound (MT) SMS path is created (invariant #45).
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
ISO-3166 alpha-2 country to provision the code in.
string
dedicated leases the code to this program alone; shared pools it across programs.
string
random accepts any available code; vanity requests the specific requestedCode.
string
The requested vanity code (3-6 digits). Required when selection is vanity, ignored otherwise.
integer
Lease term in months — one of 3, 6, or 12.
string
Legal business name carriers vet the program against.
object
The CTIA program brief carriers vet.

Create preflight

POST /api/v1/numbers/short-codes/{id}/preflight
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Provision a carrier-approved short-code application

POST /api/v1/numbers/short-codes/{id}/provision
Open the lease for a carrier-approved SMS short-code application: record the assigned code, move the application to provisioned, and start the lease clock (its renew-by date is provisionedAt + the lease term). Use this once every carrier has approved to activate the short code for messaging. Returns 409 if the application is not through carrier vetting, and 404 if no application with that id belongs to the caller’s organization. Requires the numbers:write scope (owner / admin).
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
The assigned short code (3–6 digits).

Reject a short-code application

POST /api/v1/numbers/short-codes/{id}/reject
Record an aggregator / carrier rejection of an SMS short-code application: move it to rejected and store the rejection reason surfaced to the operator. Use this to relay a hard rejection from the carrier review so the timeline and the dashboard reflect that the application will not proceed. Returns 404 if no application with that id belongs to the caller’s organization. Requires the numbers:write scope (owner / admin).
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
The aggregator / carrier rejection reason.

Submit a short-code application for carrier vetting

POST /api/v1/numbers/short-codes/{id}/submit
Submit a drafted SMS short-code application to the Common Short Code Administration (CSCA) / aggregator, moving it from draft to submitted and locking the program brief so it matches the snapshot carriers review. Use this once the program brief is complete to start the multi-week per-carrier vetting queue; the short code is reserved and the brief is forwarded for review. Takes no request body. Returns 409 if the application is not in draft, and 404 if no application with that id belongs to the caller’s organization. Requires the numbers:write scope (owner / admin / developer).
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Record per-carrier vetting for a short-code application

POST /api/v1/numbers/short-codes/{id}/vetting
Record a carrier’s vetting decision for an SMS short-code application. The first vetting signal moves the application from submitted to carrier_vetting and seeds the per-carrier tracker (the US carriers for a US code); later calls update a single carrier’s state within the multi-week review. Use it to relay each carrier’s pending / approved / rejected decision so the timeline reflects real progress. Returns 409 if the application is not submitted or under review, and 404 if no application with that id belongs to the caller’s organization. Requires the numbers:write scope (owner / admin).
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
Carrier name, e.g. “AT&T” or “T-Mobile”.
string (enum: pending|approved|rejected)
The carrier’s decision for this application.
string
Optional carrier note (e.g. the rejection reason or conditions).

Preflight short-codes

POST /api/v1/numbers/short-codes/preflight
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Lint toll-free sample messages before TFV submission

POST /api/v1/numbers/tfv-lint
Check draft toll-free sample messages against the carrier disallowed-vertical list (SHAFT, high-risk loans, gambling, cryptocurrency, debt collection, lead-gen, get-rich-quick, phishing) plus required opt-out and brand-identifier language, before you submit the Toll-Free Verification form. Use it to fix structural rejections up front instead of waiting days for the carrier review queue to bounce the submission and eat into the amend window. Returns findings with a severity (error blocks, warn / info advise), the offending sample index, matched evidence, and a remediation suggestion; ok is true only when there are zero errors. Pure content check — no DID is changed. Requires the numbers:read scope.
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string[]
1–5 representative outbound messages to lint (batch size enforced by the handler).
string
Optional TFV use case; an unsupported value is reported as an error finding.
string
Optional brand name; flagged when no sample mentions it.

Tracking-pools numbers

POST /api/v1/numbers/tracking-pools
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create assign

POST /api/v1/numbers/tracking-pools/{id}/assign
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Create unassign

POST /api/v1/numbers/tracking-pools/{id}/unassign
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Waitlist numbers

POST /api/v1/numbers/waitlist
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update numbers

PUT /api/v1/numbers/{id}
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Set the branded-caller profile for a number

PUT /api/v1/numbers/{id}/branded-caller-profile
Register or replace the per-DID Branded Calling (Rich Call Data) profile: an enabled flag, a display name (<=40 chars), an https brand-logo URL, and an optional reason-for-call (<=60 chars). Overrides the org-level default only when this DID is the outbound caller-id, and only once the org’s brand is carrier-registered (registered_with_carriers stays org-level). INVARIANT #45 untouched — caller-presentation metadata only, relayed on the existing outbound path; no alternate route is wired. Org-ownership gated + audit-logged.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
boolean
—
string
required
—
string
required
Must be an https:// URL to a public brand-asset image.
string
—

Update campaign-assignment

PUT /api/v1/numbers/{id}/campaign-assignment
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update cnam

PUT /api/v1/numbers/{id}/cnam
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Set the 411/DA directory listing for a number

PUT /api/v1/numbers/{id}/directory-listing
Capture the desired 411/DA directory-listing state for an owned DID (resets status to pending). A listed entry REQUIRES both listed_name and a full civic address — unlisted/non_published entries carry neither (any supplied name/address is ignored). Follow with POST /:id/directory-listing/dispatch to hand the captured state to the Devotel wholesale-softswitch directory provisioning queue. INVARIANT #45: no Telnyx/DIDWW directory write is made. Org-ownership gated + audit-logged.
string
required
Resource identifier
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string (enum: listed|unlisted|non_published)
required
—
string
Required (and only used) when listing_type is ‘listed’.
object
Required (and only used) when listing_type is ‘listed’.

Update emergency-address

PUT /api/v1/numbers/{id}/emergency-address
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update fax-routing

PUT /api/v1/numbers/{id}/fax-routing
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update regulator

PUT /api/v1/numbers/{id}/regulator
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update scheduled-release

PUT /api/v1/numbers/{id}/scheduled-release
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Set a number’s inbound call/SMS route

PUT /api/v1/numbers/{phoneNumber}/routing
Create or replace (upsert) the inbound routing configuration for one owned DID. Choose how inbound calls are answered via type + config — route to an AI agent, a voicemail box, an ivr, a sip_forward endpoint, a ring_group, and more — with an optional fallback_type, business-hours gating, caller-ID allow/block filtering, a per-route recording override, and an optional per-DID inbound-SMS route. The route shape and any config URLs are safety-validated before persisting. This configures INBOUND handling only; it does not affect outbound calling. Returns the saved route with SIP passwords redacted. Scoped on the numbers resource (numbers:read or numbers:write).
string
required
The DID in E.164 (e.g. +14155550100). A leading + is optional — it is added if missing.
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
Primary route type — one of agent, softphone_user, softphone_register, ivr, voicemail, queue, sip_forward, transfer, conference, decline, ring_group, shared_line, dispatch_to_voicemail_box, or a webhook (voiceUrl) route.
object
Type-specific configuration (e.g. { agentId } for agent, { sipUri, sipUsername, sipPassword } for sip_forward).
string | null
Optional fallback route type used when the primary route fails.
object | null
Config for the fallback route.
boolean
Whether the route is active (default true).
string | null
Per-route recording override — off | all | inbound | outbound, or null to inherit the org default.
string | null
Required when type is ring_group — an existing ring-group id owned by this organization.
string | null
Optional per-DID inbound-SMS route — webhook | agent | auto_reply | disabled.

Update network-access

PUT /api/v1/numbers/connectivity/fleets/{fleetId}/network-access
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update authorized-imeis

PUT /api/v1/numbers/connectivity/sims/{iccid}/authorized-imeis
string
required
—
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update replenishment-policy

PUT /api/v1/numbers/replenishment-policy
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update reputation-remediation-policy

PUT /api/v1/numbers/reputation-remediation-policy
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Patch auto-renew

PATCH /api/v1/numbers/{id}/auto-renew
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update a dispatchable emergency location

PATCH /api/v1/numbers/{id}/emergency-address/location
Partially update the E911 dispatchable location already registered for one device on an owned DID. device_key and source are always required (every update records HOW the location changed) and at least ONE civic field must be supplied — an otherwise-empty patch is rejected with 422 rather than silently no-op’ing. 404 when no location is registered for that device. Org-ownership gated + audit-logged.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
—
string
—
string
House number + street.
string
Apartment / suite / floor.
string
—
string
—
string
—
string
ISO-3166 alpha-2 country code; normalized to upper-case.
number
—
number
—
string (enum: manual|softphone|api)
required
How this location was captured.
string
required
Identifier of the roaming extension / device the location belongs to — the same identifier the device registers with.

Patch submissions

PATCH /api/v1/numbers/{id}/reputation/submissions/{submissionId}
string
required
—
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Patch scheduled-release

PATCH /api/v1/numbers/{id}/scheduled-release
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Override the SMS complaint suppression hold

PATCH /api/v1/numbers/{id}/sms-complaints/suppression
Manually hold or lift the sending hold after remediation (mode=manual).
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Patch applications

PATCH /api/v1/numbers/applications/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Patch quota

PATCH /api/v1/numbers/connectivity/sims/{iccid}/quota
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Patch route

PATCH /api/v1/numbers/hosted-messaging/{id}/route
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Patch international-freephone

PATCH /api/v1/numbers/international-freephone/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update a short-code application’s program brief

PATCH /api/v1/numbers/short-codes/{id}/brief
Edit the CTIA program brief on a drafted SMS short-code application — the use case, sample messages, message frequency, opt-in description, support contact, and privacy / terms URLs carriers vet. Use it to refine the brief while the application is still in draft, before it is submitted for the multi-week carrier review. Returns 409 if the application has already been submitted, and 404 if no application with that id belongs to the caller’s organization. Requires the numbers:write scope.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
object
The CTIA program brief carriers vet.

Patch tracking-pools

PATCH /api/v1/numbers/tracking-pools/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete numbers

DELETE /api/v1/numbers/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Remove the branded-caller profile for a number

DELETE /api/v1/numbers/{id}/branded-caller-profile
Clear the per-DID Branded Calling (Rich Call Data) profile so the dial path falls back to the org-level default. Org-ownership gated + audit-logged.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete campaign-assignment

DELETE /api/v1/numbers/{id}/campaign-assignment
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete cnam

DELETE /api/v1/numbers/{id}/cnam
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Remove the 411/DA directory listing for a number

DELETE /api/v1/numbers/{id}/directory-listing
Clear the captured 411/DA directory-listing state for an owned DID. Org-ownership gated + audit-logged.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete emergency-address

DELETE /api/v1/numbers/{id}/emergency-address
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Remove a dispatchable emergency location for a number

DELETE /api/v1/numbers/{id}/emergency-address/location/{deviceKey}
Delete a device-scoped E911/emergency dispatchable-location record previously registered for an owned DID (e.g. a soft-phone / desk-device registration keyed by deviceKey). Removing the number’s last registered dispatchable location surfaces on the next call attempt via the normal E911 compliance gate. Org-ownership gated + audit-logged.
string
required
Phone number id.
string
required
Identifier of the registered device/endpoint whose dispatchable location is being removed.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete port-out-protection

DELETE /api/v1/numbers/{id}/port-out-protection
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete scheduled-release

DELETE /api/v1/numbers/{id}/scheduled-release
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Clear a number’s inbound route

DELETE /api/v1/numbers/{phoneNumber}/routing
Remove the inbound routing configuration for one owned DID so inbound calls fall back to the default policy (voicemail with a generic greeting). Idempotent — clearing a number that already has no route is a successful no-op (still 204), not an error. Returns 404 only when the number is not owned by the caller’s organization. This clears INBOUND handling only; it does not affect outbound calling. Scoped on the numbers resource (numbers:read or numbers:write).
string
required
The DID in E.164 (e.g. +14155550100). A leading + is optional — it is added if missing.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
Response: 204 No Content

Delete applications

DELETE /api/v1/numbers/applications/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete network-access

DELETE /api/v1/numbers/connectivity/fleets/{fleetId}/network-access
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete hosted-messaging

DELETE /api/v1/numbers/hosted-messaging/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete international-freephone

DELETE /api/v1/numbers/international-freephone/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Cancel a port-in request

DELETE /api/v1/numbers/porting/{id}
Cancel a port-in request that is still in the submitted or reviewing stage. Returns 409 once the losing carrier has approved the request — past that point cancellation must go through the carrier’s own flow. Requires the numbers:write scope.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Cancel a port-out request

DELETE /api/v1/numbers/porting/out/{id}
Cancel an in-flight customer-initiated port-OUT request before it completes, keeping the number on Orbit. A no-op once the request has already reached a terminal state.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Cancel a toll-free RespOrg change request

DELETE /api/v1/numbers/porting/toll-free/resporg/{id}
Cancel a toll-free RespOrg-change request before it completes (status: cancelled). Returns 409 once the request has reached a terminal Somos state (foc/completed).
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Release the trial number

DELETE /api/v1/numbers/release-trial
Release the organization’s currently-assigned trial number back to the shared trial pool, freeing it for reassignment. Used when a trial ends without a purchase.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Cancel a short-code application

DELETE /api/v1/numbers/short-codes/{id}
Cancel or relinquish an SMS short-code application (or its active lease) for the organization. Returns the updated application in its cancelled state.
string
required
Resource identifier
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete tracking-pools

DELETE /api/v1/numbers/tracking-pools/{id}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete waitlist

DELETE /api/v1/numbers/waitlist/{entryId}
string
required
—
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.