---
title: "Render a design to an image (POST)"
method: POST
path: "/{design_id}"
tags: ["Render"]
---

# Render a design to an image (POST)

`POST /{design_id}`

## Request

- Base URL: `https://render.imejis.io/v1`
- URL: `https://render.imejis.io/v1/{design_id}`
- Auth: API key in header `dma-api-key`

The same render as GET. Send the `dma-api-key` as a header and the dynamic-field overrides as a JSON body. Prefer POST for long text or many fields. Choose the output with `?format=`/`?quality=` and the delivery with `?delivery=stream|hosted|signed` on the URL (same as GET); hosted/signed return a JSON body with the stored URL.

## Query parameters

- `format` 'png' | 'jpeg' | 'webp' | 'pdf'
- `quality` integer
- `variation` string
- `delivery` 'stream' | 'hosted' | 'signed'
- `expiresIn` integer

## Request body

- object

## Response `200`

The render. For delivery=stream, the image bytes; for delivery=hosted/signed, a JSON body with the stored URL.

- object
  - `success` boolean
  - `delivery` 'hosted' | 'signed'
  - `url` string: Public URL (hosted) or expiring signed URL (signed).
  - `expiresAt` string, date-time: Signed delivery only — when the URL expires.
  - `format` 'png' | 'jpeg' | 'webp' | 'pdf'
  - `file` object

## Other responses

- `401`: Missing or invalid credentials.
- `404`: No such resource.
- `429`: Render quota is used up. Check remaining quota, then retry after the plan window resets (`data.resetAt`).

---

[API](https://skmtc.dev/imejis/apis/imejis-api.md) · [All operations](https://skmtc.dev/imejis/apis/imejis-api/llms.txt) · [OpenAPI document](https://skmtc.dev/imejis/apis/imejis-api/revisions/4efd1a660d9c?raw)
