Advertisers
To fetch performance data for the campaigns associated with your account, send an authenticated request to the /campaigns endpoint.
Get Advertiser Performance Data#
https://dashboard.decide.co/v1/campaigns
Retrieve campaign performance data.
Request body
| Name | Type | Description |
|---|---|---|
start_time* |
string | Start time in yyyy-mm-dd |
end_time* |
string | End time in yyyy-mm-dd |
* Required.
Responses
- 200Success
- 400Invalid
start_time/end_time, or an inverted time range (start after end) - 401Authentication error or invalid login token
- 429Maximum request limit reached
- 500Unspecified internal error
Example request#
Take a look at how you might call this method via curl. Don’t forget to include your login token in the authorization header.
curl https://dashboard.decide.co/v1/campaigns \
-H 'content-type: application/json' \
-H 'authorization: Bearer <your_login_token>' \
-d '{"start_time":"2025-05-15","end_time":"2025-05-22"}'
The Response Object#
Data is returned as a valid JSON object. A sample response is shown below. It includes the following fields:
last_update_time(string) is the time stamp of the request and is meant to signify the freshness of the data.rows(array) contains the data.column_metadata(array) contains the helpful information describing the formatting for the row object fields (or columns) e.g.{ id: "cpm", type: "Money" }.unconfirmed_revenue_dates(array) contains dates in the date range that have unconfirmed revenue data.
Here is a sample successful response:
200 | OK
{
"result": {
"last_update_time": "2025-06-01 12:32:22 EDT",
"rows": [{
"start_time": "2025-05-15",
"end_time": "2025-05-22",
"campaign": "Campaign 1",
"cpa": 200,
"cpc": 1.75,
"cpm": 1.58,
"impressions": 1164703,
"conversions": 87,
"referrals": 456,
"spent": 1200
}, {
"start_time": "2025-05-15",
"end_time": "2025-05-22",
"campaign": "Campaign 2",
"cpa": 143,
"cpc": 1.25,
"cpm": 1.89,
"impressions": 864703,
"conversions": 65,
"referrals": 344,
"spent": 1500
}, {
"start_time": "2025-05-15",
"end_time": "2025-05-22",
"campaign": "Campaign 3",
"cpa": 300,
"cpc": 2.13,
"cpm": 1.99,
"impressions": 783125,
"conversions": 98,
"referrals": 765,
"spent": 2100
}],
"column_metadata": [
{
"id": "campaign",
"type": "String"
},
{
"id": "start_time",
"type": "Date"
},
{
"id": "cpm",
"type": "Money"
},
{
"id": "conversions",
"type": "Numeric"
}
// additional field definitions (objects) omitted below...
],
"unconfirmed_revenue_dates": []
}
}
See Columns for a detailed list of the columns that are returned in the row data.
Optional breakdowns#
The API supports optional “breakdown” endpoints that group data by additional fields for greater granularity. For example, the device breakdown will return one row for each unique combination of Campaign and Device (e.g. “desktop”, “tablet”, “mobile”).
Every breakdown takes the same start_time and end_time request body as /campaigns and returns the same response envelope. The only difference is the number of rows and the extra column each breakdown adds to every row.
POST
https://dashboard.decide.co/v1/campaigns/breakdowns/date
Retrieve campaign performance data broken down by day.
One row per campaign per day. start_time and end_time on each row narrow to the day that row covers.
Request body
| Name | Type | Description |
|---|---|---|
start_time* | string | Start time in yyyy-mm-dd |
end_time* | string | End time in yyyy-mm-dd |
Responses
- 200Success
- 400Invalid
start_time/end_time, or an inverted time range (start after end) - 401Authentication error or invalid login token
- 429Maximum request limit reached
- 500Unspecified internal error
POST
https://dashboard.decide.co/v1/campaigns/breakdowns/creative
Retrieve campaign performance data broken down by creative.
Adds creative_headline and creative_id columns to every row.
Request body
| Name | Type | Description |
|---|---|---|
start_time* | string | Start time in yyyy-mm-dd |
end_time* | string | End time in yyyy-mm-dd |
Responses
- 200Success
- 400Invalid
start_time/end_time, or an inverted time range (start after end) - 401Authentication error or invalid login token
- 429Maximum request limit reached
- 500Unspecified internal error
POST
https://dashboard.decide.co/v1/campaigns/breakdowns/device
Retrieve campaign performance data broken down by device.
Adds a device column to every row.
Request body
| Name | Type | Description |
|---|---|---|
start_time* | string | Start time in yyyy-mm-dd |
end_time* | string | End time in yyyy-mm-dd |
Responses
- 200Success
- 400Invalid
start_time/end_time, or an inverted time range (start after end) - 401Authentication error or invalid login token
- 429Maximum request limit reached
- 500Unspecified internal error
POST
https://dashboard.decide.co/v1/campaigns/breakdowns/device_creative
Retrieve campaign performance data broken down by device and then creative.
Adds device, creative_headline, and creative_id columns to every row.
Request body
| Name | Type | Description |
|---|---|---|
start_time* | string | Start time in yyyy-mm-dd |
end_time* | string | End time in yyyy-mm-dd |
Responses
- 200Success
- 400Invalid
start_time/end_time, or an inverted time range (start after end) - 401Authentication error or invalid login token
- 429Maximum request limit reached
- 500Unspecified internal error
POST
https://dashboard.decide.co/v1/campaigns/breakdowns/device_date
Retrieve campaign performance data broken down by device and then day.
Adds a device column to every row, with one row per device per day.
Request body
| Name | Type | Description |
|---|---|---|
start_time* | string | Start time in yyyy-mm-dd |
end_time* | string | End time in yyyy-mm-dd |
Responses
- 200Success
- 400Invalid
start_time/end_time, or an inverted time range (start after end) - 401Authentication error or invalid login token
- 429Maximum request limit reached
- 500Unspecified internal error
POST
https://dashboard.decide.co/v1/campaigns/breakdowns/creative_date
Retrieve campaign performance data broken down by creative and then day.
Adds creative_headline and creative_id columns to every row, with one row per creative per day.
Request body
| Name | Type | Description |
|---|---|---|
start_time* | string | Start time in yyyy-mm-dd |
end_time* | string | End time in yyyy-mm-dd |
Responses
- 200Success
- 400Invalid
start_time/end_time, or an inverted time range (start after end) - 401Authentication error or invalid login token
- 429Maximum request limit reached
- 500Unspecified internal error
POST
https://dashboard.decide.co/v1/campaigns/breakdowns/device_creative_date
Retrieve campaign performance data broken down by device and then creative and then day.
Adds device, creative_headline, and creative_id columns to every row, with one row per device per creative per day. This is the most granular advertiser breakdown, so expect the largest response.
Request body
| Name | Type | Description |
|---|---|---|
start_time* | string | Start time in yyyy-mm-dd |
end_time* | string | End time in yyyy-mm-dd |
Responses
- 200Success
- 400Invalid
start_time/end_time, or an inverted time range (start after end) - 401Authentication error or invalid login token
- 429Maximum request limit reached
- 500Unspecified internal error