Hanzo

Models

Every model served through api.hanzo.ai/v1 — the live catalogue, with the id you pass as "model" and its current rate.

Models

After this page you know which model to ask for, and what to type to get it.

Every model below answers on one endpoint — https://api.hanzo.ai/v1 — with one key. Choosing between them is choosing one string. There is no separate base URL per provider, no second credential, and no client to swap.

Zen
Open weights
OpenAI
GPT
Anthropic
Claude
Google
Gemini
Qwen
Open
Llama
Open
DeepSeek
Open
Mistral
Open

Two families are ours

Everything else in the catalogue is served on your behalf. Two families are built here, and they are the ones to reach for first:

  • Enso — Hanzo's frontier family, and the default for work that has to be right. Three tiers, one price/quality contract each: enso-flash, enso, enso-ultra. What each is for →
  • Zen — our open-weight models, from edge-sized to frontier. You can call them here, or download the weights and run them yourself; the ids below are the hosted ones. On Hugging Face →

Not sure? Ask for `enso-flash`.

It is the cheapest Enso tier, and most work never needs to leave it. Moving up later is a one-word diff, so start here and change your mind when a smaller model has actually disappointed you.

The catalogue

The first groups are the curated Hanzo families; everything after them is grouped by the provider that trains the model. Every row is filterable, and the model id copies with a click — that string is the whole integration.

Passing an id

Whatever you copied goes in model. Nothing else about the request changes:

curl https://api.hanzo.ai/v1/chat/completions \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "enso-flash",
    "messages": [{ "role": "user", "content": "Name three uses for a paperclip." }]
  }'

Swapping enso-flash for zen5-coder — or for any id in the table above — is the entire migration between models.

Listing them yourself

GET /v1/models is the catalogue this page renders, and it takes a bearer token like every other endpoint:

curl -s https://api.hanzo.ai/v1/models \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  | jq '.data[] | select(.owned_by == "hanzo" or .owned_by == "zenlm")'

Every entry in .data[] carries the id you pass as model, the owned_by that trained it and a premium flag. Nearly all carry a pricing object with input and output; some also carry context_window, provider, max_output_tokens, supports_tools and supports_vision. Those last ones are per model rather than on every row, so read them rather than assume them. Rates and how they are billed are on Pricing.

That response is what this page renders, so the two cannot disagree — and if you ever think they do, believe the endpoint.

Next

How is this guide?

Last updated on

On this page