Search, rent, manage, and release phone numbers with the Sinch Numbers API. Use when listing active numbers, searching available numbers, renting or releasing numbers, updating number configuration (SMS/voice/callback), managing emergency addresses, or checking available regions.
99
100%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
The Numbers API lets you search, activate, manage, and release phone numbers — the prerequisite for SMS, Voice, and Conversation APIs.
@sinch/sdk-core (Node), sinch (Python), or com.sinch.sdk (Java) is present.For SDK code, read the correct reference before generating any code:
| Language | Reference | SDK docs |
|---|---|---|
| TypeScript/Node.js | references/typescript.md | Syntax reference |
| Python | references/python.md | Syntax reference |
| Java | references/java.md | Syntax reference |
For direct HTTP calls, see Numbers API Reference.
See sinch-authentication for full setup.
curl -X GET \
"https://numbers.api.sinch.com/v1/projects/$SINCH_PROJECT_ID/activeNumbers?regionCode=US&type=LOCAL&pageSize=10" \
-H "Authorization: Bearer $SINCH_ACCESS_TOKEN" \
-H "Content-Type: application/json"A 200 response confirms credentials and project access.
/activeNumbers./availableNumbers.LOCAL, MOBILE, or TOLL_FREE. Required when searching or listing numbers.US, GB, SE). Required for search and list operations.servicePlanId, campaignId (US 10DLC only), scheduledProvisioning status.type: RTC (requires appId), EST (requires trunkId), FAX (requires serviceId).WAITING, IN_PROGRESS, FAILED.GET /availableRegions — discover valid regionCode valuesGET /availableNumbers?regionCode={code}&type={type} — search (both params required)POST /availableNumbers/{phoneNumber}:rent with config bodyGET /activeNumbers/{phoneNumber} — confirm activationUse POST /availableNumbers:rentAny to skip step 3 (US LOCAL numbers only).
Before retrying any potentially billable action (for example :rent, :rentAny, or :release) after an incomplete/uncertain response:
GET /activeNumbers/{phoneNumber} or GET /activeNumbers with filters)phoneNumber before issuing another billable requestGET /activeNumbers/{phoneNumber} — check current configPATCH /activeNumbers/{phoneNumber} — set displayName, smsConfiguration, or voiceConfiguration"" in servicePlanId or campaignIdPOST /activeNumbers/{phoneNumber}:release
Run node scripts/get_numbers.cjs --output numbers.json (uses SINCH_PROJECT_ID, SINCH_KEY_ID, SINCH_KEY_SECRET env vars). Supports --region and --type filters.
Use the emergency address endpoints on active numbers: GET, provision, deprovision, validate. See API reference.
Use the numberOrders endpoints: lookupNumberRequirements → createNumberOrder → upload registration/attachments → submit. See API reference.
A separate API at https://imported.numbers.api.sinch.com handles importing non-Sinch numbers (DCA) and hosting orders. See API reference.
GET /activeNumbers uses capability (singular) and pageSize. GET /availableNumbers uses capabilities (plural) and size (single page, no pagination).type defaults to MOBILE — omitting it returns only MOBILE numbers, not all types.pageSize explicitly on GET /activeNumbers — no documented default.rentAny is US LOCAL only — use :rent for other types/regions.GET /activeNumbers/{phoneNumber} (or list + filter) before retrying :rent, :rentAny, or :release.voiceConfiguration when you only need SMS will error.campaignId is US-only — required for 10DLC, irrelevant elsewhere.scheduledProvisioning/scheduledVoiceProvisioning are objects (with status, lastUpdatedTime, errorCodes), not strings. Status values: PROVISIONING_STATUS_UNSPECIFIED, WAITING, IN_PROGRESS, FAILED.voiceConfiguration is a discriminated union on type: RTC → appId, EST → trunkId, FAX → serviceId.PATCH /callbackConfiguration) sets only hmacSecret for HMAC-SHA1 signature verification — it does not set a callback URL.54.76.19.159, 54.78.194.39, 54.155.83.128.474538d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.