Skip to content

rombik API

HTTP API for flowcharts & structograms from your scripts. Authenticate with the X-API-Key header.

API reference

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.svg
ISO 5807 flowchart of the grade function, generated from code

What /render can do

One endpoint, more knobs than it looks. Everything below is a parameter of the same call.

Every parameter — in the reference
  • 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 key

The 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.

Remote server address
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:

OAuth metadata
https://rombik.app/.well-known/oauth-authorization-server
OpenID Connect metadata
https://rombik.app/.well-known/openid-configuration
  1. 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.

  2. 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.

  3. 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.

  4. 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.

Parameters and try-it — in the API reference

Share links, native format and pricing

View

A key takes a minute

It lives in your account, next to your limit, history and access revocation.