Base URL
Authentication
Every request is authenticated with your secret key as a bearer token:Jobs are async by default
POST /jobs (and the sugar wrappers like /jobs/fix) return 201 immediately and process in the background. Set sync: true to wait up to ~27 seconds for the result (200), or receive 202 with pending: true if it is still running. POST /jobs/validate is the exception: it is synchronous by default, with async: true to return 201 immediately.
Either way, you can pass a webhook to be notified when the job reaches a terminal status, or poll GET /jobs/{id}. Use ?expand=runs for a flattened per-file summary with proof and download URLs.
Sources
A job source can be aurl, a base64 file, or a fileRef from POST /uploads (preferred for large files). The canonical POST /jobs body attaches ordered steps[] to each source; the sugar wrappers build those steps for you.
Errors
Errors return a non-2xx status with a consistent body:Every endpoint, parameter, and schema below is generated from the live OpenAPI spec. Use the playground to try calls with your key.