Skip to content

Quickstart

Get from zero to a rendered PDF in under two minutes.

Sign in to the dashboard and create a key from the API Keys page (or call POST /v1/api-keys directly with a Clerk session — see Authentication). The full key is shown only once — copy it now.

pdf_live_a1b2c3d4e5f6...
render.sh
curl https://api.tupsara.com/v1/pdf \
-H "Authorization: Bearer pdf_live_..." \
-H "Content-Type: application/json" \
-d '{
"html": "<h1>Hello, {{ name }}</h1>",
"variables": { "name": "World" }
}'

Response:

{
"id": "a3f1c2e4-...",
"status": "completed",
"download_url": "https://.../a3f1c2e4-....pdf?X-Amz-...",
"file_size_bytes": 18420,
"render_duration_ms": 812,
"created_at": "2026-08-30T10:15:00Z"
}

Open download_url — that’s your PDF. It’s a presigned link, valid for a limited time (currently one hour), and regenerated fresh every time you fetch the job again — safe to treat as short-lived.

Terminal window
curl https://api.tupsara.com/v1/pdf/a3f1c2e4-... \
-H "Authorization: Bearer pdf_live_..."
  • Authentication — API keys vs. Clerk sessions, and which endpoints accept which.
  • Templates & Community — save this HTML once and reuse it, or start from a ready-made community template (invoice, boarding pass, ticket with a QR code, …).
  • MCP Integration — do all of this from Claude instead of curl.