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.
Beyond --name, init is interactive: it asks for any template-specific variables (for simple-voice-ivr, your company name), whether to auto-configure voice integration on deploy, and whether to enable a database (No / Basic / Pro). Pass --non-interactive to accept the defaults.
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/ \
-H "Content-Type: application/json" \
-d '{"event":"call.incoming","call":{"callId":"01LOCALTEST0000000000000001","from":{"type":"PHONE","phone":{"number":"+15551234567"}},"to":{"type":"PHONE","phone":{"number":"+15559876543"}}}}' \
| catYou should receive a commands 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://<name>.fn.sinch.comFor C# functions, the CLI builds and health-checks locally before packaging.
On an interactive first deploy, the CLI asks whether to use a managed key (default: yes) and saves accessKey: "managed" or accessKey: "profile" in sinch.json; pass --managed-keys to select and persist managed keys without prompting. If accessKey is already set it is reused, and --non-interactive or a truthy CI environment variable uses profile for that deploy without writing the field.
sinch functions logs --interactiveOpens 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



