Skip to main content
If you already have a contract with a text-to-speech provider, you can keep it. Bring Your Own Key (BYOK) lets you pass your own provider key on requests. Your key is forwarded upstream, so billing and rate limits run against your provider account, and output assembly still applies on top.

Placeholders

The snippets below use these placeholders. Replace them before running the code.
PlaceholderReplace with
SLNG_API_KEYAn SLNG key from app.slng.ai/api-keys
YOUR_PROVIDER_KEYA provider key issued by the upstream TTS provider you are calling

How output assembly applies

Assembly runs before your request is forwarded, so a cache hit never reaches the upstream provider:
  • Cache hit: the cached audio is returned, no provider call, and no billing event.
  • Cache miss: the request is sent upstream with your key, the provider bills your account, and the response is cached for future requests.

Supported providers

ProviderModel
CartesiaSonic 3
DeepgramAura 2
KugelKugel 1 Turbo, Kugel 1, Kugel 2
MurfFalcon
SarvamBulbul
SonioxTTS RT v1

Send a BYOK request

Add the X-Slng-Provider-Key header alongside your standard SLNG Authorization header.

HTTP

curl -X POST "https://api.slng.ai/v1/tts/sarvam/bulbul:v3" \
  -H "Authorization: Bearer SLNG_API_KEY" \
  -H "X-Slng-Provider-Key: YOUR_PROVIDER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "I brought my own key to the party.",
    "target_language_code": "en-IN",
    "speaker": "shubh",
    "model": "bulbul:v3"
  }'

WebSocket

Set X-Slng-Provider-Key as a header on the WebSocket upgrade request. The message flow after the upgrade is unchanged.
X-Slng-Provider-Key: YOUR_PROVIDER_KEY
The browser WebSocket API does not support custom headers. Set the provider key from a server-side WebSocket client.

Error handling

HTTP

If the upstream provider rejects your key, the provider’s error response is returned with this header:
X-Slng-Auth-Source: client_key
That header tells you the failure came from your provider key, not from SLNG.

WebSocket

Auth failures surface as a WebSocket error frame after the upgrade is accepted, for example backend_connection_failed, with the upstream 401 or 403 detail included.

Billing

The upstream provider bills your account directly for BYOK requests. No audio-minute fees apply to BYOK traffic.

Next steps

Output assembly

How assembled-from-cache output cuts cost and latency on repeated text.

Drop-in gateway

Route your existing stack through SLNG.