Skip to main content

Chart images from Chart.js without the runtime

Email, Slack, and PDFs won't run JavaScript. POST your config as JSON — get PNG, SVG, WebP, or PDF in milliseconds. No headless Chrome. No servers to babysit.

14-day trial · 1,000 renders · Full API · Usually live in under 5 minutes

Your Chart.js config in. A production-ready image out. That's the whole API.

Drop into your existing stack

Official integrations and SDKs: Zapier, n8n, Node.js, Python, Ruby, Go, PHP

Features

Ship chart images anywhere JavaScript can't run

via api

Send a config. Get an image.

Any Chart.js config, posted as JSON. The response is your rendered file — PNG, SVG, WebP, or PDF. No browser to spin up, no server to maintain. One endpoint, every language.

const res = await fetch("https://api.chart-output.com/v1/render", {
  method: "POST",
  headers: { "Authorization": "Bearer co_live_..." },
  body: JSON.stringify({ type: "bar", data: chartData }),
});
const png = await res.arrayBuffer(); // → image/png
for email

Charts that render in every inbox

Every major ESP — Gmail, Outlook, Apple Mail, HubSpot, Customer.io — renders a plain <img> tag. Use your Chart-Output URL as the src. No JavaScript, no rendering quirks, no broken charts in Outlook.

<img
  src="https://api.chart-output.com/v1/render?chart=..."
  alt="Monthly signups"
/>
chart studio

Start from a template. Ship something polished.

30 production-ready Chart.js templates across dark, light, and brand-neutral styles. Pick one, drop in your data, copy the API snippet. No design work required.

Browse Chart Studio templates
brand kits

Every chart inherits your brand automatically

Define your colors, fonts, and logo once as a brand kit. Reference it by ID on any API call — emails, reports, Slack digests, dashboards — and every chart renders consistently, without touching the config again.

performance

133ms typical render time

Fast enough to call inline on a server route without slowing your response. Render on-demand or pre-generate and cache — either works.

output formats

PNG, SVG, WebP, and PDF

One chart config renders to four formats. Switch per request without changing anything else. Retina 2× is included on all plans. PDF is available on Pro and Scale.

How it works

Three steps. Any stack.

1

POST your config

Send any Chart.js JSON to /v1/render. The API returns the image file directly — no polling, no callbacks, no second request.

2

Use the URL anywhere

Drop it into an <img> tag in an email template, a Slack message, a PDF generator, or an automation workflow. No JavaScript needed at the destination.

3

Scale without managing infrastructure

Chart rendering is CPU-intensive at volume. We run the renderer so you don't spin up headless Chrome, manage canvas dependencies, or debug memory leaks at 3am.

Compare

The chart image API that goes further

QuickChart and Chartly are rendering pipes. You send JSON, you get an image. That's where they stop. Chart-Output adds the layer every developer actually needs.

Chart-OutputQuickChart ProChartly Starter
Price$19/mo$40/mo~$38/mo
Renders50,000 · $19/mo100,000 · $40/mo100,000 · ~$38/mo
PDF output✅ Pro+❌ Enterprise only❌ None
WebP output✅ All plans
Brand kits✅ All plans
Chart Studio templates✅ 30 free
Webhooks✅ Pro+
Custom domain✅ Pro+❌ Enterprise only
Uptime SLA✅ 99.9%❌ Pro has none
USD pricing❌ GBP only

Migrating from QuickChart? Your existing Chart.js configs work without modification. Swap the endpoint, add your API key, done. See the migration guide →

Pricing

Pricing that doesn't punish growth

Pay for renders, not seats. Brand kits, all chart types, and full API access included on every plan — nothing held behind enterprise paywalls.

Trial

14 days. 1,000 renders. Everything unlocked.

$0

14 days · 1,000 renders

Includes
  • All chart types
  • PNG, SVG, WebP
  • Brand kits
  • Chart Studio access
  • Full API access
  • No watermarks
  • No credit card required
Starter
Most popular

For developers and small teams shipping charts in email, reports, or automations.

$19/mo

$29 $19/moand 5× more renders than before.

50,000 renders / month

What's included
  • 50,000 renders/month
  • All chart types
  • PNG, SVG, WebP
  • Retina 2× included
  • Brand kits
  • Chart Studio — 30 templates
  • No watermarks
  • REST API + full docs
  • Email support≤48h
Pro

For teams that need PDF, webhooks, and room to scale.

$49/mo

250,000 renders / month

Everything in Starter, plus
  • 250,000 renders/month
  • PDF output
  • Webhooks
  • Custom domain
  • Priority support≤24h
Scale

For high-volume pipelines, agencies, and automation-heavy stacks.

$99/mo

1,000,000 renders / month

Everything in Pro, plus
  • 1,000,000 renders/month
  • Dedicated render queue
  • 99.9% uptime SLA
  • Slack support channel
  • Early access to new features
14-day free trialNo credit card requiredCancel anytimeRenders reset monthlyUpgrade or downgrade instantly
Still have questions?

Email hello@chart-output.com

No. Start immediately with 1,000 renders and full access to every feature. Add a card only when you're ready to upgrade.
One successful API response containing an image. Requests that return errors don't count against your quota. Chart Studio playground renders don't count either — explore freely.
QuickChart's paid tier is $40/month for 100,000 renders with no SLA and no brand features. Chart-Output Starter is $19/month for 50,000 renders with brand kits, WebP, Retina 2×, and Chart Studio included. Pro adds PDF and webhooks at $49 — features QuickChart reserves for enterprise contracts.
Chartly offers PNG and SVG only — no PDF, no WebP, no brand kits, no webhooks, and prices in GBP. Chart-Output includes all four output formats, brand kits, webhooks, and a custom domain option at comparable or lower USD pricing.
Yes. Chart-Output renders any valid Chart.js configuration without modification. If it renders in Chart.js, it renders here.
Yes. Changes take effect immediately and billing is prorated. No contracts, no minimums, no calls required.
No — renders reset monthly. If you're consistently hitting your limit, upgrading takes 30 seconds.