Sinch Functions is currently in beta. You can build, deploy, and run real traffic today. APIs and capabilities may evolve during the beta — we will call out breaking changes in release notes.
Two things in one toolchain:
- Sinch CLI — the developer command line for every Sinch API. Rent phone numbers, send SMS and fax, manage SIP trunks, configure voice apps, manage secrets. All from your terminal.
- Sinch Functions — a serverless runtime where you write a function, deploy it, and Sinch routes live traffic (voice calls, WhatsApp messages, SMS) to your code.
The Sinch CLI is how you interact with both.
- New to Sinch? — A one-page overview of what these things are and how they relate.
- Install the CLI — Get
sinchon your machine and log in. - Your first Function — Deploy a voice IVR in five minutes.
- Glossary — ICE, ACE, SVAML, Voice App, Conversation App in plain English.
| Use case | What it does |
|---|---|
| Voice IVR | Interactive menus with DTMF input and text-to-speech |
| SMS responder | Reply to inbound SMS with dynamic content |
| Call routing | Route calls based on caller, time, or external data |
| AI voice agent | Connect calls to a speech AI pipeline via ElevenLabs or similar |
| Number masking | Proxy calls between parties without exposing real numbers |
| Conversation bot | Handle WhatsApp, Messenger, SMS via the Conversation API |
| Workflow | Command |
|---|---|
| Rent a phone number | sinch numbers available rent |
| Send an SMS | sinch conversation send |
| Send a fax | sinch fax send |
| Manage SIP trunks | sinch sip trunks |
| Deploy a function | sinch functions deploy |
| Stream function logs | sinch functions logs --follow |
| Store a secret | sinch secrets add |
Functions runs your code on either runtime with full feature parity.
| Node.js | C# | |
|---|---|---|
| Language | TypeScript / JavaScript | C# / .NET 9+ |
| Package | @sinch/functions-runtime | Sinch.Functions.Runtime |
| Mental model | Like Express | Like ASP.NET MVC with controllers |
If you know Express or ASP.NET MVC, you already know 90% of the runtime. The rest is conventions for how Sinch maps URLs to your handlers.