For the complete documentation index, see llms.txt. This page is also available as Markdown.

Campaign

Campaigns

Search Campaigns

get

Search all Campaigns this user has access to

Query parameters
campaignIdintegerOptional

Filter by Campaign Id

namestringOptional

Filter by Name

tagsstringOptional

Filter by Tags

exactTagsintegerOptional

A flag indicating whether to treat the tags filter as an exact match

logicalOperatorstringOptional

When filtering by multiple Tags, which logical operator should be used? AND|OR

hasLayoutsintegerOptional

Filter by has layouts

isLayoutSpecificintegerOptional

Filter by whether this Campaign is specific to a Layout or User added

retiredintegerOptional

Filter by retired

totalDurationintegerOptional

Should we total the duration?

embedstringOptional

Embed related data such as layouts, permissions, tags and events

folderIdintegerOptional

Filter by Folder ID

sortBystring · enumOptional

Specifies which field the results are sorted by. Used together with sortDir

Possible values:
sortDirstring · enumOptional

Sort direction

Possible values:
Responses
200

successful operation

application/json
get/campaign
GET /api/campaign HTTP/1.1
Accept: */*
200

successful operation

[
  {
    "campaignId": 1,
    "ownerId": 1,
    "type": "text",
    "campaign": "text",
    "isLayoutSpecific": 1,
    "numberLayouts": 1,
    "totalDuration": 1,
    "tags": [
      {
        "tag": "text",
        "tagId": 1,
        "value": "text"
      }
    ],
    "folderId": 1,
    "permissionsFolderId": 1,
    "cyclePlaybackEnabled": 1,
    "playCount": 1,
    "listPlayOrder": "text",
    "targetType": "text",
    "target": 1,
    "startDt": 1,
    "endDt": 1,
    "plays": 1,
    "spend": 1,
    "impressions": 1,
    "lastPopId": 1,
    "ref1": "text",
    "ref2": "text",
    "ref3": "text",
    "ref4": "text",
    "ref5": "text"
  }
]

Add Campaign

post

Add a Campaign

Body
typestringRequired

Type of campaign, either list|ad

namestringRequired

Name for this Campaign

folderIdintegerOptional

Folder ID to which this object should be assigned to

layoutIdsinteger[]Optional

An array of layoutIds to assign to this Campaign, in order.

cyclePlaybackEnabledintegerOptional

When cycle based playback is enabled only 1 Layout from this Campaign will be played each time it is in a Schedule loop. The same Layout will be shown until the 'Play count' is achieved.

playCountintegerOptional

In cycle based playback, how many plays should each Layout have before moving on?

listPlayOrderstringOptional

In layout list, how should campaigns in the schedule with the same play order be played?

targetTypestringOptional

For ad campaigns, how do we measure the target? plays|budget|imp

targetintegerOptional

For ad campaigns, what is the target count for playback over the entire campaign

Responses
201

successful operation

application/json
post/campaign
POST /api/campaign HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 151

"type='text'&name='text'&folderId=1&layoutIds=[1]&cyclePlaybackEnabled=1&playCount=1&listPlayOrder='text'&targetType='text'&target=1"
201

successful operation

{
  "campaignId": 1,
  "ownerId": 1,
  "type": "text",
  "campaign": "text",
  "isLayoutSpecific": 1,
  "numberLayouts": 1,
  "totalDuration": 1,
  "tags": [
    {
      "tag": "text",
      "tagId": 1,
      "value": "text"
    }
  ],
  "folderId": 1,
  "permissionsFolderId": 1,
  "cyclePlaybackEnabled": 1,
  "playCount": 1,
  "listPlayOrder": "text",
  "targetType": "text",
  "target": 1,
  "startDt": 1,
  "endDt": 1,
  "plays": 1,
  "spend": 1,
  "impressions": 1,
  "lastPopId": 1,
  "ref1": "text",
  "ref2": "text",
  "ref3": "text",
  "ref4": "text",
  "ref5": "text"
}

Campaign Search by ID

get

Get the Campaign object specified by the provided campaignId

Path parameters
campaignIdintegerRequired

Numeric ID of the Campaign to get

Query parameters
embedstringOptional

Embed related data such as layouts, permissions, tags and events

Responses
200

successful operation

application/json

Class Campaign

campaignIdintegerOptional

The Campaign Id

ownerIdintegerOptional

The userId of the User that owns this Campaign

typestringOptional

The type of campaign, either list, ad, playlist or media

campaignstringOptional

The name of the Campaign

isLayoutSpecificintegerOptional

A 0|1 flag to indicate whether this is a Layout specific Campaign or not.

numberLayoutsintegerOptional

The number of Layouts associated with this Campaign

totalDurationintegerOptional

The total duration of the campaign (sum of layout's durations)

folderIdintegerOptional

The id of the Folder this Campaign belongs to

permissionsFolderIdintegerOptional

The id of the Folder responsible for providing permissions for this Campaign

cyclePlaybackEnabledintegerOptional

Flag indicating whether this Campaign has cycle based playback enabled

playCountintegerOptional

In cycle based playback, how many plays should each Layout have before moving on?

listPlayOrderstringOptional

In list campaign types, how should the layouts play out?

targetTypestringOptional

For an ad campaign, what's the target type, plays|budget|imp

targetintegerOptional

For an ad campaign, what's the target (expressed in targetType)

startDtintegerOptional

For an ad campaign, what's the start date

endDtintegerOptional

For an ad campaign, what's the end date

playsintegerOptional

The number of plays achived by this campaign

spendnumber · doubleOptional

The amount of spend in cents/pence/etc

impressionsnumber · doubleOptional

The number of impressions achived by this campaign

lastPopIdintegerOptional

The latest proof of play ID aggregated into the stats

ref1stringOptional

Reference field 1

ref2stringOptional

Reference field 1

ref3stringOptional

Reference field 1

ref4stringOptional

Reference field 1

ref5stringOptional

Reference field 1

get/campaign/{campaignId}
GET /api/campaign/{campaignId} HTTP/1.1
Accept: */*
200

