New: API Reference docs are live — integrate Cleanlist enrichment into your apps. View API docs →
MCP API
OpenAPI Spec

TL;DR: Cleanlist serves a live OpenAPI 3.x spec scoped to the public surface. Browse it interactively at /docs (opens in a new tab) (Swagger) or /redoc (opens in a new tab), or pull the raw JSON from /openapi-public.json (opens in a new tab) to generate a typed client.

OpenAPI Specification

Cleanlist's API is built with FastAPI, which auto-generates an OpenAPI 3.x document. The published spec is filtered to the supported public surface — only /api/v1/public/* endpoints appear.

URLFormatBest for
https://api.cleanlist.ai/openapi-public.jsonRaw JSONCode generation
https://api.cleanlist.ai/docsSwagger UIInteractive exploration
https://api.cleanlist.ai/redocRedocClean read-only reference

All three stay in sync with production automatically.

Browsing interactively

Swagger UI — /docs (opens in a new tab)

Swagger UI lets you expand each endpoint, see request/response schemas, and "Try it out" against the live API. Paste your clapi_ key into the Authorize dialog (HTTP Bearer scheme) before calling anything.

Redoc — /redoc (opens in a new tab)

Redoc renders a static three-column reference that's easier to skim than Swagger when reading rather than experimenting.

Downloading the spec

curl https://api.cleanlist.ai/openapi-public.json -o cleanlist-openapi.json

The spec is unauthenticated — you can pull it without an API key.

Generating a client SDK

TypeScript

npx openapi-typescript https://api.cleanlist.ai/openapi-public.json -o ./cleanlist-types.ts

Python

pipx install openapi-python-client
openapi-python-client generate --url https://api.cleanlist.ai/openapi-public.json

Other languages

# Java, Go, Ruby, Rust, C#, PHP, Swift, Kotlin, etc.
npm install -g @openapitools/openapi-generator-cli
openapi-generator-cli generate \
  -i https://api.cleanlist.ai/openapi-public.json \
  -g <language> \
  -o ./cleanlist-client

See the OpenAPI Generator project (opens in a new tab) for the full language list.

Versioning

The Public API is versioned via the URL prefix (/api/v1/...). Backwards-incompatible changes ship under a new version prefix; the prior version keeps working for a deprecation period announced via the portal (opens in a new tab) and email to key holders. A call to a retired version returns version_deprecated (see Errors).

Learn more