# One API for models, agents and tools — Hanzo AI

> One base URL and one key for every model, Kai decisions, agents and the rest of Hanzo at api.hanzo.ai/v1. If you have used the OpenAI API, you already know most of this. Start free: 50 requests a day.

API

# One API for models, agents and tools

Every Hanzo capability answers under one base URL, behind one key.

[Get an API key, free](https://platform.hanzo.ai/api-keys)[OpenAPI Reference ↗](https://docs.hanzo.ai/docs/openapi/)

https://api.hanzo.ai

- POST /v1/chat/completions01Docs
- POST /v1/responses02Docs
- POST /v1/decisions03Docs
- POST /v1/videos/generations04Docs
- POST /v1/images/generations05Docs
- POST /v1/audio/speech · /v1/audio/music06Docs
- POST /v1/3d/generations07Docs
- POST /v1/embeddings08Docs

A completion from any model your organization can reach, streamed or buffered. Model ids come from the catalog, so the list is a request rather than a page in the docs.

Stateful multi-turn responses with built-in tool calling, structured outputs, reasoning traces, and server-managed conversation state.

Sub-10ms structured classification, routing, scoring, and guardrail decisions powered by Kai at a fraction of LLM cost.

Generate cinematic video with synchronized audio and camera motion from text or reference frames via Koma.

Photorealistic image generation, inpainting, and layout-accurate typography rendering via Iro.

Low-latency neural speech synthesis, voice cloning, transcription, foley sound effects, and full-track music generation via Koe, Oto, and Uta.

Textured 3D meshes and spatial world assets generated from text prompts or multi-view images via Mori.

Vectors for search, retrieval and clustering, from the same key and the same bill as generation.

Paste and ship

Paste this into any agent. It reads the skill manifest and calls API from there.

Agent promptCopy

```
Read https://hanzo.ai/skill.md and use Hanzo API in my project.
```

## Base URL

https://api.hanzo.ai/v1

Authenticate with a bearer token: Authorization: Bearer <your key>. Keys are created and revoked in the [console](https://platform.hanzo.ai/api-keys), and revoking one there is what stops it working.

Every route lives under /v1, and every service answers on the same host — there is no second base URL to configure and no v2 waiting to break the first one. Rate limits are applied per caller and across the edge as a whole; a rejected request comes back as a 429 with a Retry-After rather than a dropped connection.

## Core endpoints

A few of the ones people reach for first. Every parameter and error shape is in the reference.

[/v1/chat/completionsPOSTA completion from any model your organization can reach, streamed or buffered. Model ids come from the catalog, so the list is a request rather than a page in the docs.](https://docs.hanzo.ai/docs/openapi/ai/post-chat-completions)

[/v1/responsesPOSTStateful multi-turn responses with built-in tool calling, structured outputs, reasoning traces, and server-managed conversation state.](https://docs.hanzo.ai/docs/openapi/ai/post-responses)

[/v1/decisionsPOSTSub-10ms structured classification, routing, scoring, and guardrail decisions powered by Kai at a fraction of LLM cost.](https://docs.hanzo.ai/docs/openapi/ai/post-decisions)

[/v1/videos/generationsPOSTGenerate cinematic video with synchronized audio and camera motion from text or reference frames via Koma.](https://docs.hanzo.ai/docs/openapi/ai/post-videos-generations)

[/v1/images/generationsPOSTPhotorealistic image generation, inpainting, and layout-accurate typography rendering via Iro.](https://docs.hanzo.ai/docs/openapi/ai/post-images-generations)

[/v1/audio/speech · /v1/audio/musicPOSTLow-latency neural speech synthesis, voice cloning, transcription, foley sound effects, and full-track music generation via Koe, Oto, and Uta.](https://docs.hanzo.ai/docs/openapi/ai/post-audio-speech)

[/v1/3d/generationsPOSTTextured 3D meshes and spatial world assets generated from text prompts or multi-view images via Mori.](https://docs.hanzo.ai/docs/openapi/ai/post-3d-generations)

[/v1/embeddingsPOSTVectors for search, retrieval and clustering, from the same key and the same bill as generation.](https://docs.hanzo.ai/docs/openapi/ai/post-embeddings)

[/v1/modelsGETWhat your organization may call right now — the 390+ models we serve plus any provider account you have connected, with their identifiers and pricing.](https://docs.hanzo.ai/docs/openapi/ai/get-models)

[/v1/agentsGET · POSTDefine an agent once, run it by reference, and read its runs afterwards. The definition lives here, so everything that runs it runs the same one.](https://docs.hanzo.ai/docs/openapi/agent)

[/v1/code/search · /v1/code/askGET · POSTAST-indexed symbol search, repository context assembly, and semantic codebase Q&A across your organization’s repositories.](https://docs.hanzo.ai/docs/openapi/code/get-code-search)

[/v1/sandboxPOSTLease isolated microVM sandboxes with filesystem, terminal WebSocket, headless browser screen streaming, and sub-second startup.](https://docs.hanzo.ai/docs/openapi/sandbox/post-sandbox)

[/v1/crawl · /v1/searchPOSTClean markdown extraction from any live web page and structured real-time web search for RAG and agent research.](https://docs.hanzo.ai/docs/openapi/crawl/read-page)

[/v1/billing/balance · /v1/billing/usageGETWhat is left, and what was spent. Usage is recorded per call and attributed to the organization on the token, so a bill can be traced back to the request that caused it.](https://docs.hanzo.ai/docs/openapi/billing/get-billing-usage)

[/v1/toolsGETThe tools your organization can call over REST or MCP. An agent picks from this list, and so can you — it is the same catalog either way.](https://docs.hanzo.ai/docs/openapi/tool)

## How it fits together

One key, one bill

A single key authenticates every endpoint, and usage meters to the organization it belongs to. Spend is attributed in one place instead of once per service.

Identity is the gateway’s to state

Every request passes a gateway that throws away the identity headers a client sent and writes them again from the verified token. Nothing downstream has to wonder whether an org id came from a token or from a curl flag.

Generated, not hand-written

The clients come from the OpenAPI document this API serves, and their method names are its operation ids. A client is checkable against a release rather than against somebody’s memory.

## Next

[API referenceEvery endpoint, parameter and response shape.](https://docs.hanzo.ai/docs/openapi/)

[Getting startedAn empty project to a first call that works.](https://docs.hanzo.ai/docs/quickstart)
