Skip to main content

Planner API

Overview

The planner API allows users to draft an ad strategy proposal that meets their client's requirements while also achieving Campaign goals.

Planner proposals offer insight summaries for reach and impression parameters that can then be applied to Campaigns to pre-optimize their success. The planner API can also apply audience and targeting details to a Campaign.

Once a proposal is drafted the Planner API can generate an Insertion Order and Campaign while also validating the proposal details.

This page covers the common endpoints and methods associated with the Planner API.

Learn more about the planner and proposals with our Help Center articles.

Authentication

Use the following header parameters for all requests:

Headers
Authentication
string required
Authentication bearer token
See Authentication Guide
X-IAA-OW-ID
integer required
Organization Worskpace ID Header

Proposal Details

Get Proposal Details by ID

GET /api/v3/plan/proposal/{proposalId}

Get proposal details by ID.

Path Parameters
proposalId
integer
Proposal ID
Response 200 (Draft proposal)
{
"success": true,
"data":
{
"id": 14,
"name": "sample",
"startTime": 1730658720000,
"endTime": 1733250720000,
"status": 2,
"politicalAdvertiserId": 0,
"marginValue": null,
"owId": 202500,
"proposalTargeting":
{
"location":
{
"country": 1,
"states":
[
1,
2,
3
],
"dma":
[
1,
2,
3
],
"city":
[
1,
2,
3
],
"county":
[
1,
2,
3
],
"congressionalDistricts":
[
1,
2,
3
],
"stateHouse":
[
1,
2,
3
],
"stateSenate":
[
1,
2,
3
],
"zipCodes": null,
"locationAdvanceTargeted":
[
"city",
"state"
],
"advanceTargeted": false
},
"audience":
{
"audienceSegmentIds":
[
6387630,
6387631,
6387632,
6387633,
6387634
],
"advanceTargeted": false
},
"creative":
{
"creativeTypeIds":
[
13
],
"tvAutoBuying": false
},
"inventory":
{
"openExchangeInventory":
{
"iabCategories":
[
1,
2
],
"exchanges":
[
11,
16,
19
]
},
"inventoryGroupIds":
[],
"advanceTargeted": false
},
"device":
{
"deviceTypesTargetedIds":
[],
"channelTypesTargetedIds":
[],
"deviceTypesAdvanceTargetedIds":
[
1,
2
],
"advanceTargeted": false
}
}
}
}
Response 200 (Ready proposal)
{
"success": "true",
"data":
{
"id": 14,
"name": "sample",
"startTime": 1730658720000,
"endTime": 1733250720000,
"status": 3,
"targetedReach": 2147483646,
"targetedImpressions": 2147483646,
"maxTargetedReach": 2147483646,
"maxTargetedImpressions": 2147483646,
"budget": 0.0,
"maxBudget": 0.0,
"owId": 202500,
"proposedCampaigns":
[
{
"id": 1234,
"name": "Demo_Campaign_For_proposal",
"startTime": 1730658720000,
"endTime": 1733250720000,
"strategy": "strategy",
"creativeTypeId": 1,
"duration": 30,
"modelType": "cpm",
"targetedReach": 1234,
"maxTargetedReach": 12345566,
"frequencyCap": 3,
"targetedImpressions": 123,
"maxTargetedImpressions": 12345,
"cpm": 5.0,
"minCpm": 3.5,
"maxCpm": 1000.0,
"budget": 1000.0,
"maxBudget": 1000.0
}
]
}
}
Response 403
{
"success": false,
"errorObjects": [
{
"error": "Requested Resource is not accessible for the user"
}
]
}

Get List of Proposals

