Skip to main content

Planner API

This page covers the methods and endpoints associated with Political Proposal Planners. With the Planner API you can create, retrieve, update, and manage Proposal Planners for political Campaigns.

Political Proposal Planner Details

Political Planner Resource Properties

Plan Resource Properties
id
integer
Plan ID
name
string
Plan name
objectiveId
integer
Plan Objective ID
totalBudget
number
Total plan budget
details
object
Plan details object
details object properties
startDate
integer
Unix epoch start date, in milliseconds
endDate
integer
Unix epoch end date, in milliseconds
timezoneId
integer
Timezone ID specifies data collection start time
frequencyCap
integer
Frequency cap
statusId
integer
Plan Status ID
cva
object
Custom Voter Audience (CVA) object
cva object properties
id
integer
CVA ID
equation
string
CVA segment equation
stateIds
array of integers
State IDs
segmentIds
array of integers
CVA Segment IDs
reach
integer
CVA reach
targeting
object
Targeting object
targeting object properties
whiteListedLocation
object
Whitelisted location targeting
whiteListedLocation object properties
country
integer
Country ID
states
array of integers
State IDs
dma
array of integers
DMA IDs
city
array of integers
City IDs
county
array of integers
County IDs
congressionalDistrict
array of integers
Congressional District IDs
stateHouse
array of integers
State House IDs
stateSenate
array of integers
State Senate IDs
zipCodes
array of integers
Zip Codes
blackListedLocation
object
Blacklisted location targeting (same structure as whitelisted)
device
object
Device targeting
device object properties
deviceTypeIds
array of integers
Device Type IDs
channelTypeIds
array of integers
Channel Type IDs
inventory
object
Inventory targeting
inventory object properties
openExchange
object
Open Exchange targeting
inventoryGroupIds
array of integers
Inventory Group IDs
creative
object
Creative targeting
creative object properties
creativeTypeIds
array of integers
Creative Type IDs
isTvAutoBuying
boolean
Indicates CTV auto-buying is enabled
whitelistedAudiences
array of integers
Whitelisted Audience IDs
blacklistedAudiences
array of integers
Blacklisted Audience IDs
prebidSegments
array of integers
Prebid Segment IDs
audienceSegments
array of integers
Audience Segment IDs
advanced
object
Advanced targeting
advanced object properties
splitTypeId
integer
Split Type ID
locations
array of integers
Targeting Type IDs for locations
devices
array of integers
Device Type IDs
inventoryGroupIds
array of integers
Inventory Group IDs
audienceTypes
array of integers
Audience Type IDs
creatives
array of integers
Creative Type IDs

Proposal Resource Properties
id
integer
Proposal ID
name
string
Proposal name
startTime
integer
Unix epoch start date, in milliseconds
endTime
integer
Unix epoch end date, in milliseconds
statusId
integer
Plan Status ID
ioId
integer
Insertion Order ID
reach
integer
Estimated reach
impressions
integer
Estimated impressions
budget
number
Proposal budget
frequencyCap
integer
Frequency cap
maxReach
integer
Maximum reach
maxImpressions
integer
Maximum impressions
maxBudget
number
Maximum budget
cpm
number
Cost per thousand impressions
timeZoneId
integer
Timezone ID
timeZoneName
string
Timezone name
proposedCampaigns
array of objects
Proposed Campaigns
proposedCampaigns object properties
id
integer
Campaign ID
name
string
Campaign name
startTime
integer
Unix epoch start date, in milliseconds
endTime
integer
Unix epoch end date, in milliseconds
creativeTypeId
integer
Creative Type ID
duration
integer
Duration in days
modelType
string
Bidding model type (e.g., CPM)
targetedReach
integer
Targeted reach
maxTargetedReach
integer
Maximum targeted reach
frequencyCap
integer
Campaign frequency cap
targetedImpressions
integer
Targeted impressions
maxTargetedImpressions
integer
Maximum targeted impressions
cpm
number
Cost per thousand impressions
minCpm
number
Minimum CPM
maxCpm
number
Maximum CPM
budget
number
Campaign budget
maxBudget
number
Maximum Campaign budget
strategy
string
Campaign strategy description

Get Plan Details by ID

GET

Get Political Proposal Planner details by Plan ID.

