Deploy a voice function from zero in about five minutes.
- CLI installed:
npm install -g @sinch/cli - Authenticated:
sinch auth login
If you have not done these yet, see Installation.
sinch auth loginThe CLI prompts for your Project ID, Key ID, and Key Secret. Skip if already authenticated.
sinch functions init simple-voice-ivr --name my-first-functionThe CLI downloads the template and creates a my-first-function/ directory. For Node.js, it runs npm install automatically.
To see all available templates:
sinch templates listcd my-first-functionsinch functions devSelect Yes when prompted about the tunnel to get a public URL that Sinch can reach. Leave this terminal running.
In a second terminal:
curl -s -X POST http://localhost:3000/ice \
-H "Content-Type: application/json" \
-d '{"callid":"test-123","cli":"+15551234567","to":{"type":"number","endpoint":"+15559876543"},"domain":"pstn","originationType":"pstn"}' \
| catYou should receive a SVAML response with a voice menu.
sinch functions deployThe CLI packages your code, uploads it, and streams deployment progress:
Deployment Complete!
Function: my-first-function
Status: Running
URL: https://fn-<id>.functions.sinch.comFor C# functions, the CLI builds and health-checks locally before packaging.
sinch functions logs --followOpens an interactive terminal UI showing each request. Arrow keys to navigate, Enter to expand, q to exit.
- Local development — hot reload, debugging, secrets
- Build an IVR guide — menus, DTMF, call routing patterns
- Templates — all available starting points
- CLI reference — full command reference