Create a render
Enqueues a render and returns immediately with `status: queued` (HTTP 202). Pass `?wait=60` (max 120) to block until a terminal status within the timeout.
/api/v1/renderEnqueues a render and returns immediately with status: queued (HTTP 202).
Pass ?wait=60 (max 120) to block until a terminal status within the timeout.
API key as Authorization: Bearer <key>
In: header
Query Parameters
Seconds to wait for completion before returning.
1 <= value <= 120Validate the payload without creating a job or consuming a credit. Same as body dryRun.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/render" \ -H "Content-Type: application/json" \ -d '{ "template": "c3626dec-4d20-403b-8544-4d2438fcffdb", "format": "png", "scale": 1, "layers": { "headline": { "text": "Hello, world" } } }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "queued", "format": "png", "attempts": 0, "priority": 0, "error": "string", "webhookDeliveredAt": "2019-08-24T14:15:22Z", "webhookLastError": "string", "assetUrl": "string", "retryAfterMs": 0}{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "queued", "format": "png", "plan": "string", "priority": 0}{ "error": "string", "code": "UNAUTHORIZED", "details": {}, "message": "string"}{ "error": "string", "code": "UNAUTHORIZED", "details": {}, "message": "string"}{ "error": "string", "code": "UNAUTHORIZED", "details": {}, "message": "string"}{ "error": "string", "code": "UNAUTHORIZED", "details": {}, "message": "string"}{ "error": "string", "code": "UNAUTHORIZED", "details": {}, "message": "string"}API reference
Interactive Render API docs from the OpenAPI spec, with Try it in the browser.
Mint a signed URL-render link POST
Returns an HMAC-signed `GET /api/v1/img/{template}` URL for CMS / Open Graph `<img>` tags. The fetch itself needs no API key. Pass `jobs` (1–50) to mint many URLs in one call. Minting does not consume a credit; the first unique GET of each URL does. Repeats are cache hits.