Base URL
/v2/ prefix — for example, https://api.anyformat.ai/v2/workflows/. When a new major version ships, /v2/ will continue to serve traffic for a bounded deprecation window — see Versioning & deprecation below to wire your integration for alerting.
All endpoint paths require a trailing slash. Requests without one receive a 307 Temporary Redirect, which preserves the request method and body.
Authentication
All endpoints (except/docs/ and /schema/) require an API key, passed as a Bearer token:
Rate limits
The API uses two-tier rate limiting. File submission endpoints have a stricter limit; all other endpoints share a higher general limit.
Each tier has an independent counter — extraction endpoints don’t consume your general quota, and vice versa.
If you exceed a limit, the API responds with
429 Too Many Requests. Wait for the number of seconds in the Retry-After header before retrying.
All successful responses include rate-limit headers for the tier that applies:
The
Retry-After header appears only in 429 responses, not in every response.Endpoints at a glance
The API is organized around three resource groups.Workflows
Files
Webhooks
See Webhooks overview for setup, signing, and delivery semantics.
Response format
Successful responses are JSON. The detailed envelope (includingas_lists=true for tabular shapes) is documented in Response formats.
Error responses follow a consistent structured shape:
Versioning & deprecation
The API is versioned in the URL path. The current stable major is/v2/. When a new major (e.g. /v3/) is introduced, the previous one continues to serve traffic through an announced deprecation window before it is shut down.
Response headers
Every response carries a version identifier, plus deprecation signals whenever the version you called is on the retirement path.
Example — a call to a deprecated endpoint:
Deprecation and Sunset headers are absent while a version is not deprecated — so their presence alone is a reliable signal that migration work is due.
Don’t get surprised — alert on Sunset
Deprecation windows are typically three months between the Deprecation announcement and the Sunset cutoff. Rather than tracking release notes by hand, we strongly recommend wiring your integration to detect these headers automatically. A minimal setup:
- In your HTTP client middleware, check every response for a
Sunsetheader. If present, emit a warning to your logs or monitoring system that includes the endpoint path and the sunset date. - In your metrics / observability stack, add a counter or gauge indexed by
X-API-Version,Deprecation, andSunset. A dashboard panel or alert firing on “any response hasSunset” gives on-call visibility without human polling. - Escalate as the sunset approaches: for example, log-level warning at first sight, page on-call one month before
Sunset, hard-fail your CI a week before if you still have live traffic on the deprecated version.
requests that surfaces the signal:
httpx (event hooks), axios (interceptors), fetch (a wrapping function), and every other mainstream HTTP client.
If you can only pick one thing: alert on the Sunset header. Everything else — endpoint, announcement date, successor URL — is derivable from the same response.
SDKs
Official client libraries with a fluent builder over the typed-graph API:- TypeScript SDK —
npm install @anyformat/sdk - Python SDK —
pip install anyformat - SDKs overview — both client libraries and the Claude Code skill
OpenAPI schema
The full OpenAPI specification is available at:- JSON: https://api.anyformat.ai/schema/?format=json
- Swagger UI: https://api.anyformat.ai/docs/
