Developers

One endpoint. The image comes back in the response.

Design a template in the editor, mark the fields that change, then POST your data to the render URL. You get image bytes, not a job id. Typical render is under 2 seconds, and the free tier is permanent so you can build the whole integration before you pay anything.

Get an API keyRead the API docs 100 renders a month, free, forever
Quickstart

Three stepsto the first image.

Nothing to install. If you have a design id and a key, the next request returns a finished image.

1

Create a design

Start from a template or a blank canvas, then mark the text and image layers you want to change per render as dynamic.

Browse templates

2

Create a render key

In your account settings. The key goes in the dma-api-key header, and you can revoke it from the same screen.

API keys

3

Send the render request

POST the fields you marked dynamic. The response is the image, in the format you asked for: png, jpeg, webp or single-page pdf.

Full parameter list

curl -X POST "https://render.imejis.io/v1/{design_id}?format=png" \
  -H "dma-api-key: $IMEJIS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"headline":{"text":"Spring is here"}}' \
  -o promo.png
Surfaces

Three APIs,one account.

Mixing them up is the most common integration mistake, so here they are side by side with what authenticates each one.

Render API

https://render.imejis.io/v1/{design_id}

The one that generates images. GET or POST, authenticated with the dma-api-key header, and the response body is the image itself. No webhook, no polling, no second request to fetch the file.

Render API reference

Management API

https://api.imejis.io

Everything around the render: designs, templates, fonts, files, API keys, analytics and carousels. OAuth 2.0 Bearer tokens, described by an OpenAPI document you can generate a client from.

OpenAPI description

MCP server

https://api.imejis.io/api/mcp

The same account over the Model Context Protocol, streamable HTTP, so an agent creates and renders designs as the authenticated user. OAuth with dynamic client registration, so there is no key to paste.

Connect an agent

Reference

The documentsworth bookmarking.

Written for people, and published again in formats a program can parse.

Per language

Copy-paste examples

The same render call in cURL, JavaScript, Python, PHP, Ruby, Go, Java and 30+ other languages and frameworks, each as a page you can hand to a teammate.

All API docs

Auth

OAuth 2.0, written for agents

Authorization code with PKCE, dynamic client registration (RFC 7591), and the protected-resource metadata an MCP client needs to discover the authorization server.

auth.md

Components

27 component types, with their JSON

Text, images, shapes, QR codes, tables, metrics and the chart family, each with its properties, variants and a sample payload to render it.

Component catalog

Markdown

Docs an agent can read

Append .md to any URL for the markdown version of that page, and read llms.txt for the index. The homepage also answers an Accept: text/markdown request in markdown.

llms.txt

Running it

Keys, quotaand what counts.

The rules that decide your bill and your error handling, in one place.

Free tier

Build against it with no card

100 renders a month, free, forever, with full API access. That is the sandbox: the same endpoints, the same output, no watermark.

Plans and render limits

Quota

Every render counts as a render

Including a GET render URL embedded in an img tag, which re-renders on each page load. Over quota, the API answers 429 with the usage, the limit and the reset time in the body.

Quota questions

Keys

Create and revoke your own

Render keys are created, rotated and revoked in your account settings, by you or by an agent holding a write-scoped token. Keys are scoped to one account.

Manage API keys

Stability

Versioned paths, published changes

The render path carries its version, so a breaking change ships on a new path instead of changing the one you call. Product and API changes are written up as they ship, and the API exposes a health endpoint you can poll.

Changelog

Ship it this afternoon

Create an account, create a key, render your first image. If something in the docs is wrong or missing, tell us and we'll fix the page.

We use cookies to run the site and, with your consent, for analytics and marketing. See our Cookie Policy. You can change this any time from “Cookie settings” in the footer.