Path Parameters
planId
integer
Plan ID
Response 200
{
"success": true,
"data": {
"id": 1,
"name": "Pollies Political Planner",
"objectiveId": 3,
"totalBudget": 120000,
"details": {
"startDate": 1747195200000,
"endDate": 1777089600000,
"timezoneId": 29,
"frequencyCap": 3
},
"owId": 204366,
"statusId": 1,
"lastVisitedScreen": "Screen 1",
"cva": {
"id": 1,
"equation": "((IQMCVAAL017144|IQMCVAAL086142))",
"stateIds": [30200012, 30200013, 30200014, 30200015],
"segmentIds": [88432, 18589],
"reach": 293180
},
"targeting": {
"whiteListedLocation": {
"country": 30100001,
"states": [30200035],
"dma": [30900026],
"city": [30436781, 30436782],
"county": [30318981],
"congressionalDistrict": [30617273],
"stateHouse": [30803564],
"stateSenate": [30718340],
"zipCodes": ["10002"]
},
"blackListedLocation": {
"country": 30100001,
"states": [30200003],
"dma": [30900139],
"city": [30442811],
"county": [30321244],
"congressionalDistrict": [30601009],
"stateHouse": [30800263],
"stateSenate": [30701056],
"zipCodes": ["10002"]
},
"device": {
"deviceTypeIds": [20300004, 20300003],
"channelTypeIds": [11, 12]
},
"inventory": {
"openExchange": null,
"inventoryGroupIds": [3904859, 3897153]
},
"creative": {
"creativeTypeIds": [11, 13],
"isTvAutoBuying": true
},
"whitelistedAudiences": [1142625, 1143191, 1156665, 1144602, 1157452, 1159375],
"blacklistedAudiences": [1140931, 1142626, 1143189, 1144600, 1157451, 1159357, 1142239],
"prebidSegments": [32, 422],
"audienceSegments": [323, 232, 12],
"advanced": {
"splitTypeId": 1,
"locations": [8, 9, 10],
"devices": [20300004, 20300003],
"inventoryGroupIds": [3904859, 3897153],
"audienceTypes": [18, 19],
"creatives": [11, 13]
}
}
}
}

Get List of Political Plans

GET

Get a paginated list of Political Plans.

A plan id can be used in the Get Plan Details by ID endpoint and to perform various actions in Political Proposal Planner Management endpoints.

Query Parameters
pageNo
integer
Page number of retrieved data, default: 1
noOfEntries
integer
Number of entries returned per page, default: 50
searchField
string
Search by plan name, ID, or created by user name
sortBy
string
Sorts by ascending (+) or descending (-), default: -id
Supported values: id, name, createdOn, createdBy, startDate, endDate, objectiveId, linkedProposals
statusIds
string
Comma-separated Status IDs
objectiveIds
string
Comma-separated Objective IDs
Response Properties
id
integer
Plan ID
name
string
Plan name
statusId
integer
Plan Status ID
createdOn
integer
Unix epoch created on date, in milliseconds
createdBy
string
Created by user name
userAvatarUrl
string
URL of the user avatar
startDate
integer
Unix epoch start date, in milliseconds
endDate
integer
Unix epoch end date, in milliseconds
objectiveId
integer
Plan Objective ID
totalProposals
integer
Number of linked proposals
proposals
array of integers
Linked Proposal IDs
Response 200
{
"success": true,
"data": {
"data": [
{
"id": 1001,
"name": "Q1 2026 Campaign Strategy",
"statusId": 1,
"createdOn": 1709654400000,
"createdByUowId": 5001,
"createdBy": "John Smith",
"userAvatarUrl": "https://example.com/avatars/john-smith.png",
"startDate": 1709654400000,
"endDate": 1717430400000,
"objectiveId": 1,
"totalProposals": 3,
"proposals": [12, 231, 245]
},
{
"id": 1002,
"name": "Voter Outreach Initiative",
"statusId": 2,
"createdOn": 1710259200000,
"createdByUowId": 5002,
"createdBy": "Jane Doe",
"userAvatarUrl": "https://example.com/avatars/jane-doe.png",
"startDate": 1710259200000,
"endDate": 1718640000000,
"objectiveId": 2,
"totalProposals": 5,
"proposals": [12, 231, 323, 445, 568]
}
],
"totalRecords": 25,
"filteredRecords": 2
}
}

