OpenRouter
Unified API for hundreds of LLMs. Vendo holds the upstream credential and bills per token through the proxy.
OpenRouter is a unified gateway to 200+ models from OpenAI, Anthropic, Google, Meta, Mistral, DeepSeek, and most open-weight providers. One OpenAI-compatible endpoint, automatic upstream failover, and a single bill — Vendo handles auth and settlement against your balance per call.
Auth modes
| Profile | Default | How it works |
|---|---|---|
vendo_managed_pool (Vendo-managed pool) | Yes | Vendo 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).
| Variable | Profiles | Source | Secret |
|---|---|---|---|
OPENROUTER_API_KEY | all | Vendo-issued API key (vendo_sk_*) | Yes |
OPENROUTER_BASE_URL | all | Vendo proxy base URL (https://<slug>-proxy.vendo.run/v1) | No |
Reading the credential at runtime
Vendo writes OPENROUTER_API_KEY (and any companion vars above) into your deployment's environment at boot — the official OpenRouter 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 OpenRouter are brokered through Vendo's proxy at:
https://openrouter-proxy.vendo.runPoint the official OpenRouter SDK at this base URL; Vendo authenticates, meters per call, and forwards upstream. Your code never sees the upstream credential.
Quickstart
import vendo
# Access every major LLM through one API. Routed via Vendo's pool — billed against your Vendo balance, no separate signup needed.
token = vendo.token("openrouter")
# 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();
// Access every major LLM through one API. Routed via Vendo's pool — billed against your Vendo balance, no separate signup needed.
const openrouterToken = await vendo.token("openrouter");
// Use `openrouterToken` 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(openrouterToken);import VendoSDK
let vendo = Vendo()
// Access every major LLM through one API. Routed via Vendo's pool — billed against your Vendo balance, no separate signup needed.
let token = try await vendo.token("openrouter")
// Use `token` wherever you would have used the provider's API key.
print(token)Learn more
-
Concepts: connections & integrations — how connections, bindings, and credentials fit together.
-
Build a tool: SDK — full
vendo.tokenandvendo.data.executesemantics.