TwoMinuteProcess
Slide Deck Quality Process Diagrams in 2 minutes or less

Chevron Process 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/process
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 "Our Approach"
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"]
stepsrequiredobject[]The phases, left to right (2–7; extra steps are dropped with a warning). Each step is one chevron with its name inside, an optional timing line just under it and optional bullets beneath. Keep names to one to three words; long names shrink, wrap to two lines, then truncate.
max 7 items
currentintegerOptional "you are here" highlight: the 0-based index of one step (0 is the first step). That step keeps its colour and gets a marker; the others turn muted grey. Omit to show every step in colour (the default).
0–6

steps[] item

FieldTypeDescription
namerequiredstringPhase name shown inside the chevron, e.g. "Discover". Shrinks from 15px to 11px, then wraps to two lines, then truncates.
max 60 chars
timingstringOptional short timing line shown under the chevron, e.g. "Weeks 1–2", "Q3" or "30 days". Omit for none.
max 60 chars
bulletsstring[]Optional detail points listed under the chevron (up to 5). Short phrases work best; long ones wrap onto several lines.
max 5 items
colorstringHex colour for this chevron, e.g. "#4f46e5". Optional: steps without one take the next palette colour. Text inside switches between white and dark for contrast.
max 40 chars

Endpoints

  • POST /api/render/process returns image/png; add ?format=svg for SVG.
  • GET /process.png?d=<payload> and /process.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.
  • /process#d=<payload> opens the same chart in the builder for editing.
  • GET /api/render/process?demo=1 returns the demo chart.
  • GET /api/schema/process 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_process tool that returns the image plus image, SVG and edit links. See the MCP page →