GET /api/v3/plan/proposals
Response 200
{
"success": true,
"data": {
"proposalDetailList": [
{
"id": 6,
"name": "planner-proposal-2",
"statusId": 2,
"createdOn": 1234567,
"userAvatarUrl": "https://sample-c92d6b6cbde1.s3.com/avatar/sample.png",
"reach": 4567,
"impression": 345678,
"ioId": null,
"budget": 23423,
"startDate": 1728890609000,
"endDate": 1728990609000,
"createdBy": "user1"
},
{
"id": 7,
"name": "planner-proposal-3",
"statusId": 1,
"createdOn": 1234567,
"userAvatarUrl": "https://sample-c92d6b6cbde1.s3.com/avatar/sample.png",
"reach": 4567,
"impression": 345678,
"ioId": 1,
"budget": 23423,
"startDate": 1728890609000,
"endDate": 1728990609000,
"createdBy": "user2"
}
],
"totalRecords": 7,
"filteredRecords": 7,
"recordsTotal": {
"totalBudget": 23,
"totalImpressions": 3865464
}
}
}

Proposal Reach and Impressions Summary

POST /api/v3/plan//proposal-summary/reach-impressions

Get summary of maximum reach and impressions for different targeting parameters in a proposal based on statistics and historical serving data.

Request Schema
location
object
Location data
location object properties
country
array of integers
Country ID
states
array of integers
States ID
dma
array of integers
DMA ID
city
array of integers
City ID
county
array of integers
County ID
congressionalDistricts
array of integers
Congressional district ID
stateHouse
array of integers
State house ID
stateSenate
array of integers
State senate ID
zipCodes
string
Comma separated Zip Code IDs
audience
object
Audience data
audience object properties
audienceSegmentIds
array of integers
Audience segment ID
creative
object
Creative data
creative object properties
creativeTypeIds
array of integers
Creative type ID
inventory
object
Inventory data
inventory object properties
openExchangeInventory
object
Open exchange Inventory data
openExchangeInventory object properties
iabCategories
array of integers
IAB category ID
exchanges
array of integers
Exchange ID
inventoryGroupIds
array of integers
Inventory group ID
device
object
Device data
device object properties
deviceTypesTargetedIds
array of integers
Targeted Device Type IDs
channelTypesTargetedIds
array of integers
Targeted Channel Type IDs
Request Sample
{
"location": {
"country": 30100001,
"states": [
30200001,
30200002,
30200003
],
"dma": [
30900001,
30900002
],
"city": [
30400001,
30400002,
30400003
],
"county": [
30300001,
30300002,
30300003
],
"congressionalDistricts": [
30600001
],
"stateHouse": [
30800001,
30800002
],
"stateSenate": [
30700001,
30700002,
30700003
],
"zipCodes": "167820,78656"
},
"audience": {
"audienceSegmentIds": [
6387630,
6387631,
6387632,
6387633,
6387634
]
},
"creative": {
"creativeTypeIds": [
11,
13,
14
]
},
"inventory": {
"openExchangeInventory": {
"iabCategories": [
1,
2
],
"exchanges": [
11,
16,
19,
1
]
},
"inventoryGroupIds": [
134523,
134522,
134436
]
},
"device": {
"deviceTypesTargetedIds": [
20300001,
20300002,
20300002,
20300004
],
"channelTypesTargetedIds": [
11,
12
]
}
}
Response 200
{
"success": true,
"data": {
"impressions": 105409776517,
"reach": 210368111
}
}

Proposal Device Type Summary

POST /api/v3/plan/proposal-summary/device-type

Get summary of impressions distribution for different device types targeted in proposal.

