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,/metricsexist for probes and operators, not for callers, and are deliberately absent. - The documentation endpoints themselves. Listing
/openapi.jsoninside/openapi.jsonis noise;/llms.txtpoints at all of them. - MCP tool schemas. The spec describes
/mcpas a transport;/mcp/tools.jsonis the tool contract, in MCP's own format — each tool'sinputSchemaandoutputSchemaare 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.