API: Campaigns
In this page
The Campaign object
A Campaign represents an advertising campaign associated with an Advertiser.
A campaign has several properties. Each API can return a Campaign model in its entirety or with just a subset. All properties are listed here:
| Property | Type | Description |
|---|---|---|
campaign_id |
Numeric | Unique campaign identifier |
name |
String | Campaign name |
team_id |
Numeric | ID of the team this campaign belongs to |
advertiser_id |
Numeric | ID of the Advertiser associated with this campaign |
advertiser_name |
String | Name of the advertiser associated with this campaign |
status |
String | Campaign status. Possible values: STOPPED, NOT_STARTED, RUNNING, COMPLETED |
created_at |
String | Date and time the campaign was created |
updated_at |
String | Date and time the campaign was last updated |
deleted_at |
String | Date and time the campaign was deleted, or null if not deleted |
synched |
Boolean | true if the campaign has been synched with the ad server, false otherwise |
Many of the resources on the campaign APIs are related to a single campaign. If a request URL includes CAMPAIGN-ID it refers to the numeric Campaign ID.
Retrieving the Campaign List
GET /v2/campaignsAuthenticated: yes
This API returns a paginated list of Campaigns.
Example
curl -H "Authorization: Bearer OAUTH-TOKEN" https://api.spreaker.com/v2/campaignsThe response body is a paginated list of Campaigns.
{
"response": {
"items": [
{
"campaign_id": 8862,
"name": "March 2027",
"team_id": 59,
"advertiser_id": 4894,
"advertiser_name": "Coca Cola",
"created_at": "2026-04-02 16:32:44",
"updated_at": "2026-04-02 16:32:44",
"deleted_at": null,
"status": "STOPPED",
"synched": true
}
],
"next_url": null,
"prev_url": null
}
}Retrieving a Single Campaign
GET /v2/campaigns/CAMPAIGN-IDAuthenticated: yes
Example
curl -H "Authorization: Bearer OAUTH-TOKEN" https://api.spreaker.com/v2/campaigns/8862The response body is a JSON object containing all the campaign fields.
{
"response": {
"campaign": {
"campaign_id": 8862,
"name": "March 2027",
"team_id": 59,
"advertiser_id": 4894,
"advertiser_name": "Coca Cola",
"created_at": "2026-04-02 16:32:44",
"updated_at": "2026-04-02 16:32:44",
"deleted_at": null,
"status": "STOPPED",
"synched": true
}
}
}Creating a Campaign
POST /v2/campaignsAuthenticated: yes
| Parameter | Type | Description |
|---|---|---|
name |
String | Campaign name |
advertiser_id |
Numeric | ID of the Advertiser to associate with this campaign |
Example
curl -X POST -H "Authorization: Bearer OAUTH-TOKEN" -F "name=New Campaign" -F "advertiser_id=4894" https://api.spreaker.com/v2/campaignsThe response body is a JSON object containing all the campaign fields. Note that synched will be false for a newly created campaign until it is synched with the ad server.
{
"response": {
"campaign": {
"campaign_id": 9036,
"name": "New Campaign",
"team_id": 59,
"advertiser_id": 4894,
"advertiser_name": "Coca Cola",
"created_at": "2026-05-25 12:05:14",
"updated_at": "2026-05-25 12:05:14",
"deleted_at": null,
"status": "STOPPED",
"synched": false
}
}
}Updating a Campaign
PUT /v2/campaigns/CAMPAIGN-IDAuthenticated: yes
The API PUT /v2/campaigns/CAMPAIGN-ID supports these parameters:
| Parameter | Type | Description |
|---|---|---|
name |
String | Required. Campaign name |
Example
curl -X PUT -H "Authorization: Bearer OAUTH-TOKEN" \
--data-urlencode "name=New Name" \
https://api.spreaker.com/v2/campaigns/8862The response body is a JSON object containing all the updated campaign fields.
{
"response": {
"campaign": {
"campaign_id": 8862,
"name": "New Name",
"team_id": 59,
"advertiser_id": 4894,
"advertiser_name": "Coca Cola",
"created_at": "2026-04-02 16:32:44",
"updated_at": "2026-05-25 12:02:15",
"deleted_at": null,
"status": "STOPPED",
"synched": false
}
}
}Deleting a Campaign
DELETE /v2/campaigns/CAMPAIGN-IDAuthenticated: yes
Deleting a campaign permanently deletes all of its line items as well. This action cannot be undone.
Example
curl -X DELETE -H "Authorization: Bearer OAUTH-TOKEN" https://api.spreaker.com/v2/campaigns/8862The response body is an empty object.
{ "response": [] }