successful operation

{
  "campaignId": 1,
  "ownerId": 1,
  "type": "text",
  "campaign": "text",
  "isLayoutSpecific": 1,
  "numberLayouts": 1,
  "totalDuration": 1,
  "tags": [
    {
      "tag": "text",
      "tagId": 1,
      "value": "text"
    }
  ],
  "folderId": 1,
  "permissionsFolderId": 1,
  "cyclePlaybackEnabled": 1,
  "playCount": 1,
  "listPlayOrder": "text",
  "targetType": "text",
  "target": 1,
  "startDt": 1,
  "endDt": 1,
  "plays": 1,
  "spend": 1,
  "impressions": 1,
  "lastPopId": 1,
  "ref1": "text",
  "ref2": "text",
  "ref3": "text",
  "ref4": "text",
  "ref5": "text"
}

Edit Campaign

put

Edit an existing Campaign

Path parameters
campaignIdintegerRequired

The Campaign ID to Edit

Body
namestringRequired

Name for this Campaign

folderIdintegerOptional

Folder ID to which this object should be assigned to

manageLayoutsintegerOptional

Flag indicating whether to manage layouts or not. Default to no.

layoutIdsinteger[]Optional

An array of layoutIds to assign to this Campaign, in order.

cyclePlaybackEnabledintegerOptional

When cycle based playback is enabled only 1 Layout from this Campaign will be played each time it is in a Schedule loop. The same Layout will be shown until the 'Play count' is achieved.

playCountintegerOptional

In cycle based playback, how many plays should each Layout have before moving on?

listPlayOrderstringOptional

In layout list, how should campaigns in the schedule with the same play order be played?

targetTypestringOptional

For ad campaigns, how do we measure the target? plays|budget|imp

targetintegerOptional

For ad campaigns, what is the target count for playback over the entire campaign

startDtstring · date-timeOptional

For ad campaigns, what is the start date

endDtstring · date-timeOptional

For ad campaigns, what is the start date

