Image-Charts API
Generate bar, line and pie chart images from a URL, Google Image Charts style, with no API key. Perfect for emails and READMEs where JavaScript cannot run.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Image-Charts API?
Image-Charts renders charts as images from URL parameters alone. `GET https://image-charts.com/chart?cht=bvg&chd=t:60,40,30&chs=400x180` returns a PNG bar chart. No API key is needed for basic charts, and the parameter syntax is compatible with the retired Google Image Charts API.
There are places JavaScript charting libraries simply cannot go: HTML email, a Markdown README, a PDF generated by a headless renderer, a Slack unfurl. Image-Charts fills that gap by encoding the entire chart, data included, into a URL that responds with an image. Nothing to embed, nothing to run, and the result works anywhere an `<img>` tag does.
It deliberately reimplements the parameter grammar of Google Image Charts, which Google shut down years ago after a long deprecation. If you have inherited code full of `cht`, `chd` and `chs` parameters, changing the hostname is often the entire migration. The grammar is terse and unforgiving: `cht` picks the chart type, `chd=t:` introduces text-format data, and `chs` sets pixel dimensions, with everything else layered on as optional `ch*` parameters.
Quick facts
- Base URL
https://image-charts.com- Authentication
- No key is required for the endpoint documented here. Image-Charts also sells paid plans; check their pricing page for the current free-tier terms before shipping a high-volume integration.
- Rate limit
- Applied per IP on the free tier. Cache generated images rather than regenerating them on every page view or email open.
- Pricing
- Free tier with no signup, plus paid plans.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Image-Charts API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Render a grouped vertical bar chart as PNG
GET https://image-charts.com/chart?cht=bvg&chd=t:60,40,30&chs=400x180&chxt=x,y
curl 'https://image-charts.com/chart?cht=bvg&chd=t:60,40,30&chs=400x180&chxt=x,y'const res = await fetch("https://image-charts.com/chart?cht=bvg&chd=t:60,40,30&chs=400x180&chxt=x,y");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://image-charts.com/chart?cht=bvg&chd=t:60,40,30&chs=400x180&chxt=x,y", timeout=20)
res.raise_for_status()
print(res.json())# This endpoint returns image/png, not JSON.
# The response body is the image itself, so it can be used directly as an
# <img src="..."> or saved to a file — there is nothing to parse.
#
# Verified: HTTP 200, Content-Type: image/pngParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
cht | string | Required | Chart type. `bvg` grouped vertical bars, `bvs` stacked bars, `lc` line, `p`/`p3` pie, `gv` Graphviz. bvg |
chd | string | Required | Data series. `t:` for plain text values, `a:` for auto-scaled, `e:` for extended encoding. Series are separated by `|`. t:60,40,30 |
chs | string | Required | Output size in pixels as `WIDTHxHEIGHT`. 400x180 |
chxt | string | Optional | Which axes to draw, comma-separated: `x`, `y`, `r`, `t`. x,y |
chl | string | Optional | Value labels drawn on the chart, separated by `|`. 60|40|30 |
chtt | string | Optional | Chart title text. Weekly signups |
chco | string | Optional | Series colours as hex without the leading hash, separated by commas. 4287f5,f54242 |
Response fields
(body)image/png- The chart itself as a PNG image. There is no JSON envelope, so use the URL directly as an `<img src>` or save the bytes to a file.
(error responses)image/png- Parameter errors are often rendered as an image containing the error text rather than returned as a 4xx status. Open the URL in a browser when debugging.
What you can build with the Image-Charts API
- Embed a chart in an HTML email, where scripts are stripped
- Add a live metrics graphic to a GitHub README
- Include charts in server-rendered PDF reports without a headless browser
- Post a chart into Slack or Discord as an image unfurl
- Replace legacy Google Image Charts URLs by swapping the hostname
Common errors and how to fix them
Image containing an error message
A parameter is malformed; Image-Charts renders the problem into the image instead of failing the request.
Fix: Open the URL directly in a browser and read the rendered message; it names the offending parameter.
Blank or clipped chart
`chs` is too small for the labels and axes you asked for.
Fix: Increase the pixel dimensions, or drop `chl` labels on dense series.
URL truncated in email clients
Long `chd` data strings can exceed the URL limits of some clients and proxies.
Fix: Use extended encoding (`chd=e:`) to compress the data, or pre-render and host the image yourself.
Image-Charts API — frequently asked questions
Is Image-Charts a drop-in replacement for Google Image Charts?
For the common chart types the parameter grammar is intentionally compatible, so changing the hostname is often all that is needed. Less common Google parameters may behave differently, so re-check each chart visually.
Do I need an API key?
Not for the basic chart endpoint. Paid plans exist for higher volume and additional features, but the URL shown here works without any credential.
What formats can it return?
PNG by default. The service also supports other output types via parameters; the response documented here was captured as `image/png`.
Should I generate chart URLs on every request?
No. The URL is deterministic for a given dataset, so cache the rendered image or store it in your own asset storage, particularly for email where the same image is fetched many times.
Tools that pair with this API
SVG to PNG Converter
Convert SVG vector files to PNG at any resolution you choose. Render crisp raster images from SVG in your browser — free, instant and private.
Base64 to Image Converter
Convert a Base64 string back to an image online. Paste a data URL or raw Base64, preview instantly and download as PNG, JPG or the original format.
Image to Base64 Converter
Convert an image to a Base64 data URL online. Get copy-ready HTML img tags and CSS background-image snippets. Free, instant and fully private.
Color Picker
Pick any color and get its HEX, RGB and HSL values instantly. Free online color picker with shades, tints and one-click copy for designers and developers.
Image-Charts is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.