Official Sinch API skills for AI coding agents — SMS, Voice, Verification, Numbers, Mailgun email, and more.
71
89%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
10DLC (10-Digit Long Code) is the required US registration system for Application-to-Person (A2P) SMS on standard 10-digit phone numbers. You must register a brand (the sending company) and a campaign (the messaging use case) with The Campaign Registry (TCR) via Sinch before sending any US A2P SMS.
Before writing code, determine the user's goal:
SIMPLIFIED (faster, lower throughput, $10) or FULL (recommended for production, $50)?This skill covers 10DLC only. The same Registration API also includes TFN (Toll-Free Number) verification endpoints — for toll-free registration, see the API spec directly.
This API is REST-only — there is no SDK wrapper. Use curl, fetch, axios, requests, or equivalent HTTP clients.
Store credentials in environment variables — never hardcode tokens or keys in commands or source code:
export SINCH_PROJECT_ID="your-project-id"
export SINCH_KEY_ID="your-key-id"
export SINCH_KEY_SECRET="your-key-secret"
export SINCH_ACCESS_TOKEN="your-oauth-token"Ensure that authentication headers are properly set when making API calls. The 10DLC API uses Bearer token authentication:
-H "Authorization: Bearer $SINCH_ACCESS_TOKEN"See sinch-authentication for full setup, most importantly how to obtain {SINCH_ACCESS_TOKEN} (OAuth2 client-credentials — do not mint your own JWT).
https://us10dlc.numbers.api.sinch.comUS-only — there are no regional variants for 10DLC.
Register a brand:
curl -X POST \
"https://us10dlc.numbers.api.sinch.com/v1/projects/$SINCH_PROJECT_ID/brandRegistrations:submit" \
-H "Authorization: Bearer $SINCH_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"brandRegistrationType": "FULL",
"displayName": "Sinch Mock",
"companyDetails": {
"companyName": "Sinch",
"brandName": "Sinch Mock x",
"companyEmail": "support@sinch.com",
"country": "US",
"state": "GA",
"city": "Atlanta",
"streetAddress": " 3500 Lenox Rd NE, Ste. 1875",
"postalCode": "94105",
"webAddress": "https://sinch.com"
},
"financialDetails": {
"brandEntityType": "PRIVATE",
"brandVerticalType": "TECHNOLOGY",
"taxIdCountry": "US",
"taxIdCorporate": "770505044",
"stockSymbol": "SINCH",
"exchange": "STO"
},
"contactDetails": {
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "+14155550100",
"email": "admin@sinch.com"
},
"mock": true
}'B (e.g., BESINCH).brandRegistrationType) — SIMPLIFIED (basic, lower throughput, $10) or FULL (complete vetting, higher throughput, $50). Default is SIMPLIFIED. Prefer FULL for production.Follow these steps in order. Each step depends on the previous one succeeding. For detailed curl examples, response schemas, enum values, and polling strategies, see references/workflow.md.
Once approved, you can send A2P SMS on US 10-digit long codes through Sinch. To send messages, see the sinch-conversation-api skill.
EXPIRED). Note: the delete path uses singular campaignRegistration (not plural) — DELETE /v1/projects/{projectId}/campaignRegistration/{campaignRegistrationId}lastActionStatus: RESUBMIT_IN_PROGRESS → RESUBMIT_SUCCESSFUL (get updated MNO metadata) or RESUBMIT_FAILED (check campaign feedback for reason)XX-XXXXXXX), match company name to IRS records exactly, fix stock symbol if publicAPPROVED (not just brand)FULL registration type for production — it yields higher trust scores and throughput than SIMPLIFIED.campaignRegistrations:qualify before submitting a campaign to check requirements and fees upfront.taxIdCorporate (EIN) to IRS records exactly to avoid brand rejection.skills
sinch-10dlc
references
sinch-authentication
sinch-conversation-api
sinch-elastic-sip-trunking
references
sinch-fax-api
sinch-imported-numbers-hosting-orders
references
sinch-in-app-calling
sinch-mailgun
references
sinch-mailgun-inspect
references
sinch-mailgun-optimize
references
sinch-mailgun-validate
sinch-number-lookup-api
sinch-number-order-api
sinch-numbers-api
references
sinch-porting-api
sinch-provisioning-api
sinch-sdks
sinch-verification-api