Request Schema
location
object
Location data
location object properties
country
array of integers
Country ID
states
array of integers
States ID
dma
array of integers
DMA ID
city
array of integers
City ID
county
array of integers
County ID
congressionalDistricts
array of integers
Congressional district ID
stateHouse
array of integers
State house ID
stateSenate
array of integers
State senate ID
zipCodes
string
Comma separated Zip Code IDs
audience
object
Audience data
audience object properties
audienceSegmentIds
array of integers
Audience segment ID
creative
object
Creative data
creative object properties
creativeTypeIds
array of integers
Creative type ID
inventory
object
Inventory data
inventory object properties
openExchangeInventory
object
Open exchange Inventory data
openExchangeInventory object properties
iabCategories
array of integers
IAB category ID
exchanges
array of integers
Exchange ID
inventoryGroupIds
array of integers
Inventory group ID
device
object
Device data
device object properties
deviceTypesTargetedIds
array of integers
Targeted Device Type IDs
channelTypesTargetedIds
array of integers
Targeted Channel Type IDs
Request Sample
{
"location": {
"country": 30100001,
"states": [
30200001,
30200002,
30200003
],
"dma": [
30900001,
30900002
],
"city": [
30400001,
30400002,
30400003
],
"county": [
30300001,
30300002,
30300003
],
"congressionalDistricts": [
30600001
],
"stateHouse": [
30800001,
30800002
],
"stateSenate": [
30700001,
30700002,
30700003
],
"zipCodes": "167820,78656"
},
"audience": {
"audienceSegmentIds": [
6387630,
6387631,
6387632,
6387633,
6387634
]
},
"creative": {
"creativeTypeIds": [
11,
13,
14
]
},
"inventory": {
"openExchangeInventory": {
"iabCategories": [
1,
2
],
"exchanges": [
11,
16,
19,
1
]
},
"inventoryGroupIds": [
134523,
134522,
134436
]
},
"device": {
"deviceTypesTargetedIds": [
20300001,
20300002,
20300002,
20300004
],
"channelTypesTargetedIds": [
11,
12
]
}
}
Response 200
{
"success": true,
"data": {
"deviceTypes": [
{
"device": "Mobile",
"percentage": 38.86,
"impressions": 21402990540
},
{
"device": "Desktop",
"percentage": 11.63,
"impressions": 6399597393
},
{
"device": "CTV",
"percentage": 47.89,
"impressions": 26376959052
},
{
"device": "Tablet",
"percentage": 1.63,
"impressions": 898221564
}
]
}
}

Proposal Channel Type Summary

POST /api/v3/plan/proposal-summary/channel-type

Get summary of impressions distribution for different channel types targeted in proposal.

Request Schema
location
object
Location data
location object properties
country
array of integers
Country ID
states
array of integers
States ID
dma
array of integers
DMA ID
city
array of integers
City ID
county
array of integers
County ID
congressionalDistricts
array of integers
Congressional district ID
stateHouse
array of integers
State house ID
stateSenate
array of integers
State senate ID
zipCodes
string
Comma separated Zip Code IDs
audience
object
Audience data
audience object properties
audienceSegmentIds
array of integers
Audience segment ID
creative
object
Creative data
creative object properties
creativeTypeIds
array of integers
Creative type ID
inventory
object
Inventory data
inventory object properties
openExchangeInventory
object
Open exchange Inventory data
openExchangeInventory object properties
iabCategories
array of integers
IAB category ID
exchanges
array of integers
Exchange ID
inventoryGroupIds
array of integers
Inventory group ID
device
object
Device data
device object properties
deviceTypesTargetedIds
array of integers
Targeted Device Type IDs
channelTypesTargetedIds
array of integers
Targeted Channel Type IDs
Request Sample
{
"location": {
"country": 30100001,
"states": [
30200001,
30200002,
30200003
],
"dma": [
30900001,
30900002
],
"city": [
30400001,
30400002,
30400003
],
"county": [
30300001,
30300002,
30300003
],
"congressionalDistricts": [
30600001
],
"stateHouse": [
30800001,
30800002
],
"stateSenate": [
30700001,
30700002,
30700003
],
"zipCodes": "167820,78656"
},
"audience": {
"audienceSegmentIds": [
6387630,
6387631,
6387632,
6387633,
6387634
]
},
"creative": {
"creativeTypeIds": [
11,
13,
14
]
},
"inventory": {
"openExchangeInventory": {
"iabCategories": [
1,
2
],
"exchanges": [
11,
16,
19,
1
]
},
"inventoryGroupIds": [
134523,
134522,
134436
]
},
"device": {
"deviceTypesTargetedIds": [
20300001,
20300002,
20300002,
20300004
],
"channelTypesTargetedIds": [
11,
12
]
}
}
Response 200
{
"success": true,
"data": {
"channelTypes": [
{
"channel": "App",
"percentage": 22.36,
"impressions": 12314443086
},
{
"channel": "Web",
"percentage": 29.65,
"impressions": 16326324495
},
{
"channel": "CTV",
"percentage": 47.89,
"impressions": 26376959052
},
{
"channel": "OTT",
"percentage": 0.11,
"impressions": 60041916
}
]
}
}

