Models
The live Hanzo model catalog and pricing — every model served through api.hanzo.ai/v1, with context windows and per-token cost.
Models
Every model below is served through one OpenAI-compatible endpoint — https://api.hanzo.ai/v1 — with a single API key. The catalog is live: it's fetched from the gateway as you read, so context windows and prices are always current. Pick a model, copy its id, and pass it as model in any request.
Using a model
Pass the model id straight into any OpenAI-compatible request:
curl https://api.hanzo.ai/v1/chat/completions \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "zen5",
"messages": [{ "role": "user", "content": "What is the meaning of life?" }]
}'Swapping models is a one-string change — zen5 (default), zen5-coder for code, zen5-flash for speed, or enso for the frontier reasoning tier:
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.hanzo.ai/v1',
apiKey: process.env.HANZO_API_KEY,
});
const res = await client.chat.completions.create({
model: 'enso',
messages: [{ role: 'user', content: 'Explain quantum entanglement.' }],
});Listing models programmatically
The same catalog is available as an OpenAI-compatible listing — each entry carries its context, pricing (USD per 1M tokens), features, and family:
curl https://api.hanzo.ai/v1/models{
"object": "list",
"data": [
{
"id": "zen5",
"name": "Zen5 (Default)",
"context": 1000000,
"pricing": { "input": 4.176, "output": 13.2, "cacheRead": 0, "cacheWrite": null },
"features": ["chat", "tools", "vision"],
"provider": "Hanzo"
}
],
"families": [ { "id": "enso", "name": "Enso", "models": ["enso", "enso-flash", "enso-ultra"] } ],
"summary": { "totalModels": 35 }
}Related
The OpenAI-compatible router in front of every model
The GPU inference engine serving the Zen and Enso families
Programmatic pricing for models, cloud, GPUs, and plans
Try the models in the hosted chat UI
How is this guide?