curl --request POST \
--url https://octanist.com/api/ad-spend \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"startDate": "2026-01-01",
"endDate": "2026-03-01",
"platform": "googleads",
"groupBy": "date",
"limit": 100,
"page": 1
}
'{
"success": true,
"data": [
{
"date": "2026-02-15",
"campaignId": "123456789",
"campaignName": "Spring Sale 2026",
"adGroupId": "987654321",
"adGroupName": "Brand Keywords",
"platform": "googleads",
"cost": 1500.5,
"clicks": 2500,
"impressions": 50000,
"conversions": 125
}
],
"meta": {
"pagination": {
"limit": 50,
"page": 1,
"totalPages": 5,
"total": 234,
"hasMore": true
},
"requestId": "req_a1b2c3d4e5f6",
"timestamp": "2026-03-10T12:00:00.000Z"
}
}Retrieve ad spend data grouped by various dimensions
curl --request POST \
--url https://octanist.com/api/ad-spend \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"startDate": "2026-01-01",
"endDate": "2026-03-01",
"platform": "googleads",
"groupBy": "date",
"limit": 100,
"page": 1
}
'{
"success": true,
"data": [
{
"date": "2026-02-15",
"campaignId": "123456789",
"campaignName": "Spring Sale 2026",
"adGroupId": "987654321",
"adGroupName": "Brand Keywords",
"platform": "googleads",
"cost": 1500.5,
"clicks": 2500,
"impressions": 50000,
"conversions": 125
}
],
"meta": {
"pagination": {
"limit": 50,
"page": 1,
"totalPages": 5,
"total": 234,
"hasMore": true
},
"requestId": "req_a1b2c3d4e5f6",
"timestamp": "2026-03-10T12:00:00.000Z"
}
}| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startDate | string | Yes | - | Start date (YYYY-MM-DD) |
endDate | string | Yes | - | End date (YYYY-MM-DD) |
platform | string | No | - | Filter by platform: googleads, meta, microsoftads |
groupBy | string | No | date | Group by: date, campaign, adgroup, platform |
limit | number | No | 100 | Results per page (1-500) |
page | number | No | 1 | Page number |
curl -X POST \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2026-01-01",
"endDate": "2026-03-01",
"groupBy": "campaign",
"limit": 10
}' \
"https://octanist.com/api/ad-spend"
{
"success": true,
"data": [
{
"campaignId": "123456789",
"campaignName": "Spring Sale 2026",
"platform": "googleads",
"cost": 1500.5,
"clicks": 2500,
"impressions": 50000,
"conversions": 125
}
],
"meta": {
"pagination": {
"limit": 10,
"page": 1,
"totalPages": 5,
"total": 45,
"hasMore": true
},
"requestId": "req_a1b2c3d4e5f6",
"timestamp": "2026-03-10T12:00:00.000Z"
}
}
{
"date": "2026-02-15",
"cost": 500.25,
"clicks": 850,
"impressions": 15000,
"conversions": 42
}
{
"campaignId": "123456789",
"campaignName": "Spring Sale 2026",
"platform": "googleads",
"cost": 1500.5,
"clicks": 2500,
"impressions": 50000,
"conversions": 125
}
{
"campaignId": "123456789",
"campaignName": "Spring Sale 2026",
"adGroupId": "987654321",
"adGroupName": "Brand Keywords",
"platform": "googleads",
"cost": 750.25,
"clicks": 1250,
"impressions": 25000,
"conversions": 62
}
{
"platform": "googleads",
"cost": 5000.0,
"clicks": 10000,
"impressions": 200000,
"conversions": 500
}
| Status | Code | Description |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid request body or startDate > endDate |
| 400 | INVALID_DATE | Invalid date format (use YYYY-MM-DD) |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 500 | INTERNAL_ERROR | Server error |
API key for authentication
Ad spend request parameters
Start date (YYYY-MM-DD)
"2026-01-01"
End date (YYYY-MM-DD)
"2026-03-01"
Filter by platform
googleads, meta, microsoftads Dimension to group results by
date, campaign, adgroup, platform Results per page (1-500)
1 <= x <= 500Page number
x >= 1