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

# Render a design to an image (GET)

`GET /{design_id}`

## Request

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

Render a design to a finished image. Authenticate with a render key (`dma-api-key`) as a header, a `?dma-api-key=` query param, or the `key` / `api-key` query alias. Override any field marked dynamic with query params; dot-paths reach nested properties (`?title=Hello&price.value=42`). Get the field list from GET /designs/v2/{id}/config. Choose the output with `?format=` (png, jpeg, webp, pdf; default jpeg) and `?quality=` for JPEG (1-100). A typical render finishes in under 2 seconds. Output is up to 4096x4096. Every render counts as one API call, including a GET URL in an `<img>` tag.

## Query parameters

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

## 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)
