Zero Learning Curve for AI
Just a URL with query params, or a few HTML data attributes. No libraries to import, no config files, no build step. An LLM nails it on the first try.
One URL creates a chart. Drop it into an <img> tag and you're done.
No libraries. No config. No setup.
Your AI can generate charts on the first try.
Makes X and Y axis labels larger. Applies to bar, line, area, and horizontal bar charts.
Applies to title, axes, legend, and value labels.
<script src="https://getchartkit.com/cdn/v1.js"></script>
<div data-chartkit
data-type="bar"
data-labels="Q1,Q2,Q3,Q4"
data-series-0="90200000000,81800000000,85800000000,96500000000" data-series-0-name="Apple"
data-series-1="69800000000,74600000000,76700000000,86300000000" data-series-1-name="Microsoft"
data-title="Big Tech Revenue 2024"
data-width="600"
data-height="400"
data-value-format="compact"></div>| Label | |||
|---|---|---|---|
Most chart libraries need SDKs, config files, and build steps. ChartKit is just a URL. Perfect for LLMs.
Just a URL with query params, or a few HTML data attributes. No libraries to import, no config files, no build step. An LLM nails it on the first try.
Drop an image tag with a URL and you have a chart. No API keys for basic use, no POST requests, no SDK. Works in markdown, emails, Notion, anywhere.
No styling required. The default output is clean, professional, and ready for presentations, dashboards, or reports. Your LLM doesn't need to be a designer.
ChartKit is just a URL that returns an image - no JavaScript, no libraries, no client-side rendering. That unlocks places where traditional chart tools can't go.
"Add a chart to our weekly email" - but email clients block JavaScript.
Ask your AI to build a ChartKit URL from this week's numbers. Paste the <img> tag into your email template. Every client renders it.
"Visualize our benchmark results in the README" - but GitHub strips scripts.
Your AI generates a  line from the benchmark data. Push to the repo and the chart renders inline. No build step.
"Share this month's metrics in Slack without making everyone open a dashboard."
Paste the ChartKit URL into a message. Slack, Discord, and Teams unfurl it as an inline image preview. The chart is right there in the thread.
"Generate a monthly PDF report with charts from our database" - without setting up a headless browser.
Your script queries the data, your AI (or a template) builds the URL, and wkhtmltopdf or Puppeteer resolves the image. Charts in your PDF, no canvas rendering.
"Add charts to our Airtable/Zapier/Make pipeline" - but those tools don't support custom JavaScript.
Template the URL parameters from your data fields. ChartKit is just string concatenation - any platform that can build a URL can build a chart.
"I need one chart in this blog post" - but pulling in Chart.js for a single visualization is overkill.
An <img> tag keeps your page lightweight. No bundle size increase, no hydration, no client-side rendering. Just an image.
Large labels, compact formats, and optional chart fonts (ChartKit default, Oxanium, or Tektur). Drop any of these into an email, doc, or chat as a simple image link.
Compact billions with large numbers above every bar
This is an example of ChartKit's default chart font
Financial comparison with readable PLN values
This is an example of the Oxanium font (title, axes, legend, and numbers)
Growth trend with labels on every point
This is an example of the Tektur font (title, axes, legend, and numbers)
Horizontal bars with bold percent scores
This is an example of the Oxanium font (title, axes, legend, and numbers)
Create publication-ready charts in four simple steps - or let your LLM handle it.
Select from bar, line, area, pie, donut, or horizontal bar charts. Each type is optimized for different kinds of data.
Add labels and datasets directly in the editor. Add multiple series to compare data side by side.
Set a title, toggle the legend, and adjust width and height to match your layout.
Download as SVG, PNG, or JPG. Or grab an embed snippet to drop the chart into any website.
Six chart types that cover the most common data visualization needs.
Compare values across categories. Ideal for revenue breakdowns, survey results, and any categorical comparison.
Visualize trends over time. Perfect for tracking metrics like traffic, sales, or temperature across continuous intervals.
Like a line chart but with the area filled beneath the curve. Great for visualizing volume and cumulative trends.
Show proportions of a whole. Great for market share, budget allocation, or any part-to-whole relationship.
A pie chart with a hollow center. Clean look for dashboards and infographics where you want to show a key metric in the middle.
Bars that run left to right. Better for long category labels and ranked lists where horizontal space is more useful.
Everything you need to create, export, and share charts.
Download charts as SVG, PNG, or JPG at 1x, 2x, or 3x resolution.
Three embed options: JS script, image URL, or iframe. Works on any website.
Generate charts programmatically via REST API. Perfect for reports and automation.
Control titles, legends, dimensions, colors, and multiple datasets per chart.
A single URL or a few HTML attributes. The simplest possible API surface for any AI to generate.
One-click copy for SVG markup, PNG images, or embed code. Paste anywhere instantly.
Generate charts server-side with a single HTTP request. Send a JSON body to POST /api/render and get back SVG, PNG, or JPG.
POST /api/renderAccepts a JSON chart configuration and returns the rendered chart image.
curl -X POST https://getchartkit.com/api/render \
-H "Content-Type: application/json" \
-d '{
"type": "bar",
"title": "Quarterly Sales",
"labels": ["Q1", "Q2", "Q3", "Q4"],
"datasets": [
{ "name": "2024", "data": [42, 58, 65, 71] },
{ "name": "2025", "data": [51, 63, 72, 80] }
],
"width": 800,
"height": 500,
"legend": true,
"valueFormat": "currency",
"currencySymbol": "$"
}'| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "bar" | "line" | "pie" | "area" | "horizontal-bar" | "donut" |
labels | string[] | Yes | Category labels for the x-axis |
datasets | Dataset[] | Yes | Array of { name, data, color? } |
title | string | No | Chart title displayed at the top |
width | number | No | Width in pixels (default: 600) |
height | number | No | Height in pixels (default: 400) |
legend | boolean | No | Show legend (default: true) |
valueFormat | string | No | "number" | "currency" | "percent" | "compact" (default: "number") |
currencySymbol | string | No | Currency symbol when valueFormat is "currency" (default: "$") |
dataLabels | boolean | No | Show formatted values on bars, points, and slices (default: false). Auto-enabled for grouped bar/hbar with compact or currency format. |
dataLabelFont | string | No | "system" (ChartKit default) | "oxanium" | "tektur" |
dataLabelStyle | string | No | "outside" (default) | "large" | "inside" — bar/hbar: large = top/end, inside = on bar |
axisSize | string | No | "default" | "large" | "xl" — X/Y axis tick label size |
colorBy | string | No | "series" (default) | "category" — bar/hbar: each category uses a different palette color |
format | string | No | "svg" | "png" | "jpg" (default: "svg") |
GET /api/chartA URL-based endpoint for embedding charts directly. Pass chart configuration as query parameters and use the URL as an image source. Supports the same chart types and customization options as the render endpoint.
https://getchartkit.com/api/chart?type=bar&labels=Q1,Q2,Q3,Q4&s0=42,58,65,71&s0name=Sales&title=Quarterly+SalesDedicated pages for each chart type, data import, AI prompts, and common embed targets (email, Markdown, WordPress, and more). Same ChartKit URLs everywhere - pick the guide that matches how you work. Full documentation and examples.