Proposal Bid Landscape Summary

POST /api/v3/plan/proposal-summary/bid-landscape

Get summary of impressions distribution for different bid landscapes targeted in proposal.

Request Schema
location
object
Location data
location object properties
country
array of integers
Country ID
states
array of integers
States ID
dma
array of integers
DMA ID
city
array of integers
City ID
county
array of integers
County ID
congressionalDistricts
array of integers
Congressional district ID
stateHouse
array of integers
State house ID
stateSenate
array of integers
State senate ID
zipCodes
string
Comma separated Zip Code IDs
audience
object
Audience data
audience object properties
audienceSegmentIds
array of integers
Audience segment ID
creative
object
Creative data
creative object properties
creativeTypeIds
array of integers
Creative type ID
inventory
object
Inventory data
inventory object properties
openExchangeInventory
object
Open exchange Inventory data
openExchangeInventory object properties
iabCategories
array of integers
IAB category ID
exchanges
array of integers
Exchange ID
inventoryGroupIds
array of integers
Inventory group ID
device
object
Device data
device object properties
deviceTypesTargetedIds
array of integers
Targeted Device Type IDs
channelTypesTargetedIds
array of integers
Targeted Channel Type IDs
Request Sample
{
"location": {
"country": 30100001,
"states": [
30200001,
30200002,
30200003
],
"dma": [
30900001,
30900002
],
"city": [
30400001,
30400002,
30400003
],
"county": [
30300001,
30300002,
30300003
],
"congressionalDistricts": [
30600001
],
"stateHouse": [
30800001,
30800002
],
"stateSenate": [
30700001,
30700002,
30700003
],
"zipCodes": "167820,78656"
},
"audience": {
"audienceSegmentIds": [
6387630,
6387631,
6387632,
6387633,
6387634
]
},
"creative": {
"creativeTypeIds": [
11,
13,
14
]
},
"inventory": {
"openExchangeInventory": {
"iabCategories": [
1,
2
],
"exchanges": [
11,
16,
19,
1
]
},
"inventoryGroupIds": [
134523,
134522,
134436
]
},
"device": {
"deviceTypesTargetedIds": [
20300001,
20300002,
20300002,
20300004
],
"channelTypesTargetedIds": [
11,
12
]
}
}
Response 200
{
"success": true,
"data": {
"HTML": [
{
"percentile": 0,
"cpm": 0,
"impressions": 0
},
{
"percentile": 10,
"cpm": 0.001,
"impressions": 2719219
},
{
"percentile": 20,
"cpm": 0.01,
"impressions": 27192810
},
{
"percentile": 100,
"cpm": 3.0072,
"impressions": 271029139123
}
],
"Video": [
{
"percentile": 0,
"cpm": 0,
"impressions": 0
},
{
"percentile": 10,
"cpm": 0.003,
"impressions": 2719219
},
{
"percentile": 20,
"cpm": 0.05,
"impressions": 27192810
},
{
"percentile": 100,
"cpm": 10.372,
"impressions": 271029139123
}
]
}
}

Download Proposal

GET /api/v3/plan/proposal/{proposalId}/download

Get download URL for proposals with statuses: ready, failed, converted, or expired.

Query Parameters
fileType
string
Type of file to download
Excel: 1
CSV: 2
proposalId
string
Proposal ID
Response 200
{
"success": true,
"data": {
"proposalReportUrl": "https://example.s3.amazonaws.com/planner/proposal/report/34567890iuhgvbhjio987654456789oijhbvbjio9876"
}
}

Proposal Management

Create Proposal

