Official Sinch API skills for AI coding agents — SMS, Voice, Verification, Numbers, Mailgun email, and more.
69
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Summary — not the spec. This file orients you to a CLI command family. The authoritative source for exact flags and argument order is
sinch <cmd> --helpon the installed binary; the linkeddevelopers.sinch.comdocs are authoritative for concepts but may lag the shipped CLI. Do not copy a flag name, argument order, or enum value from here into a shipped script without confirming it against--help. See "Source of Truth" in this skill's SKILL.md.
Reference for the sinch voice command tree. Loaded on-demand from SKILL.md.
sinch voice targets Voice API v2. The older Voice API v1 lives under sinch voice v1 and is covered at the end of this file. Every command supports --json.
v2 has no voice-application concept and no application key: sinch voice calls and sinch voice services authenticate with the project Access Key pair that sinch auth login stores. Inbound routing is a service — a number is bound to one by its RTC application id, which is the service id.
A service holds the webhook URL that inbound calls for its numbers are posted to. A function opts into v2 routing by declaring VOICE_SERVICE_ID; sinch functions deploy then makes the same services update call for you.
sinch voice services list # services in this project
sinch voice services create --name "Support IVR" # prompts for what it needs
sinch voice services create --name "Support IVR" --webhook-url https://fn-abc123.functions.sinch.com
sinch voice services update <service-id> --webhook-url https://fn-abc123.functions.sinch.com
sinch voice services delete <service-id> --forcecreate flags: --name <name>, --description <text>, --webhook-url <url> (setting it sets the service's call behavior to WEBHOOK), --json, --non-interactive
update flags: --webhook-url <url> (required)
delete flags: --force, --json, --non-interactive. The service id is optional; omit it and the CLI prompts.
# List and inspect
sinch voice calls list --service-id <id> --call-result IN_PROGRESS
sinch voice calls get <call-id> # call ID is a ULID
# Place a call
sinch voice calls create +15551234567 --from +15559876543
sinch voice calls create +15551234567 --stream wss://example.com/media --sample-rate 16000
sinch voice calls create +15551234567 --relay <endpoint> --tts-voice <name> --stt-language en-US
# Call two parties and bridge them
sinch voice calls bridge +15551234567 +15551234568 --from +15559876543
# Control a live call
sinch voice calls patch <target> --dial +15551234569 --bridge-name room-42
sinch voice calls hangup <target> --leg callerlist flags: --service-id <id>, --from <number>, --to <number>, --call-type <type> (PHONE, SIP, STREAM, VOICE_RELAY), --call-result <result> (QUEUED, INITIATED, IN_PROGRESS, COMPLETED, REJECTED, NO_ANSWER, CANCEL, BUSY, FAILED), --start-time <iso>, --end-time <iso>, -l, --limit <number>, --page <number>
create flags: --from <origin>, --stream <endpoint>, --relay <endpoint>, --sample-rate <hz>, --tts-voice <name>, --stt-language <tag>, --no-interruptions, --header <key=value> (repeatable), --bridge-name <name>, --timeout <seconds>, --max-duration <seconds>, --dry-run
bridge flags: --from <origin>, --bridge-name <name>, --timeout <seconds>, --max-duration <seconds>, --dry-run
patch flags: --call-name <name>, --dial <destination>, --end-leg <name>, --dial-leg <name>, --bridge-name <name>, --from <origin>, --timeout <seconds>, --commands <source>, --dry-run
hangup flags: --call-name <name>, --leg <name> (repeatable), --dry-run
patch runs commands against a call that is already up — adding a party to it, or sending raw v2 commands with --commands. Voice v1 has no equivalent. Use --dry-run on any of create, bridge, patch and hangup to print the request without sending it.
sinch voice v1 is the previous tree, unchanged: applications, callouts, calls and conferences. These commands require a Voice Application Key and Secret. sinch auth login no longer collects that pair — supply it with sinch secrets add VOICE_APPLICATION_SECRET <value> and pass -a, --app-key <key> where the command accepts it.
# Applications — callback URLs and number assignments
sinch voice v1 applications callbacks get
sinch voice v1 applications callbacks set https://fn-abc123.functions.sinch.com --fallback https://backup.example.com
sinch voice v1 applications numbers list
sinch voice v1 applications numbers assign +15551234567 --capability voice
sinch voice v1 applications numbers unassign +15551234567
# Callouts — place outbound calls
sinch voice v1 callouts tts +15551234567 "Your package is arriving today" --voice en-US --cli +15559876543
sinch voice v1 callouts conference +15551234567 room-42 --greeting "Joining the sales call" --moh music1
sinch voice v1 callouts custom +15551234567 --ice @./ice-payload.json
# Calls — query and control in-progress calls
sinch voice v1 calls get <call-id>
sinch voice v1 calls hangup <call-id>
sinch voice v1 calls update <call-id> --svaml @./svaml.json
sinch voice v1 calls manage-leg <call-id> --leg caller --svaml @./say.json
# Conferences — rooms and participants
sinch voice v1 conferences get room-42
sinch voice v1 conferences kick room-42 <call-id>
sinch voice v1 conferences kick-all room-42 --yes
sinch voice v1 conferences manage room-42 <call-id> --hold --moh music1TTS callout flags: --voice <locale>, --cli <number>, --dtmf <seq>, --domain pstn|mxp, --enable-ace, --enable-dice, --enable-pie
Conference callout flags: --cli, --greeting, --locale, --moh ring|music1|music2|music3, --max-duration, --dtmf, --domain
Custom callout flags: --ice <svaml|@file>, --ace <svaml|@file>, --pie <svaml|@file>, --cli, --dtmf, --max-duration (at least one of --ice, --ace, or --pie is required)
conferences manage action flags (exactly one required): --mute, --unmute, --hold, --resume. Use --moh <music> with --hold. Participants are identified by their per-leg call ID from conferences get, not by phone number. To play audio or speak text to a participant, use sinch voice v1 calls manage-leg instead — those hit a different SDK method.
sinch voice v1 applications numbers manages the numbers attached to a specific Voice application. For the account-wide number inventory (search, rent, release), use sinch numbers — see numbers-and-porting.md.
scripts
skills
sinch-10dlc
references
sinch-authentication
sinch-cli
sinch-conversation-api
sinch-elastic-sip-trunking
references
sinch-fax-api
sinch-functions
sinch-functions-dotnet
sinch-functions-node
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-mms
sinch-number-lookup-api
sinch-number-order-api
sinch-numbers-api
sinch-porting-api
sinch-provisioning-api
sinch-rcs
sinch-sdks
sinch-sms
scripts
sinch-verification-api
sinch-voice-api
sinch-whatsapp