Get List of Proposals

GET

Get a paginated list of Political Proposals with comprehensive metadata including budget metrics, strategy type, creator details, and date ranges.

Query Parameters
pageNo
integer
Page number of retrieved data, default: 1
noOfEntries
integer
Number of entries returned per page, default: 50
searchField
string
Search by proposal name, ID, or created by user name
sortBy
string
Sorts by ascending (+) or descending (-), default: -id
Supported values: id, name, createdOn, createdBy, startDate, endDate, reach, impressions, cpm, budget
statusIds
string
Comma-separated Status IDs
planId
integer
Filter proposals by Plan ID
Response Properties
id
integer
Proposal ID
name
string
Proposal name
statusId
integer
Status ID
ioId
integer
Insertion Order ID
createdOn
integer
Unix epoch created on date, in milliseconds
createdBy
string
Created by user name
userAvatarUrl
string
URL of the user avatar
startDate
integer
Unix epoch start date, in milliseconds
endDate
integer
Unix epoch end date, in milliseconds
reach
integer
Estimated reach
impressions
integer
Estimated impressions
cpm
number
Cost per thousand impressions
budget
number
Proposal budget
frequency
integer
Frequency cap
strategyTypeId
integer
Strategy Type ID
Response 200
{
"success": true,
"data": {
"data": [
{
"id": 2001,
"name": "Q1 2026 Digital Campaign",
"statusId": 1,
"ioId": 1,
"createdOn": 1709654400000,
"createdByUserId": 5001,
"createdBy": "John Smith",
"userAvatarUrl": "https://example.com/avatars/john-smith.png",
"startDate": 1709654400000,
"endDate": 1717430400000,
"reach": 500000,
"impressions": 2000000,
"cpm": 15.50,
"budget": 31000.00,
"frequency": 3,
"strategyTypeId": 1
},
{
"id": 2002,
"name": "Voter Engagement Initiative",
"statusId": 2,
"ioId": null,
"createdOn": 1710259200000,
"createdByUserId": 5002,
"createdBy": "Jane Doe",
"userAvatarUrl": "https://example.com/avatars/jane-doe.png",
"startDate": 1710259200000,
"endDate": 1718640000000,
"reach": 750000,
"impressions": 3000000,
"cpm": 12.75,
"budget": 38250.00,
"frequency": 4,
"strategyTypeId": 2
}
],
"totalRecords": 45,
"filteredRecords": 2,
"recordsAggregation": {
"totalBudget": 69250
}
}
}

Get Proposal Details

GET

Get the complete details of a Political Proposal including budgeting metrics, timezone info, and proposed Campaigns.

Path Parameters
proposalId
integer
Proposal ID
Response 200
{
"success": true,
"data": {
"id": 14,
"name": "sample",
"startTime": 1730658720000,
"endTime": 1733250720000,
"owId": 202500,
"statusId": 1,
"ioId": 1,
"reach": 122344433,
"impressions": 12232323,
"budget": 1212233.23,
"frequencyCap": 3,
"maxReach": 200000000,
"maxImpressions": 25000000,
"maxBudget": 2500000,
"timeZoneId": 29,
"timeZoneName": "US/EASTERN",
"proposedCampaigns": [
{
"id": 101,
"name": "Sample Campaign",
"startTime": 1747195200000,
"endTime": 1777089600000,
"creativeTypeId": 13,
"duration": 30,
"modelType": "CPM",
"targetedReach": 500000,
"maxTargetedReach": 750000,
"frequencyCap": 3,
"targetedImpressions": 1500000,
"maxTargetedImpressions": 2000000,
"cpm": 2.5,
"minCpm": 1.5,
"maxCpm": 3.5,
"budget": 10000,
"maxBudget": 15000,
"strategy": "Device + Channel"
}
]
}
}

Download Proposal

GET

Generate a signed URL for downloading a Political Proposal report in CSV or XLSX format.

Path Parameters
proposalId
integer
Proposal ID
Query Parameters
fileType
integer
File type: 1 (Excel), 2 (CSV)
Response 200
{
"success": true,
"data": {
"proposalReportUrl": "https://example.s3.amazonaws.com/planner/proposal/report/download/12345/proposal_report.xlsx"
}
}

Get Proposal Summary

GET

Get a Proposal summary including reach/impressions, bid landscape, device graph, and channel graph data.