POST /api/v3/plan/proposal/add
Request Schema
id
string
Proposal ID
name
string
Proposal name
startTime
integer
Unix epoch timestamp (in milliseconds) of start time
endTime
integer
Unix epoch timestamp (in milliseconds) of end time
advertiserId
integer
Advertiser ID
margin
integer
Margin
location
object
Location data
location object properties
country
array of integers
Country ID
states
array of integers
States ID
dma
array of integers
DMA ID
city
array of integers
City ID
county
array of integers
County ID
congressionalDistricts
array of integers
Congressional district ID
stateHouse
array of integers
State house ID
stateSenate
array of integers
State senate ID
zipCodes
string
Comma separated Zip Code IDs
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
locationAdvanceTargeted
array of integers
When true, indicates that a new Campaign must be created for advanced location targeting
audience
object
Audience data
audience object properties
audienceSegmentIds
array of integers
Audience segment ID
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
creative
object
Creative data
creative object properties
creativeTypeIds
array of integers
Creative type ID
isTvAutoBuying
boolean
If true, indicates video Creative is eligible for TV Advertising
inventory
object
Inventory data
inventory object properties
openExchangeInventory
object
Open exchange Inventory data
openExchangeInventory object properties
iabCategories
array of integers
IAB category ID
exchanges
array of integers
Exchange ID
inventoryGroupIds
array of integers
Inventory group ID
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
device
object
Device data
device object properties
deviceTypesTargetedIds
array of integers
Targeted Device Type IDs
channelTypesTargetedIds
array of integers
Targeted Channel Type IDs
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
deviceTypesAdvanceTargetedIds
array of integers
When true, indicates that a new Campaign must be created for advanced device targeting
Request Sample
{
"id": "11",
"name": "sample_planner",
"startTime": 1730658720000,
"endTime": 1733250720000,
"advertiserId": 644,
"margin": 10,
"location": {
"country": 30100001,
"states": [
30200001,
30200002,
30200003
],
"dma": [
30900001,
30900002
],
"city": [
30400001,
30400002,
30400003
],
"county": [
30300001,
30300002,
30300003
],
"congressionalDistricts": [
30600001
],
"stateHouse": [
30800001,
30800002
],
"stateSenate": [
30700001,
30700002,
30700003
],
"zipCodes": "167820,78656",
"isAdvanceTargeted": true,
"locationAdvanceTargeted": [
302,
304,
309
]
},
"audience": {
"audienceSegmentIds": [
6387630,
6387631,
6387632,
6387633,
6387634
],
"isAdvanceTargeted": true
},
"creative": {
"creativeTypeIds": [
11,
13,
14
],
"isTvAutoBuying": true
},
"inventory": {
"openExchangeInventory": {
"iabCategories": [
1,
2
],
"exchanges": [
11,
16,
19,
1
]
},
"inventoryGroupIds": [
134523,
134522,
134436
],
"isAdvanceTargeted": true
},
"device": {
"deviceTypesTargetedIds": [
20300001,
20300002,
20300002,
20300004
],
"channelTypesTargetedIds": [],
"isAdvanceTargeted": true,
"deviceTypesAdvanceTargetedIds": [
20300002,
20300004
]
}
}
Response 200
{
"success": true,
"data": {
"id": 11,
"message": "sample_planner generated successfully"
}
}

Create Draft Proposal

