VendoVendo Docs
Integrations

ElevenLabs

Realistic text-to-speech and speech-to-text. Vendo holds the upstream credential and bills per character (TTS) or per second of audio (STT).

Drop-in ElevenLabs API. Point the official SDK at Vendo's proxy and Vendo authenticates the call, forwards to ElevenLabs, and bills TTS by character count and STT by audio seconds. Streaming is preserved end-to-end so latency stays close to direct upstream.

Auth modes

ProfileDefaultHow it works
vendo_managed_pool (Vendo-managed pool)YesVendo holds the upstream credential and bills per call against the tenant's Vendo balance. No tenant signup with the provider required.

Environment variables

These are the env vars Vendo injects into your deployment at boot when this integration is bound. Source values are resolved by resolveConnectionEnvVars in packages/integrations/lib/ from the connection record (credential, metadata) and deployment context (proxy URL, Vendo-issued API key).

VariableProfilesSourceSecret
ELEVENLABS_API_KEYallVendo-issued API key (vendo_sk_*)Yes
ELEVENLABS_BASE_URLallVendo proxy base URL (https://<slug>-proxy.vendo.run/v1)No

Reading the credential at runtime

Vendo writes ELEVENLABS_API_KEY (and any companion vars above) into your deployment's environment at boot — the official ElevenLabs SDK auto-discovers it, so most code just instantiates the client with no extra wiring. vendo.token(slug) is the resolution-chain-aware alternative that reads the same value in Vendo mode and falls back to whatever you set in OSS mode; use whichever fits your style. See Two modes for the full resolution chain.

Proxy endpoint

Calls to ElevenLabs are brokered through Vendo's proxy at:

https://elevenlabs-proxy.vendo.run

Point the official ElevenLabs SDK at this base URL; Vendo authenticates, meters per call, and forwards upstream. Your code never sees the upstream credential.

Quickstart

import vendo

# Realistic text-to-speech and Scribe speech-to-text through Vendo. Same ElevenLabs API, billed against your Vendo balance.
token = vendo.token("elevenlabs")

# Use `token` wherever you would have used the provider's API key —
# pass it to the official SDK or set it as the env var the SDK reads.
print(token)
import { Vendo } from "@vendodev/sdk";

const vendo = new Vendo();
// Realistic text-to-speech and Scribe speech-to-text through Vendo. Same ElevenLabs API, billed against your Vendo balance.
const elevenlabsToken = await vendo.token("elevenlabs");

// Use `elevenlabsToken` wherever you would have used the provider's API
// key — pass it to the official SDK or read it as the env var the SDK expects.
console.log(elevenlabsToken);
import VendoSDK

let vendo = Vendo()
// Realistic text-to-speech and Scribe speech-to-text through Vendo. Same ElevenLabs API, billed against your Vendo balance.
let token = try await vendo.token("elevenlabs")

// Use `token` wherever you would have used the provider's API key.
print(token)

Learn more

On this page