Path Parameters
proposalId
integer
Proposal ID
Response Properties
reachImpressions
object
Reach and impressions summary
reachImpressions object properties
impressions
integer
Total impressions
reach
integer
Total reach
iqmReach
integer
IQM estimated reach
bidLandscape
object
Bid landscape data grouped by creative type
bidLandscape object properties
cpm
number
CPM value
percentile
integer
Percentile
impressions
integer
Impressions at this CPM
deviceGraph
object
Device type distribution
deviceGraph object properties
device
string
Device type name
impressions
integer
Impressions for device type
percentage
number
Percentage of total
channelGraph
object
Channel type distribution
channelGraph object properties
channel
string
Channel type name
impressions
integer
Impressions for channel type
percentage
number
Percentage of total
Response 200
{
"success": true,
"data": {
"reachImpressions": {
"impressions": 23213,
"reach": 10,
"iqmReach": 206567705
},
"bidLandscape": {
"Audio": [
{ "cpm": 0, "percentile": 0, "impressions": 0 },
{ "cpm": 2, "percentile": 10, "impressions": 1261382900 }
]
},
"deviceGraph": {
"deviceTypes": [
{ "device": "CTV", "impressions": 94828374242, "percentage": 50.53 }
]
},
"channelGraph": {
"channelTypes": [
{ "channel": "CTV", "impressions": 47780138694, "percentage": 25.46 }
]
}
}
}

Get List of Strategies

GET

Get a list of Political Strategies for a specific plan with Campaign metrics, budgeting data, and targeting arrays.

Query Parameters
planId
integer required
The Plan ID to retrieve strategies for
Response Properties
id
integer
Strategy ID
name
string
Strategy name
startDate
integer
Unix epoch start date, in milliseconds
endDate
integer
Unix epoch end date, in milliseconds
duration
integer
Duration in days
strategyTypeId
integer
Strategy Type ID
CampaignsCount
integer
Number of Campaigns
proposalId
integer
Linked Proposal ID
budget
number
Strategy budget
frequency
integer
Frequency cap
reach
integer
Estimated reach
impressions
integer
Estimated impressions
cpm
number
Cost per thousand impressions
creatives
array of integers
Creative Type IDs
devices
array of integers
Device Type IDs
channels
array of integers
Channel Type IDs
Response 200
{
"success": true,
"data": [
{
"id": 3001,
"name": "sample strategy",
"startDate": 1709654400000,
"endDate": 1717430400000,
"duration": 10,
"strategyTypeId": 1,
"campaignsCount": 5,
"proposalId": 1,
"budget": 50000.00,
"frequency": 3,
"reach": 750000,
"impressions": 2250000,
"cpm": 22.22,
"creatives": [1, 2, 3],
"devices": [1, 2],
"channels": [5, 6, 7]
}
]
}

Get Strategy Details

GET

Get the details of a single Political Strategy by ID.

Path Parameters
strategyId
integer
Strategy ID
Response Properties
id
integer
Strategy ID
name
string
Strategy name
startDate
integer
Unix epoch start date, in milliseconds
endDate
integer
Unix epoch end date, in milliseconds
duration
integer
Duration in days
strategyTypeId
integer
Strategy Type ID
CampaignsCount
integer
Number of Campaigns
budget
number
Strategy budget
frequency
integer
Frequency cap
reach
integer
Estimated reach
impressions
integer
Estimated impressions
cpm
number
Cost per thousand impressions
creatives
array of integers
Creative Type IDs
devices
array of integers
Device Type IDs
channels
array of integers
Channel Type IDs
Response 200
{
"success": true,
"data": {
"id": 3001,
"name": "sample strategy",
"startDate": 1709654400000,
"endDate": 1717430400000,
"duration": 10,
"strategyTypeId": 1,
"campaignsCount": 5,
"budget": 50000,
"frequency": 3,
"reach": 750000,
"impressions": 2250000,
"cpm": 22.22,
"creatives": [1, 2, 3],
"devices": [1, 2],
"channels": [5, 6, 7]
}
}

Estimate Plan Reach

POST

Estimate the reach for a Political Plan based on optional CVA details and targeting criteria. If a cvaId is provided, CVA details are fetched from the database. The targeting and CVA data are forwarded to the data API for reach estimation.

