TwoMinuteMind Map
Slide Deck Quality Mind Maps in 2 minutes or less

Mind Map HTTP API

POST a small JSON description and get back a deck-ready PNG (or SVG). The endpoint is open and CORS-enabled, so it works from browsers, scripts, CI and anywhere else you can make an HTTP call. The same JSON opens in the builder.

POST https://www.twominutetoolkit.com/api/render/mindmap
Fair use: rate-limited to 20 requests a minute per IP (bursts capped at 5 a second), shared across every Two Minute tool, with a 64 KB body cap. No key or sign-up needed.

Try it

Open in builder

Code samples

Live preview

Click Render to call the API.

Request body

FieldTypeDescription
titlestringHeading shown top-left of the chart at 22px bold. Every chart has one title row; an empty string hides it.
max 140 chars · default "Mind Map"
centerrequiredstringThe central topic, drawn as a bold pill in the middle, e.g. "Customer retention". Required. Keep it short; long text wraps onto two lines.
max 80 chars
branchesrequiredobject[]Required: the first-level branches around the centre (up to 8; an empty list draws just the centre), each with optional nested `children` (up to 3 levels below the centre and 50 topics in total; extras are dropped with a warning). In the balanced layout they run clockwise: the first branches down the right side, the rest up the left.
max 8 items
layoutstring"balanced" (default): branches split between the left and right of the centre so both sides are about the same height, the classic mind-map look. "right": every branch to the right of the centre, like an outline.
"balanced", "right" · default "balanced"
widthintegerChart width in pixels (640–2400, default 1280, which suits a 16:9 slide). PNG output renders at 2x. Height is always computed from the content.
640–2400 · default 1280
palettestring[]Hex colours applied in order to items that have no colour of their own. Pass the user's brand colours here when they name them. Default: indigo, sky, emerald, amber, red, gray.
max 12 items · default ["#4f46e5","#0ea5e9","#10b981","#f59e0b","#ef4444","#6b7280"]

branches[] item

FieldTypeDescription
namerequiredstringBranch label, drawn as a coloured pill.
max 80 chars
colorstringOptional hex colour for this branch and everything under it, e.g. "#10b981". Without one, branches take the palette colours in order.
max 40 chars
childrennode[]Sub-topics of this branch, top to bottom.
max 12 items

node

FieldTypeDescription
namerequiredstringTopic label, ideally a few words. Long labels wrap onto two lines, then truncate.
max 80 chars
childrennode[]Sub-topics of this topic, top to bottom.
max 12 items

Endpoints

  • POST /api/render/mindmap returns image/png; add ?format=svg for SVG.
  • GET /mindmap.png?d=<payload> and /mindmap.svg?d=<payload> render a chart from a link. The payload is the JSON body, raw-deflated and base64url-encoded. Nothing is stored: links are permanent and cached for a year.
  • /mindmap#d=<payload> opens the same chart in the builder for editing.
  • GET /api/render/mindmap?demo=1 returns the demo chart.
  • GET /api/schema/mindmap returns the JSON Schema, for code generators and AIs.

Errors and adjustments

Input is lenient where the intent is clear: numeric strings become numbers, out-of-range values are clamped, and unknown fields are ignored. Adjustments are listed in the X-Render-Warnings header. Anything unclear returns a 400 that says how to fix it:

{
  "error": "Invalid payload",
  "issues": [{ "path": "tasks", "message": "must be an array" }],
  "example": { … }
}

Calling from an AI assistant?

Use the hosted MCP server instead. It gives Claude, Cursor and other MCP clients a create_mind_map tool that returns the image plus image, SVG and edit links. See the MCP page →