Chart image APIs compared

What 10,000 watermark-free chart images a month cost, and what else differs. We make ChartPNG, so read this knowing that. Every competitor value comes from the vendor's own pages. Where a page does not say, the cell says "Not stated".

Read on , with the page and a quote for each claim in Sources. Prices are as listed, with no conversion: ChartPNG and QuickChart in euros, the others in US dollars. ChartPNG's price includes VAT; the vendors' pages do not say whether theirs do.

Chart image APIs, side by side. The first row is the one that decides most choices.
FeatureChartPNGQuickChartChart SplatChart-OutputImage-Charts
Price for 10,000 images a month, no watermark€9/monthPro plan, VAT included. 10,000 images a month per key. Going over is flagged and dealt with by hand: there is no automatic cut-off.€39/monthProfessional plan: 10,000 images a month.$20/monthPro plan: 10,000 charts a month. Its pages do not say whether there is a watermark.$29/monthStarter plan: 10,000 renders a month, no watermarks.$99/monthBusiness plan, no watermark, API calls listed as unlimited. $89/month if paid yearly.
Free planSmall watermarkUp to 4 megapixels per image. No monthly counter, fair use applies.No watermark, rate limitedThe limit is not on its pricing page.100 charts a monthOver the limit, requests get a 429 until the next billing cycle. Watermark not stated.500 renders a monthNo watermarks.Small watermarkA small text watermark in the top right corner. Free forever, API calls listed as unlimited.
Cheapest paid plan from its pricing page€9/monthOne paid plan.€39/monthProfessional. Community is free.$5/monthStarter: 1,000 charts a month.$29/monthStarter.$99/monthBusiness. Individual is free.
Chart.js version4.6Renders with Chart.js 4; common v2 options are translated (see below).2 by defaultVersions 3 and 4 with the version parameter.4Stated on its home page.Not statedIts docs say the JSON follows Chart.js conventions.2.8.0The only version listed. Others on request.
Chart.js pluginsNoEight core chart types, plus five report presets: kpi, ranking, comparison, funnel and gauge.Yes, someIts README lists plugins such as datalabels and annotation, and says custom plugins are not available for version 3 and up.Not statedNot statedNot stated
JavaScript functions in the configNoChartPNG never runs code from the config. A function written as a string is removed, and a bare function is refused.YesIt has a documentation page for them.Not statedNot statedNoIts docs say functions are not supported, for reliability.
Config that is not strict JSONRepairedSingle quotes, unquoted keys, trailing commas and code fences are fixed, and common Chart.js 2 options are translated. The X-ChartPNG-Fixes response header lists what changed.AcceptedIts docs call the chart parameter a JavaScript or JSON object.Not statedNot statedNot stated
Signed URLsYesHMAC of the fields. The URL carries a key id, never the secret.YesHMAC of the chart parameter with your API key. The URL carries accountId and sig, never the key.Not statedListed on ProIts pricing page lists signed CDN URLs on Pro. Its docs list signed, short-lived URLs as planned.YesHMAC-SHA256 in the ichm parameter, with an account id. Its docs tie signing to the Enterprise plan and say it removes the watermark.
Image URL for an img tag (GET)YesYesNot statedIts docs show only POST, which returns base64 JSON.YesWithout a key, 5 requests per 15 minutes per IP. In an img tag the key goes in the URL.YesGET is what its examples use.
POSTYesBearer key. Returns the PNG.YesYesReturns JSON with a base64 PNG.YesYes
Output formatsPNGNot statedPNG, SVG on paid plansFree is PNG only; Starter and Pro add SVG.PNG, JPEG, SVG, WebP, PDFIts docs and its pricing page disagree on which plan includes PDF.Not stated
MCP serverYes@chartpng/mcp on npm, version 0.1.0, published 2 Nov 2026.None on its pagesThird-party MCP servers for QuickChart exist on npm. QuickChart does not mention one.YesIts docs say an MCP server is available.Yes@chartoutput/mcp.Yesimage-charts-mcp. Without a secret it makes watermarked URLs.
Self-hostable or open sourceNoHosted only, closed source.YesAGPL v3, with a Docker image. A self-hosted copy serves /chart, /qr and /graphviz.Not statedSelf-hosting guideDocker Compose; it needs Redis and Supabase or a compatible Postgres. Licence not stated.On-premise planBilled annually. Its pricing page gives two different starting prices, 350 € and 241.66 € a month.
What is kept about a chart, where documentedConfigs are not stored by the appUsage counters use a salted hash of the IP. The CDN caches each rendered image by URL for up to a year. Vercel keeps request logs, URLs included, for a day. No data region is published.Not stored, except short URLsShort URLs keep the config for 3 days, or 6 months on a paid plan. Logs kept on a support request are deleted after 7 days and can hold the config of a GET request.Chart data not statedIts privacy policy covers account and usage data.Render metadata is keptAI render inputs are discarded. Images stored for returnUrl are never overwritten and served with a one-year cache header. How long they are kept is not stated.Chart data not statedCustomer data is stored in Google Cloud regions in the EU (Belgium and Frankfurt). On request, data is deleted or returned when a subscription ends.

Moving from QuickChart. ChartPNG accepts QuickChart's names forchart, width, height, backgroundColor anddevicePixelRatio, repairs configs that are not strict JSON and translates common Chart.js 2 options. What still stops a move:

  • QuickChart-only parameters are refused: version, format and encoding. Remove them from the URL.
  • Functions never run: one written as a string is removed from the config, a bare one is refused. Plugins are not available.
  • Only the eight core chart types are drawn.
  • Defaults differ. ChartPNG draws 600 by 360 at pixel ratio 1 on a white background. QuickChart draws 500 by 300 at 2 on a transparent one.

The migration recipe has the steps and a before and after example.

When to pick something else

How the price row was chosen

For each vendor, the cheapest plan whose pages list 10,000 images a month or more, without a watermark. Overage prices are not compared because most pages do not list them. ChartPNG's 10,000 images a month is the plan allowance and is not cut off automatically.

Sources

All read on . Vendors change prices, so check before you buy.

QuickChart

Chart Splat

Chart-Output

Image-Charts