chart: Generate a chart image

API: image-charts.com:image-charts
Endpoint: /chart
Response format: text/plain
Auth: unknown
Method: GET
Last Status: 200
Latency: 190ms

Description

Returns a chart image (PNG) based on the provided parameters. Supports various chart types including line, bar, pie, radar, and more.

Parameters (22)

chco (string, query, optional)

Chart color. Series colors separated by comma. Hex colors without #.

chd (string, query, required)

Chart data. Format depends on chart type. For simple encoding: 't:val1,val2,val3' (text) or 's:ABCD' (simple encoding) or 'e:ABCD' (extended encoding)

chdl (string, query, optional)

Chart legend labels. Use | as separator between series.

chdlp (string, query, optional)

Legend position. Options: t (top), b (bottom), l (left), r (right)

Constraints: {'enum': ['t', 'b', 'l', 'r']}

chds (string, query, optional)

Data scaling. Format: min,max to scale data to a specific range.

chf (string, query, optional)

Chart fills (background/area). Format: bg,solid,color or a,s,angle,color1,color2 for gradients.

chg (string, query, optional)

Grid lines. Format: x_step,y_step,dash_length,space_length

chl (string, query, optional)

Chart labels (for pie charts). Use | as separator.

chls (string, query, optional)

Line styles for line charts. Format: thickness,color|...

chm (string, query, optional)

Chart markers (shapes, lines, text). Complex format for adding markers to data points.

chma (string, query, optional)

Chart margins. Format: left,right,top,bottom

choe (string, query, optional)

Output encoding. Options: UTF-8 (default).

chp (number, query, optional)

Pie chart rotation angle in radians (0 to 6.28).

Constraints: {'minimum': 0, 'maximum': 6.28}

chs (string, query, optional)

Chart size in pixels. Format: widthxheight (max 999x999 for free tier)

Constraints: {'pattern': '^\\d{1,3}x\\d{1,3}$'}

cht (string, query, required)

Chart type. Options: lc (line), ls (sparkline), lxy (line xy), bvs (bar vertical stacked), bhs (bar horizontal stacked), bvg (bar vertical grouped), bhg (bar horizontal grouped), p (pie), p3 (pie 3D), pc (concentric pie), r (radar), rs (radar with splines), s (scatter), v (venn)

Constraints: {'enum': ['lc', 'ls', 'lxy', 'bvs', 'bhs', 'bvg', 'bhg', 'p', 'p3', 'pc', 'r', 'rs', 's', 'v']}

chts (string, query, optional)

Chart title style. Format: color,fontsize

chtt (string, query, optional)

Chart title text. Use + for spaces.

chxl (string, query, optional)

Axis labels. Format: index:|label1|label2|...

chxr (string, query, optional)

Axis ranges. Format: index,min,max,step

chxt (string, query, optional)

Axes to show. x = x-axis, y = y-axis. Example: 'x,y' for both axes.

icac (string, query, optional)

Account ID for paid users (optional).

ichm (string, query, optional)

HMAC signature for paid account authentication (optional).

Examples (2)

Generate a chart image openapi-spec
curl 'https://image-charts.com/chart?cht=lc&chd=t%3A10%2C20%2C30%2C40%2C50&chs=600x300&chtt=Monthly%2BSales&chts=000000%2C20&chl=Jan%7CFeb%7CMar%7CApr%7CMay&chxl=0%3A%7CJan%7CFeb%7CMar%7CApr%7CMay&chco=FF0000%2C00FF00%2C0000FF&chf=bg%2Cs%2CFFFFFF&chls=2%2CFF0000&chdl=Series%2B1%7CSeries%2B2&chg=20%2C20%2C2%2C2&chds=0%2C100&chxt=x%2Cy&chxr=0%2C0%2C100%7C1%2C0%2C50&chma=10%2C10%2C20%2C20'
import requests