displayGroupIds[]integer[]Optional

For ad campaigns, which display groups should the campaign be run on?

ref1stringOptional

An optional reference field

ref2stringOptional

An optional reference field

ref3stringOptional

An optional reference field

ref4stringOptional

An optional reference field

ref5stringOptional

An optional reference field

Responses
200

successful operation

application/json

Class Campaign

campaignIdintegerOptional

The Campaign Id

ownerIdintegerOptional

The userId of the User that owns this Campaign

typestringOptional

The type of campaign, either list, ad, playlist or media

campaignstringOptional

The name of the Campaign

isLayoutSpecificintegerOptional

A 0|1 flag to indicate whether this is a Layout specific Campaign or not.

numberLayoutsintegerOptional

The number of Layouts associated with this Campaign

totalDurationintegerOptional

The total duration of the campaign (sum of layout's durations)

folderIdintegerOptional

The id of the Folder this Campaign belongs to

permissionsFolderIdintegerOptional

The id of the Folder responsible for providing permissions for this Campaign

cyclePlaybackEnabledintegerOptional

Flag indicating whether this Campaign has cycle based playback enabled

playCountintegerOptional

In cycle based playback, how many plays should each Layout have before moving on?

listPlayOrderstringOptional

In list campaign types, how should the layouts play out?

targetTypestringOptional

For an ad campaign, what's the target type, plays|budget|imp

targetintegerOptional

For an ad campaign, what's the target (expressed in targetType)

startDtintegerOptional

For an ad campaign, what's the start date

endDtintegerOptional

For an ad campaign, what's the end date

playsintegerOptional

The number of plays achived by this campaign

spendnumber · doubleOptional

The amount of spend in cents/pence/etc

impressionsnumber · doubleOptional

The number of impressions achived by this campaign

lastPopIdintegerOptional

The latest proof of play ID aggregated into the stats

ref1stringOptional

Reference field 1

ref2stringOptional

Reference field 1

ref3stringOptional

Reference field 1

ref4stringOptional

Reference field 1

ref5stringOptional

Reference field 1

put/campaign/{campaignId}
PUT /api/campaign/{campaignId} HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 321

"name='text'&folderId=1&manageLayouts=1&layoutIds=[1]&cyclePlaybackEnabled=1&playCount=1&listPlayOrder='text'&targetType='text'&target=1&startDt='2026-01-01T00:00:00.000Z'&endDt='2026-01-01T00:00:00.000Z'&displayGroupIds[]=[1]&ref1='text'&ref2='text'&ref3='text'&ref4='text'&ref5='text'"
200

successful operation

{
  "campaignId": 1,
  "ownerId": 1,
  "type": "text",
  "campaign": "text",
  "isLayoutSpecific": 1,
  "numberLayouts": 1,
  "totalDuration": 1,
  "tags": [
    {
      "tag": "text",
      "tagId": 1,
      "value": "text"
    }
  ],
  "folderId": 1,
  "permissionsFolderId": 1,
  "cyclePlaybackEnabled": 1,
  "playCount": 1,
  "listPlayOrder": "text",
  "targetType": "text",
  "target": 1,
  "startDt": 1,
  "endDt": 1,
  "plays": 1,
  "spend": 1,
  "impressions": 1,
  "lastPopId": 1,
  "ref1": "text",
  "ref2": "text",
  "ref3": "text",
  "ref4": "text",
  "ref5": "text"
}

Delete Campaign

delete

Delete an existing Campaign

Path parameters
campaignIdintegerRequired

The Campaign ID to Delete

Responses
204

successful operation

No content

delete/campaign/{campaignId}
DELETE /api/campaign/{campaignId} HTTP/1.1
Accept: */*
204

successful operation

No content

Assign Layout

post

Assign a Layout to a Campaign. Please note that as of v3.0.0 this API no longer accepts multiple layoutIds.

Path parameters
campaignIdintegerRequired

The Campaign ID

Body
layoutIdintegerRequired

Layout ID to Assign: Please note that as of v3.0.0 this API no longer accepts multiple layoutIds.

daysOfWeek[]integer[]Optional

Ad campaigns: restrict this to certain days of the week (iso week)

dayPartIdintegerOptional

Ad campaigns: restrict this to a day part

geoFencestringOptional

Ad campaigns: restrict this to a geofence

Responses
204

successful operation

No content

post/campaign/layout/assign/{campaignId}
POST /api/campaign/layout/assign/{campaignId} HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 65

"layoutId=1&daysOfWeek[]=[1]&dayPartId=1&geoFence='text'"
204

successful operation

No content

Remove Layout

delete

Remove a Layout from a Campaign.

Path parameters
campaignIdintegerRequired

The Campaign ID

Body
layoutIdintegerRequired

Layout ID to remove

displayOrderintegerOptional

The display order. Omit to remove all occurences of the layout

Responses
204

successful operation

No content

delete/campaign/layout/remove/{campaignId}
DELETE /api/campaign/layout/remove/{campaignId} HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 31

"layoutId=1&displayOrder=1"
204

successful operation

No content

Campaign Select folder

put

Select Folder for Campaign, can also be used with Layout specific Campaign ID

Path parameters
campaignIdintegerRequired

The Campaign ID or Layout specific Campaign ID

Body
folderIdintegerOptional

Folder ID to which this object should be assigned to

Responses
200

successful operation

application/json

Class Campaign

campaignIdintegerOptional

The Campaign Id

ownerIdintegerOptional

The userId of the User that owns this Campaign

typestringOptional

The type of campaign, either list, ad, playlist or media

campaignstringOptional

The name of the Campaign

isLayoutSpecificintegerOptional

A 0|1 flag to indicate whether this is a Layout specific Campaign or not.

numberLayoutsintegerOptional

The number of Layouts associated with this Campaign

totalDurationintegerOptional

The total duration of the campaign (sum of layout's durations)

folderIdintegerOptional

The id of the Folder this Campaign belongs to

permissionsFolderIdintegerOptional

The id of the Folder responsible for providing permissions for this Campaign

cyclePlaybackEnabledintegerOptional

Flag indicating whether this Campaign has cycle based playback enabled

playCountintegerOptional

In cycle based playback, how many plays should each Layout have before moving on?

listPlayOrderstringOptional

In list campaign types, how should the layouts play out?

targetTypestringOptional

For an ad campaign, what's the target type, plays|budget|imp

targetintegerOptional

For an ad campaign, what's the target (expressed in targetType)

startDtintegerOptional

For an ad campaign, what's the start date

endDtintegerOptional

For an ad campaign, what's the end date

playsintegerOptional

The number of plays achived by this campaign

spendnumber · doubleOptional

The amount of spend in cents/pence/etc

impressionsnumber · doubleOptional

The number of impressions achived by this campaign

lastPopIdintegerOptional

The latest proof of play ID aggregated into the stats

ref1stringOptional

Reference field 1

ref2stringOptional

Reference field 1

ref3stringOptional

Reference field 1

ref4stringOptional

Reference field 1

ref5stringOptional

Reference field 1

put/campaign/{id}/selectfolder
PUT /api/campaign/{id}/selectfolder HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 14

"folderId=1"
200

successful operation

{
  "campaignId": 1,
  "ownerId": 1,
  "type": "text",
  "campaign": "text",
  "isLayoutSpecific": 1,
  "numberLayouts": 1,
  "totalDuration": 1,
  "tags": [
    {
      "tag": "text",
      "tagId": 1,
      "value": "text"
    }
  ],
  "folderId": 1,
  "permissionsFolderId": 1,
  "cyclePlaybackEnabled": 1,
  "playCount": 1,
  "listPlayOrder": "text",
  "targetType": "text",
  "target": 1,
  "startDt": 1,
  "endDt": 1,
  "plays": 1,
  "spend": 1,
  "impressions": 1,
  "lastPopId": 1,
  "ref1": "text",
  "ref2": "text",
  "ref3": "text",
  "ref4": "text",
  "ref5": "text"
}

Last updated

Was this helpful?