POST /api/v3/plan/proposal/draft
Request Schema
id
string
Proposal ID
name
string
Proposal name
startTime
integer
Unix epoch timestamp (in milliseconds) of start time
endTime
integer
Unix epoch timestamp (in milliseconds) of end time
advertiserId
integer
Advertiser ID
margin
integer
Margin
location
object
Location data
location object properties
country
array of integers
Country ID
states
array of integers
States ID
dma
array of integers
DMA ID
city
array of integers
City ID
county
array of integers
County ID
congressionalDistricts
array of integers
Congressional district ID
stateHouse
array of integers
State house ID
stateSenate
array of integers
State senate ID
zipCodes
string
Comma separated Zip Code IDs
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
locationAdvanceTargeted
array of integers
When true, indicates that a new Campaign must be created for advanced location targeting
audience
object
Audience data
audience object properties
audienceSegmentIds
array of integers
Audience segment ID
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
creative
object
Creative data
creative object properties
creativeTypeIds
array of integers
Creative type ID
isTvAutoBuying
boolean
If true, indicates video Creative is eligible for TV Advertising
inventory
object
Inventory data
inventory object properties
openExchangeInventory
object
Open exchange Inventory data
openExchangeInventory object properties
iabCategories
array of integers
IAB category ID
exchanges
array of integers
Exchange ID
inventoryGroupIds
array of integers
Inventory group ID
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
device
object
Device data
device object properties
deviceTypesTargetedIds
array of integers
Device types targeted ID
channelTypesTargetedIds
array of integers
Channel types targeted ID
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
deviceTypesAdvanceTargetedIds
array of integers
When true, indicates that a new Campaign must be created for advanced device targeting
Request Sample
{
"id": "11",
"name": "sample_planner",
"startTime": 1730658720000,
"endTime": 1733250720000,
"advertiserId": 644,
"margin": 10,
"location": {
"country": 30100001,
"states": [
30200001,
30200002,
30200003
],
"dma": [
30900001,
30900002
],
"city": [
30400001,
30400002,
30400003
],
"county": [
30300001,
30300002,
30300003
],
"congressionalDistricts": [
30600001
],
"stateHouse": [
30800001,
30800002
],
"stateSenate": [
30700001,
30700002,
30700003
],
"zipCodes": "167820,78656",
"isAdvanceTargeted": true,
"locationAdvanceTargeted": [
302,
304,
309
]
},
"audience": {
"audienceSegmentIds": [
6387630,
6387631,
6387632,
6387633,
6387634
],
"isAdvanceTargeted": true
},
"creative": {
"creativeTypeIds": [
11,
13,
14
],
"isTvAutoBuying": true
},
"inventory": {
"openExchangeInventory": {
"iabCategories": [
1,
2
],
"exchanges": [
11,
16,
19,
1
]
},
"inventoryGroupIds": [
134523,
134522,
134436
],
"isAdvanceTargeted": true
},
"device": {
"deviceTypesTargetedIds": [
20300001,
20300002,
20300002,
20300004
],
"channelTypesTargetedIds": [],
"isAdvanceTargeted": true,
"deviceTypesAdvanceTargetedIds": [
20300002,
20300004
]
}
}
Response 200
{
"success": true,
"data": {
"id": 11,
"message": "sample_planner generated successfully"
}
}

Update Proposal

PATCH /api/v3/plan/proposal/{proposalId}

Update proposal details.

Path Parameters
proposalId
integer
Proposal ID
Request Schema
proposalName
string
Proposal name
proposalStartTime
integer
Unix epoch timestamp (in milliseconds) of start time
proposalEndTime
integer
Unix epoch timestamp (in milliseconds) of end time
politicalAdvertiserId
integer
Political advertiser ID
proposalStatusId
integer
Proposal status ID
proposalReach
integer
Proposal reach
proposalMaxReach
integer
Proposal max reach
proposalImpressions
integer
Proposal impressions
proposalMaxImpressions
integer
Location
proposalBudget
integer
Proposal budget
proposalMaxBudget
integer
Location
campaigns
object
Campaign data
campaigns object properties
id
integer
Campaign ID
name
string
Campaign name
startTime
integer
Unix epoch timestamp (in milliseconds) of start time
endTime
integer
Unix epoch timestamp (in milliseconds) of end time
reach
integer
Reach
frequencyCap
integer
Frequency cap
impressions
integer
Impressions
cpm
integer
CPM
budget
integer
Campaign budget
deletedCampaignIds
array of integers
Deleted campaign IDs
Request Sample
{
"proposalName": "proposalName",
"proposalStartTime": 1729449000000,
"proposalEndTime": 1730313000000,
"politicalAdvertiserId": 644,
"proposalStatusId": 6,
"proposalReach": 150000,
"proposalMaxReach": 150000,
"proposalImpressions": 112500000,
"proposalMaxImpressions": 112500000,
"proposalBudget": 1125000,
"proposalMaxBudget": 1125000,
"campaigns": [
{
"id": 1,
"name": "Proposal",
"startTime": 1729449000000,
"endTime": 1730313000000,
"reach": 150000,
"frequencyCap": 3,
"impressions": 4500000,
"cpm": 1,
"budget": 4500
}
],
"deletedCampaignIds": [
3,
4
]
}
Response 200
{
"success": true,
"data": {
"message": "Proposal updated successfully"
}
}

