Skip to content

Supported Sinch APIs

Sinch Functions provides pre-initialized Sinch SDK clients through the function context. Except for context.voice, clients are only available when their required environment variables are present — accessing an unconfigured client returns null (C#) or undefined (Node.js).

API Availability by Runtime

APINode.jsC#Required Config
Voice (v2)context.voicecontext.VoiceBase credentials only. Always present; calls fail without them
Voice v1context.voice.v1context.Voice.V1VOICE_APPLICATION_KEY + VOICE_APPLICATION_SECRET
Conversationcontext.conversationcontext.ConversationCONVERSATION_APP_ID
SMScontext.smscontext.SmsSMS_SERVICE_PLAN_ID
Numberscontext.numberscontext.NumbersENABLE_NUMBERS_API=true
VerificationN/Acontext.VerificationVERIFICATION_APPLICATION_ID + VERIFICATION_APPLICATION_SECRET
FaxVia CLI onlyVia CLI onlyManaged by sinch CLI
SIP TrunkingVia CLI onlyVia CLI onlyManaged by sinch CLI
ElevenLabscontext.elevenlabs (template helper)Template helperELEVENLABS_API_KEY

Base Credentials

All Sinch API integrations require these base credentials:

VariableDescription
PROJECT_IDYour Sinch project ID
PROJECT_ID_API_KEYProject-scoped API key
PROJECT_ID_API_SECRETProject-scoped API secret

Set automatically when you run sinch auth login.

Environment Variables Reference

Base (always required)

VariableDescription
PROJECT_IDSinch project ID
PROJECT_ID_API_KEYProject API key (key ID)
PROJECT_ID_API_SECRETProject API secret

Voice API

VariableDescription
VOICE_SERVICE_IDVoice API v2 service the function is bound to. sinch functions init writes it when you pick or create a service, and deploy points that service's webhook at the function. In Node.js, outbound context.voice calls also go through this service
VOICE_SERVICE_SECRETOptional. Signing secret of that service; deploy sets it, so leave it out of .env. When WEBHOOK_PROTECTION calls for a check, the runtime verifies inbound Voice API v2 webhooks with it; while it is unset (local runs, or a deploy that could not read the service), they are accepted with a one-time warning. To run locally against real calls, set it from serviceSecret on GET /v2/projects/{projectId}/services/{serviceId}
WEBHOOK_PROTECTIONWhen to verify webhook signatures: deploy (default: on the deployed function only), always, or never. C# reads the WebhookProtection setting instead, at the top level or under Security
VOICE_APPLICATION_KEYVoice API v1 only (context.voice.v1): application key
VOICE_APPLICATION_SECRETVoice API v1 only (context.voice.v1): application secret

Conversation API

VariableDescription
CONVERSATION_APP_IDConversation application ID
CONVERSATION_REGIONRegion: US (default), EU, or BR — C# only

SMS API

VariableDescription
SMS_SERVICE_PLAN_IDSMS service plan ID

Numbers API

VariableDescription
ENABLE_NUMBERS_APISet to true to enable

Verification API (C# only)

VariableDescription
VERIFICATION_APPLICATION_IDVerification application ID
VERIFICATION_APPLICATION_SECRETVerification application secret

ElevenLabs

VariableDescription
ELEVENLABS_API_KEYElevenLabs API key
ELEVENLABS_AGENT_IDAgent ID for Conversational AI
ELEVENLABS_AUTO_CONFIGURESet to true to auto-configure webhook during tunnel start

Runtime internals (set automatically)

VariableDescription
API_URLInternal API URL (set by the platform)
FUNCTION_IDFunction ULID (set by the platform)
PORTHTTP port (default: 3000)
VERBOSESet to true for detailed runtime logging

Notes

  • Clients are lazily initialized and cached on first access. Changing environment variables at runtime does not re-initialize clients.
  • The @sinch/sdk-core package underpins all Node.js clients. The Sinch NuGet package underpins all C# clients.