Documentation

vaaya / docs / reference

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

NeedModelTypical pricePick when
General work, draftingvaaya/mid0.1–1¢ per callThe everyday tier — strong general models with automatic fallback.
Hard reasoning, a second opinionvaaya/best1–3¢ per callCross-check an important answer with a frontier model.
Summarize / extract from large textvaaya/cheapwell under 0.1¢A full-context summarization typically costs a fraction of a cent.
A specific model by namethe exact slugmodel-dependente.g. moonshotai/kimi-k3, anthropic/claude-opus-5, google/gemini-2.5-pro.
Draft cheap, review wellvaaya/cheapvaaya/besttwo callsGenerate 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 messages on every call, exactly as with any OpenAI-compatible API.
  • A $10/day per-account inference cap applies. Hitting it returns 429 with a Retry-After header — 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.