Request Schema
cvaId
integer
CVA ID (optional, fetches CVA details if provided)
targeting
object
Targeting object (see Plan Resource Properties)
Request Sample
{
"cvaId": 12234,
"targeting": {
"whiteListedLocations": {
"country": 1,
"states": [30200035],
"dma": [30900026],
"city": [30436781],
"county": [30318981],
"congressionalDistrict": [30617273],
"stateHouse": [30803564],
"stateSenate": [30718340],
"zipCodes": [10002]
},
"blackListedLocations": {
"country": 1,
"states": [30200003],
"dma": [30900139],
"city": [30442811],
"county": [30321244],
"congressionalDistrict": [30601009],
"stateHouse": [30800263],
"stateSenate": [30701056],
"zipCodes": [10001]
},
"whiteListedAudienceIds": [1101831, 1101829],
"blackListedAudienceIds": [1101826],
"prebidSegmentIds": [323212],
"audienceSegments": [2133],
"creative": {
"creativeTypeIds": [11, 13, 14],
"isTvAutoBuying": true
},
"device": {
"deviceTypeIds": [20300001, 20300002],
"channelTypeIds": [11]
},
"inventory": {
"openExchange": {
"iabCategories": [123],
"exchanges": [90, 93]
},
"inventoryGroupIds": []
}
}
}
Response 200
{
"success": true,
"data": {
"reach": 10
}
}

Political Proposal Planner Management

Create Plan

POST
POST

Create a new ready or draft Political Plan. A ready plan requires name, details, and targeting. A draft plan requires only a name; all other fields are optional but validated if present.

See resource properties for request schema.

Request Sample
{
"name": "Plan Name",
"objectiveId": 3,
"totalBudget": 120000,
"details": {
"startDate": 1747195200000,
"endDate": 1777089600000,
"timezoneId": 29,
"frequencyCap": 3
},
"targeting": {
"whiteListedLocation": {
"country": 30100001,
"states": [30200035],
"dma": [30900026],
"city": [30436781, 30436782],
"county": [30318981],
"congressionalDistrict": [30617273],
"stateHouse": [30803564],
"stateSenate": [30718340],
"zipCodes": [10001]
},
"blackListedLocation": {
"country": 30100001,
"states": [30200003],
"dma": [30900139],
"city": [30442811],
"county": [30321244],
"congressionalDistrict": [30601009],
"stateHouse": [30800263],
"stateSenate": [30701056],
"zipCodes": [10002]
},
"device": {
"deviceTypeIds": [20300004, 20300003],
"channelTypeIds": [11, 12]
},
"inventory": {
"openExchange": null,
"inventoryGroupIds": [3904859, 3897153]
},
"creative": {
"creativeTypeIds": [11, 13],
"isTvAutoBuying": true
},
"whitelistedAudiences": [1142625, 1143191, 1156665, 1144602, 1157452, 1159375],
"blacklistedAudiences": [1140931, 1142626, 1143189, 1144600, 1157451, 1159357, 1142239],
"prebidSegments": [32, 422],
"audienceSegments": [323, 232, 12],
"advanced": {
"locations": [8, 9, 10],
"devices": [20300004, 20300003],
"inventoryGroupIds": [3904859, 3897153],
"audienceTypes": [18, 19],
"creatives": [11, 13]
}
}
}
Response 200
{
"success": true,
"data": {
"planId": 123
}
}

Edit Plan

PUT
PUT

Update an existing Political Plan or draft plan by ID. Name, details, and targeting are required for ready plans.

See resource properties for request schema.

Path Parameters
id
integer
Plan ID
Response 200
{
"success": true,
"data": {
"planId": 123
}
}

Delete Plans

DELETE

Delete one or more Political Plans by IDs. Associated strategies are also deleted, but proposals and proposed Campaigns are NOT deleted.

Query Parameters
planIds
string
Comma-separated Plan IDs to delete
Response 200
{
"success": true,
"data": {
"message": "Plans have been deleted successfully"
}
}

Activate Proposal

POST

Activate a Proposal and all of its proposed Campaigns. Provide a strategyId and the system looks up the linked Proposal.

Request Schema
strategyId
integer required
Strategy ID to activate
Request Sample
{
"strategyId": 42
}
Response 200
{
"success": true,
"data": {
"id": 7,
"message": "Plan A saved successfully."
}
}