Update Draft Proposal

PATCH /api/v3/plan/proposal/draft/{proposalId}

Update draft proposal details.

Path Parameters
proposalId
integer
Proposal ID
Request Schema
id
string
Proposal ID
name
string
Proposal name
startTime
integer
Unix epoch timestamp (in milliseconds) of start time
endTime
integer
Unix epoch timestamp (in milliseconds) of end time
advertiserId
integer
Advertiser ID
margin
integer
Margin
location
object
Location data
location object properties
country
array of integers
Country ID
states
array of integers
States ID
dma
array of integers
DMA ID
city
array of integers
City ID
county
array of integers
County ID
congressionalDistricts
array of integers
Congressional district ID
stateHouse
array of integers
State house ID
stateSenate
array of integers
State senate ID
zipCodes
string
Comma separated Zip Code IDs
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
locationAdvanceTargeted
array of integers
When true, indicates that a new Campaign must be created for advanced location targeting
audience
object
Audience data
audience object properties
audienceSegmentIds
array of integers
Audience segment ID
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
creative
object
Creative data
creative object properties
creativeTypeIds
array of integers
Creative type ID
isTvAutoBuying
boolean
If true, indicates video Creative is eligible for TV Advertising
inventory
object
Inventory data
inventory object properties
openExchangeInventory
object
Open exchange Inventory data
openExchangeInventory object properties
iabCategories
array of integers
IAB category ID
exchanges
array of integers
Exchange ID
inventoryGroupIds
array of integers
Inventory group ID
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
device
object
Device data
device object properties
deviceTypesTargetedIds
array of integers
Device types targeted ID
channelTypesTargetedIds
array of integers
Channel types targeted ID
isAdvanceTargeted
boolean
When true, indicates that a new Campaign must be created for advanced audience and Inventory targeting
deviceTypesAdvanceTargetedIds
array of integers
When true, indicates that a new Campaign must be created for advanced device targeting
Request Sample
{
"name": "sample_planner",
"startTime": 1730658720000,
"endTime": 1733250720000,
"advertiserId": 644,
"margin": 10,
"location": {
"country": 30100001,
"states": [
30200001,
30200002,
30200003
],
"dma": [
30900001,
30900002
],
"city": [
30400001,
30400002,
30400003
],
"county": [
30300001,
30300002,
30300003
],
"congressionalDistricts": [
30600001
],
"stateHouse": [
30800001,
30800002
],
"stateSenate": [
30700001,
30700002,
30700003
],
"zipCodes": "167820,78656",
"isAdvanceTargeted": true,
"locationAdvanceTargeted": [
302,
304,
309
]
},
"audience": {
"audienceSegmentIds": [
6387630,
6387631,
6387632,
6387633,
6387634
],
"isAdvanceTargeted": true
},
"creative": {
"creativeTypeIds": [
11,
13,
14
],
"isTvAutoBuying": true
},
"inventory": {
"openExchangeInventory": {
"iabCategories": [
1,
2
],
"exchanges": [
11,
16,
19,
1
]
},
"inventoryGroupIds": [
134523,
134522,
134436
],
"isAdvanceTargeted": true
},
"device": {
"deviceTypesTargetedIds": [
20300001,
20300002,
20300002,
20300004
],
"channelTypesTargetedIds": [],
"isAdvanceTargeted": true,
"deviceTypesAdvanceTargetedIds": [
20300002,
20300004
]
}
}
Response 200
{
"success": true,
"data": {
"id": 11,
"message": "sample_planner updated successfully"
}
}

Generate Campaigns for Ready Proposal

POST /api/v3/plan/proposal/{proposalId}/campaigns

Validate the proposal details and update its status to in-progress. An Insertion Order and Campaign will then be generated.

