# Supported Sinch APIs Sinch Functions provides pre-initialized Sinch SDK clients through the function context. 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 | API | Node.js | C# | Required Config | | --- | --- | --- | --- | | Voice | `context.voice` | `context.Voice` | `VOICE_APPLICATION_KEY` + `VOICE_APPLICATION_SECRET` | | Conversation | `context.conversation` | `context.Conversation` | `CONVERSATION_APP_ID` | | SMS | `context.sms` | `context.Sms` | `SMS_SERVICE_PLAN_ID` | | Numbers | `context.numbers` | `context.Numbers` | `ENABLE_NUMBERS_API=true` | | Verification | N/A | `context.Verification` | `VERIFICATION_APPLICATION_ID` + `VERIFICATION_APPLICATION_SECRET` | | Fax | Via CLI only | Via CLI only | Managed by `sinch` CLI | | SIP Trunking | Via CLI only | Via CLI only | Managed by `sinch` CLI | | ElevenLabs | `context.elevenlabs` (template helper) | Template helper | `ELEVENLABS_API_KEY` | ## Base Credentials All Sinch API integrations require these base credentials: | Variable | Description | | --- | --- | | `PROJECT_ID` | Your Sinch project ID | | `PROJECT_ID_API_KEY` | Project-scoped API key | | `PROJECT_ID_API_SECRET` | Project-scoped API secret | Set automatically when you run `sinch auth login`. ## Environment Variables Reference ### Base (always required) | Variable | Description | | --- | --- | | `PROJECT_ID` | Sinch project ID | | `PROJECT_ID_API_KEY` | Project API key (key ID) | | `PROJECT_ID_API_SECRET` | Project API secret | ### Voice API | Variable | Description | | --- | --- | | `VOICE_APPLICATION_KEY` | Voice application key | | `VOICE_APPLICATION_SECRET` | Voice application secret | ### Conversation API | Variable | Description | | --- | --- | | `CONVERSATION_APP_ID` | Conversation application ID | | `CONVERSATION_REGION` | Region: `US` (default), `EU`, or `BR` — C# only | ### SMS API | Variable | Description | | --- | --- | | `SMS_SERVICE_PLAN_ID` | SMS service plan ID | ### Numbers API | Variable | Description | | --- | --- | | `ENABLE_NUMBERS_API` | Set to `true` to enable | ### Verification API (C# only) | Variable | Description | | --- | --- | | `VERIFICATION_APPLICATION_ID` | Verification application ID | | `VERIFICATION_APPLICATION_SECRET` | Verification application secret | ### ElevenLabs | Variable | Description | | --- | --- | | `ELEVENLABS_API_KEY` | ElevenLabs API key | | `ELEVENLABS_AGENT_ID` | Agent ID for Conversational AI | | `ELEVENLABS_AUTO_CONFIGURE` | Set to `true` to auto-configure webhook during tunnel start | ### Runtime internals (set automatically) | Variable | Description | | --- | --- | | `API_URL` | Internal API URL (set by the platform) | | `FUNCTION_ID` | Function ULID (set by the platform) | | `PORT` | HTTP port (default: `3000`) | | `VERBOSE` | Set 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.