curl --request POST \
--url https://api.example.com/v1/query \
--header 'Content-Type: <content-type>' \
--data '
{
"id": "<string>",
"parameters": [
{}
],
"preset": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"granularity": "<string>",
"filters": [
{}
],
"limit": 123,
"page": 123
}
'{
"success": true,
"requestId": "<string>",
"queryId": "<string>",
"data": [
{}
],
"meta": {}
}Query and analyze event data with flexible filtering and aggregation
curl --request POST \
--url https://api.example.com/v1/query \
--header 'Content-Type: <content-type>' \
--data '
{
"id": "<string>",
"parameters": [
{}
],
"preset": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"granularity": "<string>",
"filters": [
{}
],
"limit": 123,
"page": 123
}
'{
"success": true,
"requestId": "<string>",
"queryId": "<string>",
"data": [
{}
],
"meta": {}
}The query endpoint provides powerful analytics capabilities for querying event data with support for multiple metrics, date ranges, filters, and time-based aggregations.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/databuddy-analytics/Databuddy/llms.txt
Use this file to discover all available pages before exploring further.
Authorization header. The API key must have the read:data scope.application/json"page_views") or objects with additional config:name (string, required): Query type nameid (string, optional): Custom identifier for this parameterstart_date (string, optional): Override start date for this parameterend_date (string, optional): Override end date for this parametergranularity (string, optional): Time granularity (“hourly” or “daily”)today, yesterday, last_7_days, last_30_days, last_90_days, this_month, last_month, this_year"hourly" or "daily". Hourly limited to 30 days max.field (string): Field to filter on (e.g., “path”, “country”, “browser”)operator (string): Filter operator (“eq”, “ne”, “contains”, “not_contains”, etc.)value (string | number | array): Filter valueparameter (string): Parameter name or IDsuccess (boolean): Whether this specific query succeededdata (array): Result rowserror (string, optional): Error message if failedparameters (array): Original parameters from requesttotal_parameters (number): Number of parameters queriedpage (number): Current page numberlimit (number): Results per pagefilters_applied (number): Number of filters appliedcurl https://api.databuddy.io/v1/query/types
page_views - Total page viewsvisitors - Unique visitorssessions - Session countbounce_rate - Bounce rate percentagepages - Top pagesreferrers - Top referrerscountries - Traffic by countrybrowsers - Browser distributiondevices - Device typesevents - Custom event trackingcurl -X POST 'https://api.databuddy.io/v1/query?website_id=550e8400-e29b-41d4-a716-446655440000' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"parameters": ["page_views", "visitors"],
"preset": "last_7_days"
}'
{
"success": true,
"requestId": "req_abc123",
"queryId": "",
"data": [
{
"parameter": "page_views",
"success": true,
"data": [
{
"date": "2024-03-01",
"value": 1250
},
{
"date": "2024-03-02",
"value": 1430
}
]
},
{
"parameter": "visitors",
"success": true,
"data": [
{
"date": "2024-03-01",
"value": 845
},
{
"date": "2024-03-02",
"value": 923
}
]
}
],
"meta": {
"parameters": ["page_views", "visitors"],
"total_parameters": 2,
"page": 1,
"limit": 100,
"filters_applied": 0
}
}
curl -X POST 'https://api.databuddy.io/v1/query?website_id=550e8400-e29b-41d4-a716-446655440000&timezone=America/New_York' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"parameters": ["pages"],
"startDate": "2024-03-01",
"endDate": "2024-03-07",
"filters": [
{
"field": "country",
"operator": "eq",
"value": "US"
}
],
"limit": 10
}'
{
"success": true,
"requestId": "req_xyz789",
"queryId": "",
"data": [
{
"parameter": "pages",
"success": true,
"data": [
{
"path": "/home",
"views": 4523,
"visitors": 3201
},
{
"path": "/pricing",
"views": 2341,
"visitors": 1876
},
{
"path": "/features",
"views": 1987,
"visitors": 1543
}
]
}
],
"meta": {
"parameters": ["pages"],
"total_parameters": 1,
"page": 1,
"limit": 10,
"filters_applied": 1
}
}
curl -X POST 'https://api.databuddy.io/v1/query?website_id=550e8400-e29b-41d4-a716-446655440000' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"parameters": ["page_views"],
"startDate": "2024-03-01",
"endDate": "2024-03-02",
"granularity": "hourly"
}'
curl -X POST 'https://api.databuddy.io/v1/query?website_id=550e8400-e29b-41d4-a716-446655440000' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"id": "query_1",
"parameters": ["page_views"],
"preset": "today"
},
{
"id": "query_2",
"parameters": ["visitors"],
"preset": "yesterday"
}
]'
{
"success": true,
"requestId": "req_batch123",
"batch": true,
"results": [
{
"queryId": "query_1",
"data": [
{
"parameter": "page_views",
"success": true,
"data": [...]
}
],
"meta": {...}
},
{
"queryId": "query_2",
"data": [
{
"parameter": "visitors",
"success": true,
"data": [...]
}
],
"meta": {...}
}
]
}
{
"success": false,
"error": "Authentication required",
"code": "AUTH_REQUIRED",
"requestId": "req_abc123"
}
{
"success": false,
"error": "Access denied to this website",
"code": "ACCESS_DENIED",
"requestId": "req_abc123"
}
{
"success": false,
"error": "Unknown query type: pageviews. Did you mean 'page_views'?",
"code": "VALIDATION_ERROR",
"requestId": "req_abc123",
"details": [
{
"field": "parameters[0]",
"message": "Unknown query type: pageviews",
"suggestion": "Did you mean 'page_views'?"
}
]
}
{
"success": false,
"error": "Missing project identifier (website_id, schedule_id, link_id, or organization_id)",
"code": "MISSING_PROJECT_ID",
"requestId": "req_abc123"
}
GET /v1/query/websites - List accessible websitesGET /v1/query/types - Get available query types and configurationsPOST /v1/query/compile - Compile a query to SQL without executingPOST /v1/query/custom - Execute custom SQL-like queries