PIXTEX
Open the editor →
pixtex public api · beta

SHIP LIVING WORKFLOW DIAGRAMS.

Render any n8n workflow as a pixel-perfect image with one POST — or host it at a permanent URL that re-renders when your workflow changes. Built for CI, docs, and READMEs. Free keys, no signup.

01

Create your key

We email you a confirmation link — your key is minted when you open it, shown once, and we store only its hash. Up to 3 active keys per email. No newsletter, ever.

02

Render an image

POST /v1/render takes your workflow JSON in the body (never in a URL) and returns the finished image — png, jpeg, webp, svg or pdf. Omit any option and it falls back to the editor's defaults.

shell
# workflow.json — any workflow exported from n8n
jq '{workflow: .}' workflow.json > request.json

curl -X POST https://api.pixtex.dev/v1/render \
  -H "Authorization: Bearer $PIXTEX_KEY" \
  -H "Content-Type: application/json" \
  --data @request.json -o workflow.png

# same options the editor has — mix and match:
jq '{workflow: ., options: {background: "midnight", frame: "og", format: "webp"}}' \
  workflow.json > request.json
03

Or host a living diagram

POST /v1/images renders once and gives you a permanent image URL. Paste the markdown into a README, Notion page or forum post — then PUT the same id whenever the workflow changes and every embed updates in place. Your workflow JSON is used for the render and discarded — only the PNG is stored.

create
jq '{workflow: ., name: "Order sync"}' workflow.json |
curl -X POST https://api.pixtex.dev/v1/images \
  -H "Authorization: Bearer $PIXTEX_KEY" \
  -H "Content-Type: application/json" \
  --data @-
response
{
  "image":    { "id": "aB3xK9_qLw4", "name": "Order sync",},
  "imageUrl": "https://api.pixtex.dev/i/aB3xK9_qLw4.png",
  "markdown": "![Order sync](https://api.pixtex.dev/i/aB3xK9_qLw4.png)"
}
update in place
# workflow changed? re-render in place — the URL never changes
jq '{workflow: .}' workflow.json |
curl -X PUT https://api.pixtex.dev/v1/images/aB3xK9_qLw4 \
  -H "Authorization: Bearer $PIXTEX_KEY" \
  -H "Content-Type: application/json" \
  --data @-

Embeds refresh as caches revalidate (≤ 1 hour). Free-tier hosted images carry a small Pixtex watermark.

endpoints
POST /v1/keysRequest an API key — emails a confirmation linkfree
POST /v1/keys/claimOpen the emailed link → the key is mintedfree
GET /v1/keys/meKey info, usage and limitsfree
DELETE /v1/keys/meRevoke the key + delete its hosted imagesfree
POST /v1/renderRender a workflow → image bytes1 render
POST /v1/imagesHost a PNG at a permanent URL1 render
PUT /v1/images/:idRe-render a hosted image in place1 render
GET /v1/imagesList your hosted imagesfree
DELETE /v1/images/:idDelete a hosted imagefree
GET /i/:id.pngThe public image itself (embed this anywhere)free

Auth is Authorization: Bearer pxt_… on every /v1 call. Render responses include X-Renders-Remaining so your CI can budget.

render options

The API takes the editor's full option set — same names, same values. Dial in the look in the editor, then send the same options from code. (format and scale apply to /v1/render only — hosted images are always PNG at 2×.)

optionvaluesdefault
formatpng · jpeg · webp · svg · pdfpng
scale1 · 2 · 3 · 42
frameauto · og · youtube · squareauto
backgrounddark · midnight · gradient · white · paper · transparentdark
iconPackcustom · n8ncustom
nodePalettepunch · candy · sunset · monopunch
layoutoriginal · autooriginal
layoutDirectionLR · TB · autoauto
spacingcompact · normal · spaciousnormal
nodeDetailminimal · standard · detailedstandard
edgeStylecurved · straight · stepcurved
gridStyledots · lines · cross · nonedots
showTitle / showLegend / showWatermark / …true · false
free beta limits
Renders per month, per key300
Render burst20 / 10 min
Hosted images per key50
Active keys per email3
Workflow size≤ 500 nodes · 10 MB body
Watermark on hosted images (free)always on

Beta defaults — they will grow, not shrink. Keys are free and self-serve; your workflow JSON never appears in a URL or a log, render requests are processed in memory, and hosted images store only the final PNG. Revoking a key immediately deletes its hosted images.