Skip to content
unzoi docs
Search and navigation
Start here
REST API
MCP
Limits and plans
Agent clients
SDKs
Guides

OpenAPI

https://api.unzoi.com/openapi.json — 17 paths, 50 schemas, OpenAPI 3.1, no vendor extensions, and no API key required to read it.

It is public deliberately. An agent deciding whether this API is worth signing up for has to be able to read what it does before it has a key, and requiring one to find that out means the answer is always no.

It cannot drift

The document is maintained alongside the router in the engine's own source, and a test in the API crate greps the router's routes and asserts the two lists agree in both directions: a route that is not in the spec fails the build, and a spec path that is not routed fails it too. A second test asserts every MCP tool names a path the spec documents, and a third that each tool's arguments are exactly that path's query parameters and its outputSchema is the path's response schema, inlined. Every parameter and property carries a description, and every enum is closed.

Every reference page on this site is generated from that same document, which is why the parameter tables here can be trusted rather than merely proofread. The site runs the same tool-to-endpoint comparison over its committed copy before every build, so a snapshot that drifted cannot deploy. info.version is the API crate's version; the changelog says what changed in each.

Generating a client

# TypeScript types only — no runtime, no client to keep up to date.
npx openapi-typescript https://api.unzoi.com/openapi.json -o src/unzoi.d.ts

# A full typed client.
npx @hey-api/openapi-ts -i https://api.unzoi.com/openapi.json -o src/unzoi

# Python.
pip install openapi-python-client
openapi-python-client generate --url https://api.unzoi.com/openapi.json

# Go.
go run github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen@latest \
  -generate types,client -package unzoi https://api.unzoi.com/openapi.json > unzoi.go

What it does not cover

  • Operational endpoints. /healthz, /readyz, /metrics exist for probes and operators, not for callers, and are deliberately absent.
  • The documentation endpoints themselves. Listing /openapi.json inside /openapi.json is noise; /llms.txt points at all of them.
  • MCP tool schemas. The spec describes /mcp as a transport; /mcp/tools.json is the tool contract, in MCP's own format — each tool's inputSchema and outputSchema are built from this document's parameters and schemas, so nothing in it is new.
  • The control plane. Key and tenant management is a separate, non-public API — the console is the interface to it.

Validating it

curl -s https://api.unzoi.com/openapi.json | npx @redocly/cli lint -

Worth running once against your own pinned copy if you generate a client in CI — it will tell you about a schema change before your build does.