Everything you need to know about using Summize.app to transform your data into actionable insights.
Complete REST API documentation for integrating Summize into your applications and workflows. Our API allows you to upload data, generate narratives, and retrieve insights programmatically.
All API requests require authentication using your API key. You can generate API keys from your account settings.
Include your API key in the Authorization header of every request:
curl -H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
https://api.summize.app/v1/narratives
/data/upload
Upload data for analysis and narrative generation.
{
"data": [
{
"date": "2024-01-01",
"revenue": 12000,
"orders": 45,
"channel": "organic"
},
{
"date": "2024-01-02",
"revenue": 15000,
"orders": 52,
"channel": "paid"
}
],
"metadata": {
"name": "Weekly Sales Data",
"description": "E-commerce sales performance",
"tags": ["sales", "weekly"]
}
}
{
"success": true,
"data_id": "dat_1234567890",
"status": "processing",
"rows_processed": 2,
"estimated_completion": "2024-01-15T10:30:00Z"
}
/narratives/generate
Generate AI narratives from uploaded data.
{
"data_id": "dat_1234567890",
"config": {
"role": "ceo",
"tone": "concise",
"template": "weekly_summary",
"language": "en"
},
"custom_context": {
"business_type": "e-commerce",
"key_metrics": ["revenue", "orders", "conversion_rate"],
"goals": ["growth", "efficiency"]
}
}
{
"success": true,
"narrative_id": "nar_1234567890",
"content": {
"title": "Weekly Sales Performance Summary",
"narrative": "This week's revenue reached $27,000 (+12.5% vs last week) with 97 total orders. Paid channels outperformed organic with higher conversion rates...",
"key_insights": [
"Revenue growth of 12.5% week-over-week",
"Paid channels showing 23% higher conversion",
"Order volume increased 15% from previous period"
],
"recommendations": [
"Increase investment in paid channel optimization",
"Investigate organic channel performance decline"
]
},
"metadata": {
"generated_at": "2024-01-15T10:35:42Z",
"processing_time_ms": 2340,
"confidence_score": 0.92,
"word_count": 156
}
}
/narratives
Retrieve your generated narratives with optional filtering.
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Number of results (1-100, default: 20) |
| offset | integer | Pagination offset (default: 0) |
| date_from | string | Filter from date (ISO 8601) |
| date_to | string | Filter to date (ISO 8601) |
| template | string | Filter by template type |
/webhooks
Configure webhooks to receive real-time notifications.
data.uploaded - Data upload completednarrative.generated - Narrative generation completednarrative.shared - Narrative was sharederror.occurred - Processing error occurredThe API uses conventional HTTP response codes to indicate success or failure:
{
"success": false,
"error": {
"code": "invalid_data_format",
"message": "The uploaded data format is not supported",
"details": {
"supported_formats": ["json", "csv"],
"received_format": "xml"
}
},
"request_id": "req_1234567890"
}
Rate limit headers are included in all responses to help you track usage.
We provide official SDKs to make integration easier:
Frontend and Node.js integration
Data science and automation workflows
Enterprise applications
curl -X POST https://api.summize.app/v1/data/upload \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"data": [
{"date": "2024-01-01", "revenue": 12000, "orders": 45},
{"date": "2024-01-02", "revenue": 15000, "orders": 52}
],
"metadata": {
"name": "Weekly Sales",
"tags": ["sales", "weekly"]
}
}'
import requests
headers = {
'Authorization': 'Bearer sk_live_...',
'Content-Type': 'application/json'
}
data = {
'data_id': 'dat_1234567890',
'config': {
'role': 'ceo',
'tone': 'concise',
'template': 'weekly_summary'
}
}
response = requests.post(
'https://api.summize.app/v1/narratives/generate',
headers=headers,
json=data
)
narrative = response.json()
const summize = new SummizeClient('sk_live_...');
// Get recent narratives
const narratives = await summize.narratives.list({
limit: 10,
date_from: '2024-01-01'
});
// Get specific narrative
const narrative = await summize.narratives.get('nar_1234567890');
Ready to start building with the Summize API?
Was this helpful?
Need more help?
Contact SupportOur support team is here to help you get the most out of Summize.
Get instant help from our support team