Retrieve renders
Two endpoints for reading render state — one for polling a specific render, one for browsing or filtering.
Get a single render
GET /api/v1/renders/{id}
Authorization: Bearer dg_your_api_keyResponse — 200
{
"id": "cm4rnd7qh0001jx04w8e2t5va",
"self": "https://automette.com/api/v1/renders/cm4rnd7qh0001jx04w8e2t5va",
"status": "completed",
"url": "https://cdn.automette.com/renders/cm4rnd7qh0001jx04w8e2t5va.pdf",
"format": "pdf",
"template_id": "cm4tpl8e20001js04xq2v9k3m",
"template_name": "Invoice",
"webhook_url": "https://your-app.com/hook",
"webhook_deliveries": [
{
"id": "cm4wdl4rs0001jy04t2f8k6mc",
"event_id": "evt_...",
"source": "render_webhook",
"http_status": 200,
"success": true,
"error": null,
"created_at": "2026-04-22T12:00:01.000Z"
}
],
"data": { "name": "Alice" },
"error": null,
"created_at": "2026-04-22T12:00:00.000Z"
}Field notes:
status— one ofpending,running,completed,failed. While notcompleted,urlisnull.webhook_deliveries— every attempt to deliver a webhook for this render, including failed attempts.sourceisrender_webhook(per-requestwebhook_url) orglobal_webhook(subscription).nullif no deliveries have been attempted.error— populated whenstatusis"failed". Truncated to 500 characters.
Download mode
Add ?download=true to redirect to the file directly — handy for <a href> tags or curl -OL:
curl -L "https://automette.com/api/v1/renders/cm4rnd7qh0001jx04w8e2t5va?download=true" \
-H "Authorization: Bearer dg_your_key" \
-o invoice.pdfFor DOCX templates with both formats requested, add ?format=pdf or ?format=docx to pick which file to download.
Errors
| Code | When |
|---|---|
401 | Missing or invalid API key |
404 | Render does not exist or is not in your team |
425 | download=true requested while render is still pending |
List renders
GET /api/v1/renders
Authorization: Bearer dg_your_api_keyQuery parameters
| Param | Type | Default | Description |
|---|---|---|---|
status | string | — | Filter by pending, running, completed, or failed. |
template_id | string | — | Only renders for this template. |
limit | integer | 20 | Page size, max 100. |
cursor | string | — | A render ID from a previous response's next_cursor. |
Response — 200
{
"renders": [
{
"id": "cm4rnd7qh0001jx04w8e2t5va",
"self": "https://automette.com/api/v1/renders/cm4rnd7qh0001jx04w8e2t5va",
"status": "completed",
"url": "https://cdn.automette.com/renders/cm4rnd7qh0001jx04w8e2t5va.pdf",
"format": "pdf",
"template_id": "cm4tpl8e20001js04xq2v9k3m",
"template_name": "Invoice",
"error": null,
"created_at": "2026-04-22T12:00:00.000Z"
}
],
"next_cursor": "cm4rnd2lk0009jx04e6m1q8sb"
}next_cursor is null when there are no more pages.
Example — paginate through every completed render
cursor=""
while : ; do
resp=$(curl -s "https://automette.com/api/v1/renders?status=completed&limit=100${cursor:+&cursor=$cursor}" \
-H "Authorization: Bearer dg_your_key")
echo "$resp" | jq '.renders[]'
cursor=$(echo "$resp" | jq -r '.next_cursor')
[ "$cursor" = "null" ] && break
done