Path Parameters
proposalId
integer
Proposal ID
Response 200
{
"success": true,
"data": {
"message": "Campaign generation is in progress"
}
}

Restore Proposal

PATCH /api/v3/plan/proposals/restore

Update the start time and end time of a proposal. If a proposal was expired, its status will change to ready with the updated parameters.

Request Schema
proposalIds
array of integers
Proposal IDs
startTime
integer
Unix epoch timestamp (in milliseconds) of start time
endTime
integer
Unix epoch timestamp (in milliseconds) of end time
Request Sample
{
"proposalIds": [
2,
3
],
"startTime": 1212121212,
"endTime": 1512121212
}
Response 200
{
"success": true,
"data": {
"message": "Proposal restored successfully"
}
}

Duplicate Proposal

POST /api/v3/plan/proposal/{proposalId}/duplicate

Duplicate an existing proposal.

Path Parameters
proposalId
integer
Proposal ID
Response 200
{
"proposalName": "Copy of proposal 3",
"startTime": 1732023982000,
"endTime": 1732053982000
}

Delete Proposal

DELETE /api/v3/plan/proposal

Delete an existing proposal.

Query Parameters
proposalIds
string
Comma separated proposal IDs
Response 200
{
"success": true,
"data": {
"message": "sampleProposal deleted successfully."
}
}

More Details

Proposal Status List

GET /api/v3/plan/static/proposal/status

Get list of proposal status IDs.

Response 200
{
"success": true,
"data": {
"totalRecords": 6,
"filteredRecords": 6,
"proposalStatusList": [
{
"name": "draft",
"id": 2,
"label": "Draft",
"order": 1
},
{
"name": "ready",
"id": 6,
"label": "Ready",
"order": 2
},
{
"name": "expired",
"id": 3,
"label": "Expired",
"order": 3
},
{
"name": "processing",
"id": 5,
"label": "Processing",
"order": 4
},
{
"name": "converted",
"id": 1,
"label": "Converted",
"order": 5
},
{
"name": "failed",
"id": 4,
"label": "Failed",
"order": 6
}
]
}
}

Proposal Summary Parameters List

GET /api/v3/plan/proposal-summary/supported-params

Get list of supported parameters for proposal summaries.

Response 200
{
"success": true,
"data": {
"bidLandscape": {
"location": {
"countryIds": true,
"cityIds": true,
"countyIds": true,
"senateDistrictIds": true,
"houseDistrictIds": true,
"congressionalDistrictIds": true,
"dmaIds": true,
"zipCodes": true
},
"deviceTypes": true,
"creativeTypes": true,
"channelTypes": true,
"segmentIds": true,
"inventory": false
},
"deviceGraph": {
"location": {
"countryIds": true,
"cityIds": true,
"countyIds": true,
"senateDistrictIds": true,
"houseDistrictIds": true,
"congressionalDistrictIds": true,
"dmaIds": true,
"zipCodes": true
},
"deviceTypes": true,
"creativeTypes": true,
"channelTypes": true,
"segmentIds": true,
"inventory": false
},
"channelGraph": {
"location": {
"countryIds": true,
"cityIds": true,
"countyIds": true,
"senateDistrictIds": true,
"houseDistrictIds": true,
"congressionalDistrictIds": true,
"dmaIds": true,
"zipCodes": true
},
"deviceTypes": true,
"creativeTypes": true,
"channelTypes": true,
"segmentIds": true,
"inventory": false
},
"reachImpressions": {
"location": {
"countryIds": true,
"cityIds": true,
"countyIds": true,
"senateDistrictIds": true,
"houseDistrictIds": true,
"congressionalDistrictIds": true,
"dmaIds": true,
"zipCodes": true
},
"deviceTypes": true,
"creativeTypes": true,
"channelTypes": true,
"segmentIds": true,
"inventory": false
}
}
}

Get User Access Details

GET /api/v3/plan/proposal/margin

Get user access details of logged-in organization's parent organizations.

Response 200
{
"success": true,
"data": {
"parentOrganisationAccess": true,
"adminOrganisationAccess": true,
"marginValue": 6
}
}