External Chart Libraries
Generate chart data and configuration for popular libraries like shadcn/ui, ApexCharts, Chart.js, and Recharts.
Overview
Instead of generating static images, DataShows can return processed data and configuration ready for your favorite charting library. This gives you:
🎨 Full Customization
Receive a configuration object you can customize to match your design system perfectly.
🤖 AI-Powered Config
AI handles data transformation and generates optimal configuration automatically.
Supported Libraries
shadcn/ui Charts (Recharts)
Modern, accessible React charts built on Recharts. Perfect for Next.js apps with Tailwind CSS.
// AI generates config in shadcn format
{
"type": "bar",
"xKey": "month",
"yKeys": ["sales", "expenses"],
"colors": {
"sales": "hsl(var(--chart-1))",
"expenses": "hsl(var(--chart-2))"
}
}ApexCharts
Feature-rich charting library with extensive customization options.
// AI generates ApexCharts config
{
"chart": { "type": "line", "height": 350 },
"series": [{
"name": "Sales",
"data": [{"x": "Jan", "y": 100}]
}],
"xaxis": { "type": "category" }
}Chart.js
Simple yet flexible JavaScript charting library.
// AI generates Chart.js config
{
"type": "line",
"data": {
"labels": ["Jan", "Feb", "Mar"],
"datasets": [{
"label": "Sales",
"data": [100, 150, 200],
"borderColor": "rgb(75, 192, 192)"
}]
},
"options": { "responsive": true }
}Recharts
Composable charting library built on React components.
// AI generates Recharts config
{
"type": "area",
"xKey": "date",
"yKeys": ["revenue"],
"colors": { "revenue": "#8884d8" }
}Usage Examples
React SDK (Client-Side)
import { useGenerateChart } from "datashows-sdk/react";
import { ChartContainer } from "@/components/ui/chart";
import { BarChart, Bar, XAxis, YAxis } from "recharts";
function MyChart() {
const [chartData, setChartData] = useState(null);
const generate = useGenerateChart({
onSuccess: (result) => {
if (result.kind === "chartData") {
setChartData(result);
}
}
});
const handleGenerate = () => {
generate.mutate({
data: yourData,
prompt: "Create a bar chart using shadcn/ui",
outputFormat: "chartData", // Request chart data format
apiKey: "your-api-key"
});
};
if (!chartData) {
return <button onClick={handleGenerate}>Generate Chart</button>;
}
return (
<div>
<p className="text-sm text-muted-foreground mb-4">
{chartData.explanation}
</p>
<ChartContainer config={chartData.config}>
<BarChart data={chartData.data}>
<XAxis dataKey={chartData.config.xKey} />
<YAxis />
{chartData.config.yKeys.map((key) => (
<Bar
key={key}
dataKey={key}
fill={chartData.config.colors[key]}
/>
))}
</BarChart>
</ChartContainer>
</div>
);
}Server SDK (Node.js)
import { generateChart } from "datashows-sdk/node";
const result = await generateChart({
data: salesData,
prompt: "Line chart showing revenue trends",
outputFormat: "chartData", // Request chart data format
apiKey: process.env.DATASHOWS_API_KEY
});
if (result.kind === "chartData") {
console.log("Library:", result.library); // "shadcn", "apexcharts", etc.
console.log("Data:", result.data); // Processed data array
console.log("Config:", result.config); // Chart configuration
console.log("Explanation:", result.explanation); // AI insights
// Use with your library
renderChartWithLibrary(result.library, result.data, result.config);
}Direct API (cURL)
curl -X POST https://app.datashows.ai/api/generate-chart \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-d '{
"data": [
{"month": "Jan", "sales": 100},
{"month": "Feb", "sales": 150}
],
"prompt": "Bar chart of sales by month",
"outputFormat": "chartData"
}'API Response Format
{
"kind": "chartData",
"library": "shadcn",
"data": [
{ "month": "Jan", "sales": 100 },
{ "month": "Feb", "sales": 150 }
],
"config": {
"type": "bar",
"xKey": "month",
"yKeys": ["sales"],
"colors": { "sales": "hsl(var(--chart-1))" }
},
"explanation": "Created a bar chart showing sales growth of 50%.",
"usage": {
"remainingGenerations": 499,
"extraCostCents": 0,
"totalCostCents": 900
}
}Try It Live
Interactive Playground
Experience the external libraries feature with a live demo using shadcn/ui charts. Test the API and see real-time chart generation with processed data and configuration.
Try It in PlaygroundBest Practices
✅ Specify Library in Prompt
Hint which library to use for better results:
prompt: "Create a shadcn/ui bar chart showing sales by region"✅ Validate Response Type
Always check the response kind:
if (result.kind === "chartData") {
// Handle chart data
renderChart(result.data, result.config);
}✅ Customize Configuration
The returned config is a starting point - customize it:
const customConfig = {
...result.config,
colors: myBrandColors,
// Add your customizations
};Pricing
Chart data generation counts the same as image generation:
- Free Trial: 25 generations/week
- Start-up Plan: 500 generations/month ($9/month + $0.02 per extra)
- Enterprise: Unlimited