Edit Proposal

PUT

Update a Proposal's name, date range, Campaign budgeting details, and soft-delete specified Campaigns.

Path Parameters
proposalId
integer
Proposal ID
Request Schema
name
string
Updated proposal name
startTime
integer
Unix epoch start date, in milliseconds
endTime
integer
Unix epoch end date, in milliseconds
reach
integer
Estimated reach
impressions
integer
Estimated impressions
budget
number
Proposal budget
frequencyCap
integer
Frequency cap
maxReach
integer
Maximum reach
maxImpressions
integer
Maximum impressions
maxBudget
number
Maximum budget
cpm
number
Cost per thousand impressions
proposedCampaigns
array of objects
Updated proposed Campaign details (see Proposal Resource Properties)
deletedCampaignIds
array of integers
Campaign IDs to soft-delete
Request Sample
{
"name": "Updated Proposal Name",
"startTime": 1778434118000,
"endTime": 1780162118000,
"reach": 600000,
"impressions": 2500000,
"budget": 50000.00,
"frequencyCap": 4,
"maxReach": 650000,
"maxImpressions": 3000000,
"maxBudget": 60000.00,
"cpm": 16.67,
"minCpm": 1,
"maxCpm": 50,
"minImpressions": 100000,
"minReach": 50000,
"minBudget": 10000.00,
"proposedCampaigns": [
{
"id": 1,
"name": "Proposed Campaign ID",
"startTime": 1778434118000,
"endTime": 1780162118000,
"targetedReach": 300000,
"targetedImpressions": 1500000,
"budget": 30000.00,
"frequencyCap": 3,
"maxTargetedReach": 350000,
"maxTargetedImpressions": 2000000,
"maxBudget": 35000.00,
"cpm": 20.00,
"minCpm": 1,
"maxCpm": 50,
"minTargetedImpressions": 50000,
"minTargetedReach": 25000,
"minBudget": 5000.00
}
],
"deletedCampaignIds": [102, 103]
}
Response 200
{
"success": true,
"data": {
"id": 42,
"message": "Proposal updated successfully."
}
}

Generate IO and Campaigns

POST

Convert a Political Proposal into an Insertion Order with draft Campaigns. Updates the Proposal, sets status to PROCESSING, and triggers async Campaign generation.

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

Delete Proposals

DELETE

Delete one or more Political Proposals by IDs. Associated proposed Campaigns are also deleted.

Query Parameters
proposalIds
string
Comma-separated Proposal IDs to delete
Response 200
{
"success": true,
"data": {
"message": "Proposals have been deleted successfully"
}
}

Restore Proposals

PATCH

Restore expired Proposals back to ready status by recalculating their budgeting based on new start and end dates.

Request Schema
proposalIds
array of integers
Proposal IDs to restore
startTime
integer
New Unix epoch start date, in milliseconds
endTime
integer
New Unix epoch end date, in milliseconds
Request Sample
{
"proposalIds": [2, 3],
"startTime": 1778434118000,
"endTime": 1780162118000
}
Response 200
{
"success": true,
"data": {
"message": "Proposals restored successfully"
}
}

Create CVA Details

POST

Create a new Custom Voter Audience (CVA) detail record with segment IDs, state IDs, reach value, and an equation string.

Request Schema
stateIds
array of integers
State IDs
reach
integer
CVA reach
equation
string
CVA segment equation string
Request Sample
{
"stateIds": [123, 456],
"reach": 1234566,
"equation": "(iqm1234&iqm3456)|(iqm21345|!iqm45675)"
}
Response 200
{
"success": true,
"data": {
"id": 12345
}
}

Update CVA Details

PATCH

Update an existing Custom Voter Audience (CVA) detail record with new state IDs, reach value, and an equation string.

Path Parameters
cvaId
integer
CVA ID
Request Schema
stateIds
array of integers
State IDs
reach
integer
CVA reach
equation
string
CVA segment equation string
Request Sample
{
"stateIds": [123, 456],
"reach": 1234566,
"equation": "(iqm1234&iqm3456)|(iqm21345|!iqm45675)"
}
Response 200
{
"success": true,
"data": {
"id": 12345
}
}

Generate Custom Strategies

POST

Generate custom strategies for an existing plan by calling the DSI API with the provided targeting and budget parameters. Persists the resulting strategies, proposals, and Campaigns, then returns strategy summaries.

