Skip to main content
POST https://api.craftkit.dev/v1/templates/:slug/render
Validates data against the template’s published manifest and enqueues a render job. Returns 202 with a poll URL. Rendering is asynchronous — there is no synchronous mode (see Render lifecycle).

Authorization

string
required
Bearer ck_live_… — a project API key.
string
Optional. Retrying with the same key returns the original render instead of creating a duplicate. Takes precedence over the body jobId. See Idempotency.

Path parameters

string
required
The template slug.

Body

object
required
Variable values. Scalars nest by dot-path ({ "customer": { "name": "…" } }); loops are keyed by their dot-free top-level key. Keys absent from the manifest are stripped. Loop arrays are capped at 10,000 items. See Variables & loops.
string
Optional idempotency key (fallback when no Idempotency-Key header is sent).
object

Response

202 when a new render is queued, or 200 when an idempotency key matched an existing render.
string
string
queued for a fresh render; the existing render’s current status on an idempotent replay.
string
GET this to poll the render.
string | null
null until the render succeeds.
string | null
string

Errors

cURL
202