Documentation
LLMs
One OpenAI-compatible endpoint for 300+ models — Kimi, GPT, Gemini, Claude, DeepSeek, Llama, Qwen and more — billed per token from your Vaaya balance. No per-vendor keys, no subscriptions: the same vaaya_sk_ key that runs every other service is your LLM key.
The router
- Base URL
https://vaaya.ai/api/llm/v1- Endpoint
POST /chat/completions(OpenAI-compatible)- Price
- per token, metered from your balance
- Models
- 300+ — any OpenRouter slug, or a Vaaya tier alias
The router speaks the OpenAI chat-completions wire format, so any OpenAI SDK works unchanged — set base_url and pass your key as the api_key. Streaming (stream: true) is supported. max_tokens defaults to 4096 and caps at 16384.
curl -X POST https://vaaya.ai/api/llm/v1/chat/completions \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vaaya/mid",
"messages": [{"role": "user", "content": "Summarize the tradeoffs of edge vs regional compute."}]
}'Or with the OpenAI SDK:
from openai import OpenAI
client = OpenAI(
base_url="https://vaaya.ai/api/llm/v1",
api_key=os.environ["VAAYA_API_KEY"], # your vaaya_sk_ key
)
resp = client.chat.completions.create(
model="anthropic/claude-opus-5",
messages=[{"role": "user", "content": "Review this migration plan for failure modes: ..."}],
stream=True,
)When to use which
| Need | Model | Typical price | Pick when |
|---|---|---|---|
| General work, drafting | vaaya/mid | 0.1–1¢ per call | The everyday tier — strong general models with automatic fallback. |
| Hard reasoning, a second opinion | vaaya/best | 1–3¢ per call | Cross-check an important answer with a frontier model. |
| Summarize / extract from large text | vaaya/cheap | well under 0.1¢ | A full-context summarization typically costs a fraction of a cent. |
| A specific model by name | the exact slug | model-dependent | e.g. moonshotai/kimi-k3, anthropic/claude-opus-5, google/gemini-2.5-pro. |
| Draft cheap, review well | vaaya/cheap → vaaya/best | two calls | Generate with the cheap tier, then have a strong model critique it. |
Routing rules that hold up: default to vaaya/mid for general work and drop to vaaya/cheap for anything mechanical — summarization, extraction, reformatting — where the cheap tier is effectively free. Reserve vaaya/best for hard reasoning and for cross-checking answers that matter; a rival frontier model is the cheapest form of review you can buy.
Tiers and model slugs
model accepts either an exact OpenRouter slug or one of three Vaaya tier aliases — vaaya/cheap, vaaya/mid, vaaya/best. A tier is an ordered fallback list of current models, so a single-vendor outage never fails your call, and the lists track the market so you inherit upgrades without code changes.
GET /api/llm/v1/pricing (free, no auth) returns the current tier composition and per-model prompt/completion pricing in USD per million tokens. Not sure of a slug? Ask the router itself — one vaaya/cheap call with “what is the OpenRouter slug for Kimi K3?” costs a fraction of a cent.
Gotchas
- Calls are stateless one-shots — there is no server-side conversation. Carry the full message history in
messageson every call, exactly as with any OpenAI-compatible API. - A $10/day per-account inference cap applies. Hitting it returns
429with aRetry-Afterheader — see Errors & billing. - Token billing is metered from your credit balance like every other call and itemized on your transactions — there is no separate LLM account.
- Not for images, audio, or video — generation models live behind their own endpoint with per-call pricing. See Media generation.