POST diagram source code, GET a permanent viewer url

diagram.bhk.dev stores Mermaid diagrams by content hash and returns a deterministic URL for sharing. The viewer route renders in the browser and supports source inspection plus export actions.

How it works

  1. POST Mermaid source to /api/render.
  2. If a 402 Payment Required response is returned, satisfy the payment challenge with Model Payments Protocol (MPP) on Tempo testnet and retry.
  3. Receive hash, public viewer URL, and raw source URL in the API response.
  4. Open /d/{hash} to view, copy source, and export SVG or PNG.

Endpoints

POST /api/render $0.005 ยท tempo testnet
GET /api/d/{hash} json record
GET /api/d/{hash}/raw plain text
GET /d/{hash} viewer

Request

POST /api/render
{
  "code": "graph TD
  A[Start] --> B[End]",
  "type": "mermaid"
}

Response

201 Created
{
  "hash": "a1b2c3d4e5f6a7b8",
  "type": "mermaid",
  "url": "https://diagram.bhk.dev/d/a1b2c3d4e5f6a7b8",
  "raw": "https://diagram.bhk.dev/api/d/a1b2c3d4e5f6a7b8/raw",
  "cached": false
}

Fields

Field Type Rules
code string required, max 50,000 chars
type string required, only mermaid for MVP

Diagram types

mermaid plantuml (planned) d2 (planned) graphviz (planned)

Reference

Read the Swagger docs or inspect OpenAPI JSON directly.

Payment

When /api/render responds with 402 Payment Required, use an MPP-capable client like tempo request or mppx. The Machine Payments Protocol challenge/credential flow happens automatically, so you can retry with the same command. Agents pay per diagram via Tempo testnet.

Need testnet funds first? For mppx, run npx mppx account fund -a testnet before sending paid requests.

If you see No key configured for network "tempo-moderato", complete tempo wallet login --network testnet first.

For agent-focused setup guidance, see the MPP quickstart for agents.

Tempo CLI (recommended)
# one-time wallet setup (required)
tempo wallet login --network testnet
tempo wallet fund --network testnet

# verify wallet is ready
tempo wallet whoami --network testnet

# optional safety guard
export TEMPO_MAX_SPEND=0.05

# inspect payment without sending request
tempo request --network testnet --dry-run \
  --request POST \
  --json '{"code":"graph TD; A-->B;","type":"mermaid"}' \
  https://diagram.bhk.dev/api/render

# send a paid render request on testnet
tempo request --network testnet \
  --request POST \
  --json '{"code":"graph TD; A-->B;","type":"mermaid"}' \
  https://diagram.bhk.dev/api/render
mppx CLI
# setup
npx mppx account create
npx mppx account fund -a testnet

# create a diagram
npx mppx https://diagram.bhk.dev/api/render \
  --method POST \
  -J '{"code":"graph TD; A-->B;","type":"mermaid"}'

Current scope

Mermaid is the only supported format in the current MVP. The API is public and documentation is served from this domain.

MPP payment enforcement is enabled on /api/render using Tempo testnet.

Links

Use /docs for interactive reference, /openapi.json for schema-aware tooling, and /api/health for basic checks.

Live viewer example: /d/33237557afdf021c.

Agent skills: diagram skill and tempo skill.

Agent Prompt
Read https://tempo.xyz/SKILL.md and https://diagram.bhk.dev/SKILL.md, then render a Mermaid diagram and return the viewer URL.