Documentation
Chart-Output
Chart-Output renders Chart.js configs into PNG, SVG, WebP, JPEG, or PDF via a single POST request — no headless browser required.
5-minute path to your first chart
- 1Sign up → go to API Keys → click Create key. You get a
pk_test_…sandbox key immediately. - 2Follow the Quick Start — copy-paste one cURL command, get a PNG back.
- 3Open the Playground to preview live changes, then copy the generated spec into your codebase.
What it does
You POST a JSON object describing a chart — type, data, colours, dimensions — and the API returns the rendered image as binary bytes. No browser. No Puppeteer. No headless Chromium process to manage.
The JSON structure follows Chart.js conventions. If you already use Chart.js in the browser, the learning curve is close to zero: the same type, data, and options fields work.
Key concepts
Render endpoint →
POST /api/v1/render — the only endpoint you need for generating charts. GET variant available for <img src> embeds.
Chart spec →
JSON with type, data.labels, data.datasets[], and optional Chart.js options. Validated with Zod — every error includes a path.
Brand kits →
Apply colors, fonts, and logos consistently across renders without touching each spec. Six presets included.
Card composition →
Wrap your chart in a full card shell — header, KPI strip, footer — rendered as a single image. Great for emails and Slack.
Output formats →
PNG (default), JPEG, SVG, WebP, and PDF. PNG is the right choice for email. PDF requires the Business plan.
returnUrl →
Set returnUrl: true to get a CDN URL back instead of raw bytes — useful when you need a stable image URL for embedding.
How Chart-Output compares
Evaluating chart image APIs? We've written direct, honest comparisons against the two most common alternatives — input formats, output formats, pricing, and where each tool fits best.
QuickChart vs Chart-Output →
URL params vs POST body, brand kits, async rendering, AGPLv3 licensing, and transparent pricing compared.
Image-Charts vs Chart-Output →
Google Image Charts URL format vs Chart.js JSON, white-labeling, sync vs async pipelines, and pricing compared.
More posts on the Chart-Output blog.
Questions? hello@chart-output.com