---
title: "Developers"
description: "Build on the Imejis image generation API: get a key, send one request, get the image back. OpenAPI description, OAuth, MCP server and quota rules."
url: "https://www.imejis.io/developers"
image: "https://www.imejis.io/og.png"
---

# Developers

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 key](https://app.imejis.io/settings/api-keys)[Read the API docs →](/apis)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 →](/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 →](https://app.imejis.io/settings/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 →](/apis)

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 →](/apis)

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 →](https://api.imejis.io/openapi.json)

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 →](/agents)

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 →](/apis)

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 →](/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 →](/components)

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 →](/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 →](/pricing)

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 →](/faqs)

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 →](https://app.imejis.io/settings/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 →](/changelogs)

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

[Start free](https://app.imejis.io/login?from=developers-final-cta)[or report a docs gap →](/contact)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.imejis.io/#organization","name":"Imejis.io","url":"https://www.imejis.io","logo":{"@type":"ImageObject","url":"https://www.imejis.io/icon-rounded.png","width":512,"height":512},"sameAs":["https://twitter.com/Imejis_io","https://www.instagram.com/imejis_io","https://in.pinterest.com/imejisio"],"email":"support@imejis.io","contactPoint":[{"@type":"ContactPoint","contactType":"customer support","email":"support@imejis.io","url":"https://www.imejis.io/contact","availableLanguage":"en"},{"@type":"ContactPoint","contactType":"sales","email":"hello@imejis.io","url":"https://www.imejis.io/enterprise","availableLanguage":"en"}]},{"@type":"SoftwareApplication","@id":"https://www.imejis.io/#software","name":"Imejis.io","url":"https://www.imejis.io","applicationCategory":"DesignApplication","operatingSystem":"Web","description":"Template-based image generation API. Design templates in a drag-and-drop editor, generate images programmatically via REST API.","offers":[{"@type":"Offer","name":"Free","price":"0","priceCurrency":"USD","description":"100 API renders/month, 50 designs, 500MB storage"},{"@type":"Offer","name":"Basic","price":"14.99","priceCurrency":"USD","description":"1,000 API renders/month, unlimited designs, 10GB storage"},{"@type":"Offer","name":"Pro","price":"24.99","priceCurrency":"USD","description":"5,000 API renders/month, unlimited designs, unlimited storage"},{"@type":"Offer","name":"Unlimited","price":"69.99","priceCurrency":"USD","description":"25,000 API renders/month, unlimited designs, unlimited storage"}],"featureList":["REST API with sync image response","MCP server for AI agents (Claude, ChatGPT, Gemini, Cursor, Google Antigravity)","Drag-and-drop template editor","Built-in Unsplash stock photos","Multiple sizes per design, auto-reflowed from the master","Public shareable links","Bulk image generation","Zapier, Make and n8n automation integrations"],"screenshot":"https://www.imejis.io/og.png","provider":{"@id":"https://www.imejis.io/#organization"}},{"@type":"WebSite","@id":"https://www.imejis.io/#website","url":"https://www.imejis.io","name":"Imejis.io","description":"Automate image generation with API. Generate social media images, e-commerce banners, and marketing graphics at scale.","publisher":{"@id":"https://www.imejis.io/#organization"}}]}
```

```json
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.imejis.io/"},{"@type":"ListItem","position":2,"name":"Developers","item":"https://www.imejis.io/developers"}]}
```
