Skip to content
Developers · API

Same designs. Programmatic.

Build KoalaFul into your own app. Generate, edit, and render designs from any backend — same templates, same assets, full API control.

Get an API key →

The quickstart

Create a key in the dashboard (avatar menu → API keys; it is shown once), then call the API directly. There is no SDK to install — it is plain REST over HTTPS.

# 1. Create a design
curl -X POST https://dash.koalaful.io/api/designs \
  -H "X-API-Key: $KOALAFUL_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Spring Sale","width":1080,"height":1080,
       "html_content":"<div class=\"html-element\" data-element-type=\"text\" style=\"position:absolute;left:80px;top:80px;font-size:64px;\">Spring Sale</div>",
       "css_content":"width:1080px;height:1080px;position:relative;overflow:hidden;background:#fff;"}'

# → {"success":true,"id":"dtky2c34d56c925"}   ← id is the share code

# 2. Render it
curl "https://dash.koalaful.io/api/designs/dtky2c34d56c925/export?format=png" \
  -H "X-API-Key: $KOALAFUL_KEY"

# → {"success":true,"format":"png","url":"<hosted image url>"}

Every endpoint takes either the numeric design id or its share code. The full reference, with request and response shapes for every route, is the API reference in the dashboard.

What you can do

Create and edit designs

Full CRUD on designs, folders and templates. Update text, images or any field on a saved design without rebuilding it.

POST/api/designs
PUT/api/designs/{id}

Start from a template

Clone any template in the shared library, or a single page out of a multi-page pack, into a new editable design.

POST/api/designs/from-template
GET/api/templates

Variables and personalisation

Tag any element with a variable name, then render substituted copies without touching the master design.

GET/api/designs/{id}/variables
POST/api/designs/{id}/render

Bulk generation

One request, up to 1,000 rendered variants, queued and processed in the background. Poll the job, or give it a webhook_url and be told when it finishes.

POST/api/designs/{id}/export-bulk
GET/api/render-jobs/{uuid}

Export

PNG, JPG, PDF or raw HTML — a single page or a whole multi-page document with mixed page sizes. Rendered server-side by the same headless Chromium the editor uses, so an export matches the canvas exactly.

GET/api/designs/{id}/export

Assets

Upload images, import them from a URL, generate them from a prompt, or strip a background — all saved into your asset library for reuse.

POST/api/upload
POST/api/uploads/remove-background

Guest edit links

Let your users edit a design without a KoalaFul account. Mint a link from your backend, send them to it, and they get the real editor scoped to that one design — no signup, no login, and nothing else in your account reachable. Set an expiry, rotate the URL, or revoke it instantly.

POST/api/designs/{id}/guest-links
GET/api/designs/{id}/guest-links

MCP server

Point any MCP client — Claude, Cursor, your own agent — at https://dash.koalaful.io/mcp with the same API key. 29 tools covering designs, templates, variables, rendering, exports, folders and uploads. Have it call get_koalaful_design_rules first.

Plans and limits

One account, one allowance — the API and the editor draw on the same monthly limits. They reset on the 1st; going over returns 429 until then. Plans are managed in the dashboard and can be changed or cancelled at any time.

Starter

$0/ mo

Free. Enough to build and test an integration end to end.

  • 25 designs / month
  • 40 exports / month
  • Full API and MCP access
  • Every template and asset

Growth

$19/ mo

Small production workloads. $190 / year.

  • 250 designs / month
  • 600 exports / month
  • Higher AI usage limits
  • Priority generation queue

Pro

$49/ mo

Teams and production apps. $490 / year.

  • 2,000 designs / month
  • 5,000 exports / month
  • Bulk generation API
  • Advanced workflows

Scale

$99/ mo

High-volume and embedded products. $990 / year.

  • 10,000 designs / month
  • 25,000 exports / month
  • Bulk generation API
  • Priority support

Need more than Scale? Talk to us.

Auth and safety

Send your key as X-API-Key or Authorization: Bearer. Keys are stored hashed, shown once at creation, support an optional expiry, and can be revoked instantly. Server-side only — a key grants everything its owner can do, so it must never appear in client code. Key management itself is session-only: an API key cannot mint or list other keys.

The one credential that is safe to hand to an end user is a guest edit link. It is bound to a single design, carries its own expiry, can be rotated or revoked, and is refused on every other route in the account.

# List your designs
curl https://dash.koalaful.io/api/designs \
  -H "Authorization: Bearer $KOALAFUL_KEY"

# Mint a guest edit link for one design
curl -X POST https://dash.koalaful.io/api/designs/5932/guest-links \
  -H "X-API-Key: $KOALAFUL_KEY" \
  -H "Content-Type: application/json" \
  -d '{"permission":"edit","expires_in_hours":24}'

Build with KoalaFul

Get an API key, read the full docs, ship in a weekend.