Jobs, usage, schemas, webhooks and keys API
List jobs, read credit usage, manage versioned saved schemas, register webhook endpoints and create or revoke API keys.
Everything besides submitting and reading a job. The same API key, the same per-minute limit and the same error codes apply.
Listing jobs
GET /v1
running for jobs with a video still queued or processing, succeeded for jobs where every video is done, failed for jobs with at least one failed video.results is null while a job is running and an empty list once it has settled; read the job itself to collect.Usage
GET /v1/usage
daily covers the last 14 days, one entry per day, credits spent. hard_cap is the ceiling you set on the dashboard overview, or null.
Saved schemas
A saved schema can be used on POST /v1 as schema_id. Schemas are versioned: editing publishes a new version and never changes an old one, so a finished job always describes what it actually ran.
GET /v1/schemas
Every schema in the workspace at its latest version, each with id, name, description, version, label (such as restaurants-v2), schema and created_at, inside data.
POST /v1/schemas
GET /v1/schemas/{id}
One schema with latest_version and every version it has had, each with its schema and created_at. An unknown id is 404 schema_not_found.
POST /v1/schemas/{id}/versions
Publishes a new version. The body takes schema and an optional description, and answers 201 with the id and the new version. Jobs submitted with this schema_id and no schema_version use it from now on.
Webhook endpoints
Webhooks are a paid-plan feature: creating an endpoint on Free answers 403 plan_limit. What gets delivered is on webhook payloads.
GET /v1/webhooks
Each endpoint’s id, url, events, disabled and created_at, inside data. Signing secrets are not listed; they are on the webhooks screen.
POST /v1/webhooks
job.completed, job.failed, batch.completed. All three when left out.DELETE /v1/webhooks/{id}
Removes the endpoint. Answers 204 with no body.
API keys
GET /v1/keys
Every key in the workspace, revoked ones included, with id, label, masked_key, environment, last_used_at, revoked_at and created_at, inside data. The full key is never shown again after creation.
POST /v1/keys
live or test, which sets the key’s prefix. Both bill the same way.key is in this response and nowhere else, ever. Only a hash is stored. Over the plan’s key allowance the call answers 403 plan_limit.DELETE /v1/keys/{id}
Revokes the key immediately. Answers 204. Revoking cannot be undone.