For developers
An image API that renders
exactly what your designer made.
One POST. One on-brand image. No headless browser, no font-loading race, no screenshot service quietly rendering the wrong weight.
curl -X POST https://api.anjin.design/v1/renders \
-H "Authorization: Bearer $ANJIN_API_KEY" \
-d '{
"template": "acme_instagram_1080x1350",
"modifications": [
{"name": "headline", "text": "Launch day"},
{"name": "hero_image", "image_url": "https://…/photo.jpg"},
{"name": "brand_color", "color": "#2563EB"}
]
}'The bug class this deletes
One engine, two homes.
The renderer in the browser editor and the renderer behind the API are the same engine running the same file. Parity is structural, not a test suite we hope stays green. We measure it at SSIM 1.00000.
If you have ever shipped an image pipeline on headless Chrome, you know exactly which failures this removes: the font that resolved differently on the render box, the line that wrapped one word early only in production, the emoji that came out a box. None of them reproduce locally, and all of them ship.
Contract first
The template tells you what it accepts.
GET the schema and you have the slot names and types before you spend a credit. Validate input, and keep the integration working when a designer adds a slot.
Unknown slot names fail with a 422 naming the offender and charge nothing. Failed renders are refunded automatically — you're charged for images you receive.
A 2× render costs 4 credits — four times the pixels, four times the price.
Output
Two URLs, on purpose.
output_url is a signed link valid about an hour — fine for an immediate download. asset_url is permanent, and it's the one to store.
We learned that distinction the hard way: a temporary URL saved into someone's database expires, and the failure surfaces weeks later as a broken image on a client's site.
Launch day
1080×1350
Launch day
1080×1920
Launch day
1080×1080
Launch day
PRODUCT1280×720
Each one composed for its shape — not the same image cropped four ways.
Objections
Two things you're thinking.
- “I'll just use Puppeteer.”
- You can. You'll then own font installation, layout drift between your machine and the render box, browser upgrades changing text metrics, and a designer who can't fix any of it without you. This is that, solved — plus a design tool your designer can actually use.
- “What if I outgrow it?”
- Top-up packs, no forced plan upgrades. Above roughly 5,500 renders a month the per-credit maths favours a higher-volume competitor, and we say so on the comparison pages rather than letting you find out in month three.
Full endpoint reference, error codes and rate limits: the API page.