resp = requests.get(
    "https://image-charts.com/chart",
    params={
        'cht': 'lc',
        'chd': 't:10,20,30,40,50',
        'chs': '600x300',
        'chtt': 'Monthly+Sales',
        'chts': '000000,20',
        'chl': 'Jan|Feb|Mar|Apr|May',
        'chxl': '0:|Jan|Feb|Mar|Apr|May',
        'chco': 'FF0000,00FF00,0000FF',
        'chf': 'bg,s,FFFFFF',
        'chls': '2,FF0000',
        'chdl': 'Series+1|Series+2',
        'chg': '20,20,2,2',
        'chds': '0,100',
        'chxt': 'x,y',
        'chxr': '0,0,100|1,0,50',
        'chma': '10,10,20,20',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("image-charts")
result = api.fetch("chart", cht="lc", chd="t:10,20,30,40,50", chs="600x300", chtt="Monthly+Sales", chts="000000,20", chl="Jan|Feb|Mar|Apr|May", chxl="0:|Jan|Feb|Mar|Apr|May", chco="FF0000,00FF00,0000FF", chf="bg,s,FFFFFF", chls="2,FF0000", chdl="Series+1|Series+2", chg="20,20,2,2", chds="0,100", chxt="x,y", chxr="0,0,100|1,0,50", chma="10,10,20,20")

for item in result:
    print(item)
const resp = await fetch("https://image-charts.com/chart?cht=lc&chd=t%3A10%2C20%2C30%2C40%2C50&chs=600x300&chtt=Monthly%2BSales&chts=000000%2C20&chl=Jan%7CFeb%7CMar%7CApr%7CMay&chxl=0%3A%7CJan%7CFeb%7CMar%7CApr%7CMay&chco=FF0000%2C00FF00%2C0000FF&chf=bg%2Cs%2CFFFFFF&chls=2%2CFF0000&chdl=Series%2B1%7CSeries%2B2&chg=20%2C20%2C2%2C2&chds=0%2C100&chxt=x%2Cy&chxr=0%2C0%2C100%7C1%2C0%2C50&chma=10%2C10%2C20%2C20");
const data = await resp.json();
Generate a chart image probe-gate
curl 'https://image-charts.com/chart?cht=lc&chd=t%3A10%2C20%2C30%2C40%2C50&chs=600x300&chtt=Monthly%2BSales&chts=000000%2C20&chl=Jan%7CFeb%7CMar%7CApr%7CMay&chxl=0%3A%7CJan%7CFeb%7CMar%7CApr%7CMay&chco=FF0000%2C00FF00%2C0000FF&chf=bg%2Cs%2CFFFFFF&chls=2%2CFF0000&chdl=Series%2B1%7CSeries%2B2&chg=20%2C20%2C2%2C2&chds=0%2C100&chxt=x%2Cy&chxr=0%2C0%2C100%7C1%2C0%2C50&chma=10%2C10%2C20%2C20'
import requests

resp = requests.get(
    "https://image-charts.com/chart",
    params={
        'cht': 'lc',
        'chd': 't:10,20,30,40,50',
        'chs': '600x300',
        'chtt': 'Monthly+Sales',
        'chts': '000000,20',
        'chl': 'Jan|Feb|Mar|Apr|May',
        'chxl': '0:|Jan|Feb|Mar|Apr|May',
        'chco': 'FF0000,00FF00,0000FF',
        'chf': 'bg,s,FFFFFF',
        'chls': '2,FF0000',
        'chdl': 'Series+1|Series+2',
        'chg': '20,20,2,2',
        'chds': '0,100',
        'chxt': 'x,y',
        'chxr': '0,0,100|1,0,50',
        'chma': '10,10,20,20',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("image-charts")
result = api.fetch("chart", cht="lc", chd="t:10,20,30,40,50", chs="600x300", chtt="Monthly+Sales", chts="000000,20", chl="Jan|Feb|Mar|Apr|May", chxl="0:|Jan|Feb|Mar|Apr|May", chco="FF0000,00FF00,0000FF", chf="bg,s,FFFFFF", chls="2,FF0000", chdl="Series+1|Series+2", chg="20,20,2,2", chds="0,100", chxt="x,y", chxr="0,0,100|1,0,50", chma="10,10,20,20")

for item in result:
    print(item)
const resp = await fetch("https://image-charts.com/chart?cht=lc&chd=t%3A10%2C20%2C30%2C40%2C50&chs=600x300&chtt=Monthly%2BSales&chts=000000%2C20&chl=Jan%7CFeb%7CMar%7CApr%7CMay&chxl=0%3A%7CJan%7CFeb%7CMar%7CApr%7CMay&chco=FF0000%2C00FF00%2C0000FF&chf=bg%2Cs%2CFFFFFF&chls=2%2CFF0000&chdl=Series%2B1%7CSeries%2B2&chg=20%2C20%2C2%2C2&chds=0%2C100&chxt=x%2Cy&chxr=0%2C0%2C100%7C1%2C0%2C50&chma=10%2C10%2C20%2C20");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 17:42:53.476091 200 190ms
2026-04-16 02:50:19.577398 200 202ms
2026-04-16 00:59:55.307852 200 199ms
2026-04-15 03:46:43.180512 200 222ms
2026-04-15 03:16:52.565544 200 206ms
2026-04-14 02:47:06.396865 200 317ms
2026-04-14 01:00:14.531226 200 184ms
2026-04-12 16:43:00.398981 200 212ms
2026-04-12 14:41:13.305229 200 181ms
2026-04-10 00:12:16.689369 200 121ms
2026-04-10 00:03:30.919115 200 162ms
2026-04-09 01:35:41.192516 200 203ms
2026-04-09 00:54:18.140008 200 233ms
2026-03-27T12:55:21.900323 200 758ms