POST
https://api.craftkit.dev/v1/hooks/:token{ data: … } wrapper. Inbound renders share the rendering pipeline with
POST /v1/templates/:slug/render: same Zod validation, versioning,
dashboard row, and outgoing webhooks.
Authorization
Inbound webhooks are not authenticated with a project API key. The per-template token in the URL identifies the template; an optional HMAC signature proves the payload’s integrity.string
Optional. Hex-encoded HMAC-SHA256 of the raw request body, keyed by the template’s inbound
secret. When present it is verified; when absent the request is accepted (toggle enforcement per
template in the dashboard for production traffic).
Path parameters
string
required
The per-template inbound token from the Use this template → Inbound webhook panel. Identifies
and authenticates the target template.
Body
The body is the flat variable data — the manifest keys for the target template, with no envelope. Scalars nest by dot-path; loops are keyed by their dot-free top-level key. Keys absent from the manifest are stripped. Invalid payloads return400 invalid_input_data with the offending fields in
issues.fieldErrors.
object
required
Response
202 when a render is queued.
string
Render id (UUIDv7).
string
Always
queued on accept.string
GET this with your project bearer token to poll the render.Errors
cURL
202