rombik API
HTTP API for flowcharts & structograms from your scripts. Authenticate with the X-API-Key header.
API, CLI and MCP come with the Pro plan — no separate “API pricing”. Pricing
curl https://rombik.app/api/v1/render \
-H "X-API-Key: $ROMBIK_API_KEY" \
-F [email protected] -F format=svg \
-o grade.svgWhat /render can do
One endpoint, more knobs than it looks. Everything below is a parameter of the same call.
11 languages
python, cpp, c, java, csharp, pascal, javascript, typescript, php, go, rust — plus rombik: your own chart tree (astJSON) for any other language.
12 formats + animation and JSON
docx, visio, drawio, typst, excalidraw, svg, png, jpeg, webp, gif, gif_anim, pdf, html, json — docx and visio come out as native shapes you can keep editing.
Images and a web page
jpeg — a raster on white; webp — lossless and lighter than png; gif — static, 256 colours; gif_anim — the chart draws itself block by block, on a loop; html — the chart and the code with line numbers on one page. With json: true rasters come back base64 like png, and html comes as text like svg.
Two diagram kinds
mode: "flow" — a standard flowchart; mode: "nsd" — a Nassi-Shneiderman structogram.
Source: code or a link
pass url instead of code: raw.githubusercontent.com, gist, gitlab, bitbucket, codeberg (github.com/…/blob/… links normalize themselves).
Batches up to 100 sources
/render/batch builds a multi-page PDF or a zip; the response carries X-Rombik-Rendered and X-Rombik-Failed headers.
Fine tuning
the options object: locale, your own words on the yes/no branches, terminators, figure numbering, scale, font. Tall charts split with A/Б connectors via split.
rombik CLI
Work with the API straight from your terminal — render, batch, plan, payment. One command installs the binary and detects your system.
curl -fsSL https://rombik.app/install.sh | sh Install manually
Direct binary links — in case the command above doesn’t fit.
rombik auth # sign in via the browser (or: rombik auth rk_…)
rombik render main.py -f pdf -o chart.pdf
rombik render app.ts -f drawio -o app.drawio
rombik render main.go --structogram -f svg # Nassi-Shneiderman structogram
cat prog.cpp | rombik render - --lang cpp -f png -o prog.png
rombik render --url https://raw.githubusercontent.com/…/main.py -f svg
rombik render main.py -f pdf --link # plus a temporary link to the result
rombik batch src/*.py -f pdf -o project.pdf # many sources at once
rombik me # plan and monthly limit
rombik products # plan catalog
rombik topup 3 # payment link for the plan with id 3
rombik mcp # MCP server over stdio
rombik version --json # {version, latest, updateAvailable}
rombik update # update to the latest version
rombik logout # remove the saved keyThe key is never passed as an argument — only via the ROMBIK_API_KEY variable or the config written by “rombik auth”. The API base is ROMBIK_API_URL. Full flag list: “rombik render -h”.
MCP server for agents
The agent gets render_flowchart, balance, products, topup_link. The remote server needs no install at all: paste the address into your MCP client (ChatGPT connectors, Claude, Cursor…) and sign-in opens in the browser by itself (OAuth) — no keys to type. Access is revocable in your account.
https://rombik.app/mcp claude mcp add --transport http rombik https://rombik.app/mcp Skill for AI agents
A ready-made skill in the open Agent Skills format — Claude Code, Codex, GitHub Copilot, Cursor, Gemini CLI and more.
npx skills add OlexiyOdarchuk/rombik-skill Sign in with rombik
Your app can ask people to sign in with their rombik account. The user sees a consent page with your app name, clicks “Allow” — and you get an API key that renders charts under their plan. It is plain OAuth 2.0 (authorization code + PKCE) with OpenID Connect on top, so any standard library works.
Libraries with discovery support configure themselves — give them the metadata URLs:
https://rombik.app/.well-known/oauth-authorization-server https://rombik.app/.well-known/openid-configuration - Describe your app
Host a JSON metadata document on your own domain: client_id (the URL of that same document), client_name and redirect_uris. Its https URL is your client_id — nothing to register, no secret needed, PKCE protects the flow. A client with a secret for a server-side app is issued by the rombik team on request.
- Get the user’s consent
Open the /oauth/authorize page for them. They see your app name and domain, click “Allow” and come back to your address with a one-time code. The code lives 10 minutes.
- Exchange the code for a token
A call to /oauth/token with the code and the PKCE check returns an access_token. It is a regular rombik API key — no separate logic after that, every endpoint works. The openid scope adds an id_token with the identity to the same response.
- Act on the user’s behalf
Who they are — /oauth/userinfo; keys to verify the id_token signature — /oauth/jwks. Then plain /render — under the user’s plan.
Worth knowing
The user’s plan
Rendering runs under the plan of the user who consented (Pro required), not yours.
A token that doesn’t expire
The user can revoke access in their account at any time — the key disappears and calls start returning 401.
PKCE is mandatory
S256 for clients without a secret; the plain method is rejected.
Metadata requirements
The document is served over https without redirects, and its client_id matches its URL. Redirect URIs must be https (http only for localhost).
App name
The user sees the name from the consent page in the access list in their account.
Share links, native format and pricing
Temporary links
When there is nowhere to show the file — a chat bot, a webhook, an email — hand out a link instead of bytes. Post the render result to /r and get a public address that lives an hour: images and PDFs open in the browser, everything else downloads. The CLI does the same with --link, and remote MCP uses the same store.
rombik native format
For unsupported languages, use
lang:"rombik"and pass astJSON (requires Pro). Full specification —/api/v1/rombik-format.md.-
So, what does it cost?
No separate “API pricing”: API, CLI and MCP come with the Pro plan together with the editor — the same monthly export limit as on the site. Get it on the pricing page or via
topup_linkin MCP.
A key takes a minute
It lives in your account, next to your limit, history and access revocation.