Request Schema
planId
integer
Plan ID
strategyName
string
Custom strategy name
name
string
Plan name
objectiveId
integer
Plan Objective ID
totalBudget
number
Total budget
details
object
Plan details (see Plan Resource Properties)
targeting
object
Targeting object (see Plan Resource Properties)
cva
object
CVA details (see Plan Resource Properties)
Response 200
{
"success": true,
"data": [
{
"id": 1,
"name": "Maximum Reach",
"startDate": 1747195200000,
"endDate": 1777089600000,
"strategyTypeId": 1,
"campaignsCount": 3,
"budget": 40000,
"frequency": 3,
"reach": 500000,
"impressions": 2000000,
"cpm": 15.5,
"creatives": [11, 13],
"devices": [20300004, 20300003],
"channels": [11, 12]
}
]
}

Delete Strategy

DELETE

Delete a custom Strategy by ID. Associated proposals and proposed Campaigns are NOT deleted. Only custom strategies can be deleted.

Path Parameters
strategyId
integer
Strategy ID
Response 200
{
"success": true,
"data": {
"message": "Custom Strategy 1 has been deleted successfully"
}
}

More Political Planner Details

Get Supported Parameters

GET

Get the supported parameters for Political Plan configuration including CVA and targeting options. Each parameter value indicates whether it is supported (true) or unsupported (false).

Response 200
{
"success": true,
"data": {
"cva": {
"equation": false,
"stateIds": false,
"segmentIds": false,
"id": true,
"reach": true
},
"targeting": {
"whitelistedLocation": true,
"blacklistedLocation": true,
"whitelistedAudiences": true,
"blacklistedAudiences": true,
"prebidSegments": false,
"audienceSegments": true,
"creative": {
"creativeTypeIds": true
},
"device": {
"deviceTypeIds": true,
"channelTypeIds": true
},
"inventory": true
}
}
}

Get Targeting Types

GET

Get the list of available targeting types for Political Planners.

Response Properties
id
integer
Targeting type ID
name
string
Targeting type name
order
integer
Display order
displayName
string
Targeting type display name
Response 200
{
"success": true,
"data": [
{
"id": 1,
"name": "Location",
"order": 1,
"displayName": "Location"
}
]
}

Get Strategy Types

GET

Get the list of available strategy types for Political Planners.

Response Properties
id
integer
Strategy type ID
name
string
Strategy type name
order
integer
Display order
displayName
string
Strategy type display name
Response 200
{
"success": true,
"data": [
{
"id": 1,
"name": "maximum_reach",
"order": 1,
"displayName": "Maximum Reach"
},
{
"id": 2,
"name": "maximum_impressions",
"order": 2,
"displayName": "Maximum Impressions"
}
]
}

Get Split Types

GET

Get the list of available split types for Political Planners.

Response Properties
id
integer
Split type ID
name
string
Split type name
order
integer
Display order
displayName
string
Split type display name
Response 200
{
"success": true,
"data": [
{
"id": 1,
"name": "ai",
"order": 1,
"displayName": "AI"
},
{
"id": 2,
"name": "manual",
"order": 2,
"displayName": "Manual"
}
]
}

Get Plan Statuses

GET

Get the list of available plan statuses for Political Planners.

Response Properties
id
integer
Plan status ID
name
string
Plan status name
order
integer
Display order
displayName
string
Plan status display name
Response 200
{
"success": true,
"data": [
{
"id": 1,
"name": "draft",
"order": 1,
"displayName": "Draft"
},
{
"id": 2,
"name": "ready",
"order": 2,
"displayName": "Ready"
}
]
}

Get Plan Objectives

GET

Get the list of available plan objectives for Political Planners.

Response Properties
id
integer
Plan objective ID
name
string
Plan objective name
order
integer
Display order
displayName
string
Plan objective display name
Response 200
{
"success": true,
"data": [
{
"id": 1,
"name": "reach forecasting",
"order": 1,
"displayName": "Reach Forecasting"
},
{
"id": 2,
"name": "budget estimation",
"order": 2,
"displayName": "Budget Estimation"
},
{
"id": 3,
"name": "format selection",
"order": 3,
"displayName": "Format Selection"
}
]
}
Have a question?
Was this page helpful?