Skip to main content

Planner API

This page covers the methods and endpoints associated with Healthcare Proposal Planners (HCP). With the Planner API you can create, retrieve, update, and manage HCP planners.

Healthcare Proposal Planner Details

HCP Planner Resource Properties

Resource Properties
id
integer
Plan ID
name
string
Plan name
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
budgetModeId
integer
Budget mode ID
budget
integer
Planned budget
maxBudget
integer
Maximum budget
reach
integer
Reach
maxReach
integer
Maximum reach
impressions
integer
Impressions
maxImpressions
integer
Maximum impressions
frequencyCap
integer
Frequency cap
audienceBlocks
array of objects
Audience Blocks object
audienceBlocks object properties
audienceSelectionMethodId
integer
Audience Selection Method ID
npiTypeIds
array of integers
NPI Type IDs
speciality
object
Specialty object
speciality object properties
specialityIds
array of integers
Specialty IDs
allSpecialitiesSelected
boolean
All specialties selected
accounts
array of objects
Accounts
accounts object properties
accountTypeId
integer
Account Type ID
accountIds
array of integers
Account IDs
allAccountsSelected
boolean
All accounts selected
locations
object
Locations object
locations object properties
countryId
integer
Country ID
whiteListedStateIds
array of integers
Whitelisted State IDs
blackListedStateIds
array of integers
Blacklisted State IDs
whiteListedCityIds
array of integers
Whitelisted City IDs
blackListedCityIds
array of integers
Blacklisted City IDs
whiteListedZipcodes
array of strings
Whitelisted Zipcode IDs
blackListedZipcodes
array of strings
Blacklisted Zipcode IDs
dataPartners
object
Data Partners object
dataPartners object properties
dataPartnerIds
array of integers
Data Partner IDs
allDataPartnersSelected
boolean
All data partners selected
storagePathId
integer
Storage Path ID
storagePath
string
Storage Path
storageFileName
string
Storage File Name
storageFileSize
integer
Storage File Size
storageFileRows
integer
Storage File Rows
includeAudienceIds
array of integers
Included Audience IDs
excludeAudienceIds
array of integers
Excluded Audience IDs
planLevelTargeting
object
Plan Level Targeting object
planLevelTargeting object properties
devices
object
Devices object
devices object properties
deviceTypeIds
array of integers
Device Type IDs
allDeviceTypesSelected
boolean
All device types selected
channels
object
Channels object
channels object properties
channelTypeIds
array of integers
Channel Type IDs
allChannelTypesSelected
boolean
All channel types selected
creativeTypes
object
Creative Types object
creativeTypes object properties
creativeTypeIds
array of integers
Creative Type IDs
allCreativeTypesSelected
boolean
All creative types selected
inventory
object
Inventory
inventory object properties
openExchangeVO
object
Open Exchange VO object
openExchangeVO object properties
exchangeIds
array of integers
Exchange IDs
allExchangesSelected
boolean
All exchanges selected
iabCategoryIds
array of integers
IAB Category IDs
allIabCategoriesSelected
boolean
All IAB categories selected
inventoryGroup
object
Inventory Group
splitStrategy
array of objects
Split Strategy object
splitStrategy object properties
splitDimensionType
object
Split Dimension Type object
splitDimensionType object properties
id
integer
Split Dimension ID
name
string
Name
displayName
string
Display Name
order
integer
Order
selectedValueIds
array of integers
Selected Value IDs
campaigns
array of objects
Campaigns object
campaigns object properties
id
integer
Campaign ID
name
string
Campaign name
startDate
integer
Unix epoch start date, in milliseconds
endDate
integer
Unix epoch end date, in milliseconds
budget
integer
Campaign budget
maxBudget
integer
Campaign maximum budget
mediaCpm
number
Media CPM
dataCpm
number
Data CPM
budgetPercentage
number
Budget Percentage
reach
integer
Reach
maxReach
integer
Maximum Reach
impressions
integer
Impressions
maxImpressions
integer
Maximum Impressions
isAbm
boolean
Is ABM
targeting
object
Targeting object
targeting object properties
dataPartnerIds
array of integers
Data Partner IDs
creativeTypeIds
integer
Creative Type IDs
deviceTypeIds
array of integers
Device Type IDs
npiTypeIds
integer
NPI Type IDs
audienceTypeIds
array of integers
Audience Type IDs

HCP Planner Details by ID

GET

Get Healthcare Proposal Planner details by ID.

Path Parameters
planId
integer
Plan ID
Response 200
{
"success": true,
"data": {
"id": 1,
"name": "Q4 Diabetes Awareness Campaign",
"startDate": 1732707706666,
"endDate": 1733312506666,
"timezoneId": 3,
"budgetModeId": 1,
"budget": 100000,
"maxBudget": 120000,
"reach": 50000,
"maxReach": 70000,
"impressions": 200000,
"maxImpressions": 250000,
"frequencyCap": 3,
"audienceBlocks": [
{
"audienceSelectionMethodId": 1,
"npiTypeIds": [3, 4],
"speciality": {
"specialityIds": [406000001, 406000002],
"allSpecialitiesSelected": false
},
"accounts": [
{
"accountTypeId": 403000007,
"accountIds": [440016, 440023],
"allAccountsSelected": false
}
],
"locations": {
"countryId": 30100001,
"whiteListedStateIds": [],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [],
"blackListedZipcodes": []
},
"dataPartners": {
"dataPartnerIds": [7, 8],
"allDataPartnersSelected": null
},
"storagePathId": null,
"storagePath": null,
"storageFileName": null,
"storageFileSize": null,
"storageFileRows": null,
"includeAudienceIds": [],
"excludeAudienceIds": []
},
{
"audienceSelectionMethodId": 2,
"npiTypeIds": [3],
"speciality": null,
"accounts": [],
"locations": null,
"dataPartners": {
"dataPartnerIds": [8, 10],
"allDataPartnersSelected": null
},
"storagePath": "tmp/aud_uploads/upload_block2.csv",
"storagePathId": 1234,
"storageFileName": "upload_block2.csv",
"storageFileSize": 200,
"storageFileRows": 500,
"includeAudienceIds": [],
"excludeAudienceIds": []
},
{
"audienceSelectionMethodId": 3,
"npiTypeIds": [],
"speciality": null,
"accounts": [],
"locations": null,
"dataPartners": null,
"storagePath": null,
"includeAudienceIds": [1137702, 1101834, 1101831],
"excludeAudienceIds": [1102476]
}
],
"planLevelTargeting": {
"devices": {
"deviceTypeIds": [20300001, 20300002],
"allDeviceTypesSelected": null
},
"channels": {
"channelTypeIds": [11, 12],
"allChannelTypesSelected": null
},
"creativeTypes": {
"creativeTypeIds": [11, 14, 15],
"allCreativeTypesSelected": null
},
"inventory": {
"openExchangeVO": {
"exchangeIds": [16, 19],
"allExchangesSelected": null,
"iabCategoryIds": [11, 21],
"allIabCategoriesSelected": null
},
"inventoryGroup": null
}
},
"splitStrategy": [
{
"splitDimensionType": {
"id": 1,
"name": "creative_type",
"displayName": "Split by Creative Type",
"order": 1
},
"selectedValueIds": [1, 2]
},
{
"splitDimensionType": {
"id": 1,
"name": "creative_type",
"displayName": "Split by Creative Type",
"order": 1
},
"selectedValueIds": [1, 3]
}
],
"campaigns": [
{
"id": 1,
"name": "Filter-Block1•Device1•Creative1",
"startDate": 1732707706666,
"endDate": 1733312506666,
"budget": 16000,
"maxBudget": 18000,
"mediaCpm": 22.5,
"dataCpm": 5.0,
"budgetPercentage": 16.0,
"reach": 11000,
"maxReach": 70000,
"impressions": 35000,
"maxImpressions": 250000,
"isAbm": false,
"targeting": {
"dataPartnerIds": [5, 7],
"creativeTypeIds": 1,
"deviceTypeIds": [1],
"npiTypeIds": 1,
"audienceTypeIds": []
}
}
]
}
}

Get List of HCP Planners

GET

Get a list of HCP Planners.

A plan id can be used in the HCP Planner Details by ID endpoint and to perform various actions in Healthcare 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
Filter results by search field: account name
sortBy
string
Sorts by ascending (+) or descending (-)
Supported values: id, name, createdBy, createdOn, startDate, reach, impression, budget
statusIds
string
Comma separated status IDs
budgetTypeIds
string
Comma separated budget type IDs
startDate
integer
Epoch time in milliseconds
endDate
integer
Epoch time in milliseconds
Response Properties
id
integer
Plan ID
name
string
Plan name
statusId
integer
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
reach
integer
Reach
impression
integer
Impression
budget
integer
Budget
ioId
integer
IO ID
budgetTypeId
integer
Budget Type ID
campaignCount
integer
Number of campaigns associated with the plan
lastUpdated
integer
Unix epoch last updated date, in milliseconds
Response 200
{
"success": true,
"data": {
"data": [
{
"id": 2016,
"name": "test",
"statusId": 3,
"createdOn": 1752836679704,
"createdBy": "Harshita Bhambhani",
"userAvatarUrl": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/HB.png",
"startDate": 1752838419000,
"endDate": 1753934400000,
"reach": 206567705,
"impression": 37182186900,
"budget": 334639683,
"ioId": 0,
"budgetTypeId": 1,
"campaignCount": 0,
"lastUpdated": 1752816878383
}
],
"totalRecords": 1,
"filteredRecords": 1
}
}

Get List of Accounts

GET

Get list of HCP accounts.

Query Parameters
pageNo
integer
Page number of retrieved data, default: 1
noOfEntries
integer
Number of entries returned per page, default: 50
searchField
string
Filter results by search field: account name
sortBy
string
Sorts by ascending (+) or descending (-), default: +displayName
Supported values: id, name, createdOn
accountTypeIds
array of integer
Account type IDs
accountIds
array of integer
Account IDs
Response Properties
id
integer
Account ID
name
string
Account name
displayName
string
Account display name
displayOrder
integer
Account display order
accountTypeId
integer
Account type ID
reach
integer
Account reach
Response 200
{
"success": true,
"data": {
"accountsList": [
{
"id": 1,
"name": "Account 1",
"displayName": "Account 1",
"displayOrder": 1,
"accountTypeId": 1,
"reach": 1000
},
{
"id": 2,
"name": "Account 2",
"displayName": "Account 2",
"displayOrder": 2,
"accountTypeId": 1,
"reach": 1000
}
],
"totalRecords": 2,
"filteredRecords": 2
}
}

Download HCP Planner

GET

Download the Healthcare Proposal Planner file.

Request Schema
planId
integer
Plan ID
fileTypeId
integer
File Type ID (1: xlsx)
Request Sample
{
"planId": 123,
"fileTypeId": 1
}
Response 200
{
"success": true,
"data": {
"downloadUrl": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/plan_exports/hcp_planner_20240101120000.xlsx"
}
}

Healthcare Proposal Planner Management

Create HCP Planner

POST
POST

Create a new ready or draft Healthcare Proposal Planner. See resource properties for request schema.

Request Sample
{
"id": 123,
"name": "Sample HCP Planner Request",
"startTime": 1735124399000,
"endTime": 1757534400000,
"timezoneId": 4,
"budgetTypeId": 1,
"budget": 75000,
"maxBudget": 80000,
"reach": 250000,
"maxReach": 300000,
"impression": 1000000,
"maxImpressions": 1200000,
"frequencyCap": 5,
"audienceBlocks": [
{
"audienceSelectionMethodId": 1,
"npiTypeIds": [
1,
2
],
"speciality": {
"specialityIds": [
101,
102
],
"allSpecialitiesSelected": false
},
"accounts": [
{
"accountTypeId": 1,
"accountIds": [
201,
202
],
"allAccountsSelected": false
},
{
"accountTypeId": 2,
"accountIds": [],
"allAccountsSelected": true
}
],
"locations": {
"countryId": 1,
"whiteListedStateIds": [
501,
502
],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [
90210,
10001
],
"blackListedZipcodes": []
},
"dataPartners": {
"dataPartnerIds": [
1,
2
],
"allDataPartnersSelected": false
},
"storagePathId": null,
"includeAudienceIds": null,
"excludeAudienceIds": null
},
{
"audienceSelectionMethodId": 2,
"npiTypeIds": [
1
],
"speciality": {
"specialityIds": [
101,
102
],
"allSpecialitiesSelected": false
},
"accounts": null,
"locations": {
"countryId": 1,
"whiteListedStateIds": [
501,
502
],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [
90210,
10001
],
"blackListedZipcodes": []
},
"dataPartners": {
"dataPartnerIds": [
1,
2
],
"allDataPartnersSelected": false
},
"storagePathId": 1,
"includeAudienceIds": null,
"excludeAudienceIds": null
},
{
"audienceSelectionMethodId": 3,
"npiTypeIds": null,
"speciality": null,
"accounts": null,
"locations": null,
"dataPartners": null,
"storagePathId": null,
"includeAudienceIds": [
301,
302
],
"excludeAudienceIds": [
401
]
}
],
"planLevelTargeting": {
"devices": {
"deviceTypeIds": [
1,
2
],
"allDeviceTypesSelected": false
},
"channels": {
"channelTypeIds": [
1,
2
],
"allChannelTypesSelected": false
},
"creativeTypes": {
"creativeTypeIds": [
10,
11
],
"allCreativeTypesSelected": false,
"isTvAutoBuying": true
},
"inventory": {
"openExchanges": {
"exchangeIds": [
1,
2
],
"allExchangesSelected": false,
"iabCategoryIds": [
1,
2
],
"allIabCategoriesSelected": false
},
"inventoryGroup": {
"inventoryGroupIds": [
1,
2
],
"allInventoryGroupsSelected": false
}
}
},
"splitStrategy": [
{
"splitDimensionTypeId": 1,
"selectedValueIds": [
10,
11
]
}
],
"campaigns": [
{
"id": null,
"name": "Campaign A",
"startTime": 1754942400000,
"endTime": 1757534400000,
"budget": 37500,
"maxBudget": 40000,
"mediaCpm": 50,
"dataCpm": 15,
"reach": 125000,
"maxReach": 150000,
"impressions": 500000,
"maxImpressions": 600000,
"isAbm": false,
"targeting": {
"dataPartnerIds": [
1
],
"creativeTypeId": 10,
"deviceTypeIds": [
1
],
"npiTypeId": 1,
"audienceTypeIds": [
1
]
}
}
]
}

Update HCP Planner

PUT

Update an existing Healthcare Proposal Planner by ID. See resource properties for request schema.

Path Parameters
planId
integer
Plan ID
Response 200
{
"id": 123,
"name": "Sample HCP Planner Request",
"startTime": 1735124399000,
"endTime": 1757534400000,
"timezoneId": 4,
"budgetTypeId": 1,
"budget": 75000,
"maxBudget": 80000,
"reach": 250000,
"maxReach": 300000,
"impression": 1000000,
"maxImpressions": 1200000,
"frequencyCap": 5,
"audienceBlocks": [
{
"audienceSelectionMethodId": 1,
"npiTypeIds": [
1,
2
],
"speciality": {
"specialityIds": [
101,
102
],
"allSpecialitiesSelected": false
},
"accounts": [
{
"accountTypeId": 1,
"accountIds": [
201,
202
],
"allAccountsSelected": false
},
{
"accountTypeId": 2,
"accountIds": [],
"allAccountsSelected": true
}
],
"locations": {
"countryId": 1,
"whiteListedStateIds": [
501,
502
],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [
90210,
10001
],
"blackListedZipcodes": []
},
"dataPartners": {
"dataPartnerIds": [
1,
2
],
"allDataPartnersSelected": false
},
"storagePathId": null,
"includeAudienceIds": null,
"excludeAudienceIds": null
},
{
"audienceSelectionMethodId": 2,
"npiTypeIds": [
1
],
"speciality": {
"specialityIds": [
101,
102
],
"allSpecialitiesSelected": false
},
"accounts": null,
"locations": {
"countryId": 1,
"whiteListedStateIds": [
501,
502
],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [
90210,
10001
],
"blackListedZipcodes": []
},
"dataPartners": {
"dataPartnerIds": [
1,
2
],
"allDataPartnersSelected": false
},
"storagePathId": 1,
"includeAudienceIds": null,
"excludeAudienceIds": null
},
{
"audienceSelectionMethodId": 3,
"npiTypeIds": null,
"speciality": null,
"accounts": null,
"locations": null,
"dataPartners": null,
"storagePathId": null,
"includeAudienceIds": [
301,
302
],
"excludeAudienceIds": [
401
]
}
],
"planLevelTargeting": {
"devices": {
"deviceTypeIds": [
1,
2
],
"allDeviceTypesSelected": false
},
"channels": {
"channelTypeIds": [
1,
2
],
"allChannelTypesSelected": false
},
"creativeTypes": {
"creativeTypeIds": [
10,
11
],
"allCreativeTypesSelected": false,
"isTvAutoBuying": true
},
"inventory": {
"openExchanges": {
"exchangeIds": [
1,
2
],
"allExchangesSelected": false,
"iabCategoryIds": [
1,
2
],
"allIabCategoriesSelected": false
},
"inventoryGroup": {
"inventoryGroupIds": [
1,
2
],
"allInventoryGroupsSelected": false
}
}
},
"splitStrategy": [
{
"splitDimensionTypeId": 1,
"selectedValueIds": [
10,
11
]
}
],
"campaigns": [
{
"id": null,
"name": "Campaign A",
"startTime": 1754942400000,
"endTime": 1757534400000,
"budget": 37500,
"maxBudget": 40000,
"mediaCpm": 50,
"dataCpm": 15,
"reach": 125000,
"maxReach": 150000,
"impressions": 500000,
"maxImpressions": 600000,
"isAbm": false,
"targeting": {
"dataPartnerIds": [
1
],
"creativeTypeId": 10,
"deviceTypeIds": [
1
],
"npiTypeId": 1,
"audienceTypeIds": [
1
]
}
}
]
}

Delete HCP Planner

DELETE

Delete one or more Healthcare Proposal Planners by IDs.

Query Parameters
proposalIds
string
Comma separated Proposal IDs to delete
planIds
string
Comma separated Plan IDs to delete
Response Properties
message
string
Success message
Response 200
{
"success": true,
"data": {
"message": "Sample deleted successfully"
}
}

Validate Planner Name

POST

Check if a Healthcare Proposal Planner name is available for use within the Organization. This endpoint also validates names for character limit and vertical type.

Request Schema
name
string
Planner name to validate

Response Properties
available
boolean
Indicates if the planner name is available
Request Sample
{
"name": "Q4 Diabetes Awareness Campaign"
}
Response 200
{
"success": true,
"data": {
"available": false
}
}

Get Targeting Graphs

POST

This API calculates distribution statistics for devices, creative types, and channels across the entire planner configuration. The payload accepts multiple Audience blocks and plan-level targeting and returns aggregated distribution data for each targeting dimension.

Use this API to visualize how different targeting dimensions are distributed across audience blocks and plan-level targeting in a Healthcare Proposal Planner.

Request Schema
audienceBlocks
array of objects
Array of Audience block objects
audienceBlocks object properties
audienceSelectionMethodId
integer
Audience selection method ID
npiTypeIds
array of integers
NPI Type IDs
speciality
object
Specialty object
speciality object properties
specialityIds
array of integers
Specialty IDs
allSpecialitiesSelected
boolean
All specialties selected
accounts
array of objects
Accounts
accounts object properties
accountTypeId
integer
Account Type ID
accountIds
array of integers
Account IDs
allAccountsSelected
boolean
All accounts selected
locations
object
Locations object
locations object properties
countryId
integer
Country ID
whiteListedStateIds
array of integers
Whitelisted State IDs
blackListedStateIds
array of integers
Blacklisted State IDs
whiteListedCityIds
array of integers
Whitelisted City IDs
blackListedCityIds
array of integers
Blacklisted City IDs
whiteListedZipcodes
array of strings
Whitelisted Zipcodes
blackListedZipcodes
array of strings
Blacklisted Zipcodes
dataPartners
object
Data Partners object
dataPartners object properties
dataPartnerIds
array of integers
Data Partner IDs
allDataPartnersSelected
boolean
All data partners selected
storagePathId
integer
Storage Path ID
storagePath
string
Storage Path
storageFileName
string
Storage File Name
storageFileSize
integer
Storage File Size
storageFileRows
integer
Storage File Rows
includeAudienceIds
array of integers
Included Audience IDs
excludeAudienceIds
array of integers
Excluded Audience IDs
planLevelTargeting
object
Plan level targeting object
planLevelTargeting object properties
devices
object
Devices object
devices object properties
deviceTypeIds
array of integers
Device Type IDs
allDeviceTypesSelected
boolean
All device types selected
channels
object
Channels object
channels object properties
channelTypeIds
array of integers
Channel Type IDs
allChannelTypesSelected
boolean
All channel types selected
creativeTypes
object
Creative Types object
creativeTypes object properties
creativeTypeIds
array of integers
Creative Type IDs
allCreativeTypesSelected
boolean
All creative types selected
inventory
object
Inventory
inventory object properties
openExchangeVO
object
Open Exchange VO object
openExchangeVO object properties
exchangeIds
array of integers
Exchange IDs
allExchangesSelected
boolean
All exchanges selected
iabCategoryIds
array of integers
IAB Category IDs
allIabCategoriesSelected
boolean
All IAB categories selected
inventoryGroup
object
Inventory Group
owId
integer
Organization Wrapper ID

Response Properties
deviceTypeDistribution
object
Device Type Distribution object
deviceTypeDistribution object properties
totalNPIs
integer
Total NPIs
breakdown
array of objects
Breakdown array
breakdown object properties
deviceTypeId
integer
Device Type ID
percentage
number
Percentage
creativeTypeDistribution
array of objects
Creative Type Distribution array
creativeTypeDistribution object properties
creativeTypeId
integer
Creative Type ID
impressions
integer
Impressions
cpm
number
CPM
channelTypeDistribution
object
Channel Type Distribution object
channelTypeDistribution object properties
totalNPIs
integer
Total NPIs
breakdown
array of objects
Breakdown array
breakdown object properties
channelTypeId
integer
Channel Type ID
percentage
number
Percentage
Request Sample
{
"audienceBlocks": [
{
"audienceSelectionMethodId": 1,
"npiTypeIds": [3, 4],
"speciality": {
"specialityIds": [406000001, 406000002],
"allSpecialitiesSelected": false
},
"accounts": [
{
"accountTypeId": 403000007,
"accountIds": [440016, 440023],
"allAccountsSelected": false
}
],
"locations": {
"countryId": 30100001,
"whiteListedStateIds": [],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [],
"blackListedZipcodes": []
},
"dataPartners": {
"dataPartnerIds": [7, 8],
"allDataPartnersSelected": null
},
"storagePathId": 0,
"storagePath": "string",
"storageFileName": "string",
"storageFileSize": 0,
"storageFileRows": 0,
"includeAudienceIds": [
0
],
"excludeAudienceIds": [
0
]
}
],
"planLevelTargeting": {
"devices": {
"deviceTypeIds": [20300001, 20300002],
"allDeviceTypesSelected": null
},
"channels": {
"channelTypeIds": [11, 12],
"allChannelTypesSelected": null
},
"creativeTypes": {
"creativeTypeIds": [11, 14, 15],
"allCreativeTypesSelected": null
},
"inventory": {
"openExchanges": {
"exchangeIds": [16, 19],
"allExchangesSelected": null,
"iabCategoryIds": [11, 21],
"allIabCategoriesSelected": null
}
}
},
"owId": 0
}
Response 200
{
"success": true,
"data": {
"deviceTypeDistribution": {
"totalNPIs": 2025510,
"breakdown": [
{ "deviceTypeId": 1, "percentage": 20 },
{ "deviceTypeId": 2, "percentage": 35 },
{ "deviceTypeId": 3, "percentage": 15 },
{ "deviceTypeId": 4, "percentage": 30 }
]
},
"creativeTypeDistribution": [
{
"creativeTypeId": 1,
"impressions": 1600000,
"cpm": 72.0
},
{
"creativeTypeId": 2,
"impressions": 1200000,
"cpm": 65.0
}
],
"channelTypeDistribution": {
"totalNPIs": 2025510,
"breakdown": [
{ "channelTypeId": 1, "percentage": 60 },
{ "channelTypeId": 2, "percentage": 40 }
]
}
}
}

Get Audience Graph

POST

This API accepts Audience block criteria and plan level targeting to return an Audience graph for Healthcare Proposal Planners. The Audience graph contains granular reach data broken down by NPI types, specialties, and data partner overlap.

Use this API to get an Audience composition analysis for a single targeting configuration, which is especially useful for understanding data partner overlap and incremental reach.

Request Schema
audienceSelectionMethodId
integer
Audience selection method ID
npiTypeIds
array of integers
NPI Type IDs
speciality
object
Specialty object
speciality object properties
specialityIds
array of integers
Specialty IDs
allSpecialitiesSelected
boolean
All specialties selected
accounts
array of objects
Accounts
accounts object properties
accountTypeId
integer
Account Type ID
accountIds
array of integers
Account IDs
allAccountsSelected
boolean
All accounts selected
locations
object
Locations object
locations object properties
countryId
integer
Country ID
whiteListedStateIds
array of integers
Whitelisted State IDs
blackListedStateIds
array of integers
Blacklisted State IDs
whiteListedCityIds
array of integers
Whitelisted City IDs
blackListedCityIds
array of integers
Blacklisted City IDs
whiteListedZipcodes
array of strings
Whitelisted Zipcodes
blackListedZipcodes
array of strings
Blacklisted Zipcodes
dataPartners
object
Data Partners object
dataPartners object properties
dataPartnerIds
array of integers
Data Partner IDs
allDataPartnersSelected
boolean
All data partners selected
storagePathId
integer
Storage Path ID
storagePath
string
Storage Path
storageFileName
string
Storage File Name
storageFileSize
integer
Storage File Size
storageFileRows
integer
Storage File Rows
includeAudienceIds
array of integers
Included Audience IDs
excludeAudienceIds
array of integers
Excluded Audience IDs

Response Properties
npiTypes
array of objects
NPI Types array
npiTypes object properties
id
integer
ID
reach
integer
Reach
specialties
array of objects
Specialties array
specialties object properties
id
integer
ID
reach
integer
Reach
accountStats
object
Account Stats object
accountStats object properties
accountsTypeCount
integer
Accounts Type Count
accountsCount
integer
Accounts Count
accounts
array of objects
Accounts array
accounts object properties
id
integer
ID
reach
integer
Reach
dataPartnerStats
object
Data Partner Stats object
dataPartnerStats object properties
partners
array of objects
Partners array
partners object properties
id
integer
ID
reach
integer
Reach
coverage
number
Coverage
venn
array of objects
Venn array
venn object properties
partnerIds
array of integers
Partner IDs
count
integer
Count
reach
integer
Reach
coveragePercentage
number
Coverage Percentage
intersectionPercentage
number
Intersection Percentage
Request Sample
{
"audienceSelectionMethodId": 1,
"npiTypeIds": [
1,
2
],
"speciality": {
"specialityIds": [
1,
2
],
"allSpecialitiesSelected": false
},
"accounts": [
{
"accountTypeId": 403000007,
"accountIds": [
1,
2
],
"allAccountsSelected": false
}
],
"locations": {
"countryId": 1,
"whiteListedStateIds": [],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [],
"blackListedZipcodes": []
},
"dataPartners": {
"dataPartnerIds": [
1,
2
],
"allDataPartnersSelected": null
},
"storagePathId": null,
"storagePath": null,
"storageFileName": null,
"storageFileSize": null,
"storageFileRows": null,
"includeAudienceIds": [],
"excludeAudienceIds": []
}
Response 200
{
"success": true,
"data": {
"npiTypes": [
{
"id": 3,
"reach": 2
}
],
"specialties": [
{
"id": 406099999,
"reach": 2
},
{
"id": 406000018,
"reach": 2
},
{
"id": 406000136,
"reach": 1
},
{
"id": 406000106,
"reach": 1
}
],
"accountStats": {
"accountsTypeCount": 1,
"accountsCount": 2,
"accounts": [
{
"id": 440023,
"reach": 1
},
{
"id": 440016,
"reach": 1
}
]
},
"dataPartnerStats": {
"partners": [
{
"id": 7,
"reach": 2,
"coverage": 100
},
{
"id": 8,
"reach": 2,
"coverage": 100
},
{
"id": 10,
"reach": 2,
"coverage": 100
}
],
"venn": [
{
"partnerIds": [
7
],
"count": 0,
"reach": 2,
"coveragePercentage": 100,
"intersectionPercentage": 100
},
{
"partnerIds": [
8
],
"count": 0,
"reach": 2,
"coveragePercentage": 100,
"intersectionPercentage": 100
},
{
"partnerIds": [
10
],
"count": 0,
"reach": 2,
"coveragePercentage": 100,
"intersectionPercentage": 100
},
{
"partnerIds": [
7,
8
],
"count": 0,
"reach": 2,
"coveragePercentage": 100,
"intersectionPercentage": 100
},
{
"partnerIds": [
7,
10
],
"count": 0,
"reach": 2,
"coveragePercentage": 100,
"intersectionPercentage": 100
},
{
"partnerIds": [
8,
10
],
"count": 0,
"reach": 2,
"coveragePercentage": 100,
"intersectionPercentage": 100
},
{
"partnerIds": [
7,
8,
10
],
"count": 2,
"reach": 2,
"coveragePercentage": 100,
"intersectionPercentage": 100
}
]
}
}
}

Generate Campaigns Plan

POST

This API accepts a planner configuration with Audience blocks, plan level targeting, and split strategy to generate Campaigns data. It then returns that same input data with an array of generated Campaigns data based on the input criteria. That response data can be used in the Publish Campaigns Plan API to create draft Campaigns in IQM.

This API also validates that the user has permissions for this healthcare tool.

See the full resource properties for request schema and response properties.

Request Sample
{
"name": "Q4 Diabetes Awareness Campaign",
"startTime": 1732707706666,
"endTime": 1733312506666,
"timezoneId": 3,
"budgetTypeId": 1,
"budget": 100000,
"maxBudget": 120000,
"reach": 50000,
"maxReach": 70000,
"impressions": 200000,
"maxImpressions": 250000,
"frequencyCap": 3,
"audienceBlocks": [
{
"audienceSelectionMethodId": 1,
"npiTypeIds": [3, 4],
"speciality": {
"allSpecialitiesSelected": true
},
"accounts": [
{
"allAccountsSelected": true
}
],
"locations": {
"countryId": 30100001
},
"dataPartners": {
"allDataPartnersSelected": true
},
"storagePath": null,
"includeAudienceIds": [],
"excludeAudienceIds": []
},
{
"audienceSelectionMethodId": 2,
"npiTypeIds": [3],
"speciality": {
"allSpecialitiesSelected": true
},
"accounts": [
{
"allAccountsSelected": true
}
],
"locations": {
"countryId": 30100001
},
"dataPartners": {
"allDataPartnersSelected": true
},
"storagePath": "tmp/aud_uploads/upload_block2.csv",
"includeAudienceIds": [],
"excludeAudienceIds": []
},
{
"audienceSelectionMethodId": 3,
"npiTypeIds": null,
"speciality": {
"allSpecialitiesSelected": true
},
"accounts": [
{
"allAccountsSelected": true
}
],
"locations": {
"countryId": 30100001
},
"dataPartners": {
"allSpecialitiesSelected": true
},
"storagePath": null,
"includeAudienceIds": [1, 2, 3],
"excludeAudienceIds": [1, 2, 3]
}
],
"planLevelTargeting": {
"devices": {
"allDeviceTypesSelected": true
},
"channels": {
"allChannelTypesSelected": true
},
"creativeTypes": {
"allCreativeTypesSelected": true
},
"inventory": {
"openExchangeVO": {
"allExchangesSelected": true,
"allIabCategoriesSelected": true
},
"inventoryGroup": {
"allInventoryGroupsSelected": true
}
}
},
"splitStrategy": [
{ "splitDimensionTypeId": 1, "selectedValueIds": [11, 13, 14, 15, 17] },
{ "splitDimensionTypeId": 2, "selectedValueIds": [3, 4] },
{ "splitDimensionTypeId": 3, "selectedValueIds": [7] },
{ "splitDimensionTypeId": 4, "selectedValueIds": [11] },
{ "splitDimensionTypeId": 5, "selectedValueIds": [] }
]
}
Response 200
{
"name": "Q4 Diabetes Awareness Campaign",
"startTime": 1732707706666,
"endTime": 1733312506666,
"timezoneId": 3,
"budgetTypeId": 1,
"budget": 100000,
"maxBudget": 120000,
"reach": 50000,
"maxReach": 70000,
"impressions": 200000,
"maxImpressions": 250000,
"workspaceMarginPercentage": 20.0,
"frequencyCap": 3,
"audienceBlocks": [
{
"audienceSelectionMethodId": 1,
"npiTypeIds": [3, 4],
"speciality": {
"allSpecialitiesSelected": true
},
"accounts": [
{
"allAccountsSelected": true
}
],
"locations": {
"countryId": 30100001
},
"dataPartners": {
"allDataPartnersSelected": true
},
"storagePath": null,
"includeAudienceIds": [],
"excludeAudienceIds": []
},
{
"audienceSelectionMethodId": 2,
"npiTypeIds": [3],
"speciality": {
"allSpecialitiesSelected": true
},
"accounts": [
{
"allAccountsSelected": true
}
],
"locations": {
"countryId": 30100001
},
"dataPartners": {
"allDataPartnersSelected": true
},
"storagePath": "tmp/aud_uploads/upload_block2.csv",
"includeAudienceIds": [],
"excludeAudienceIds": []
},
{
"audienceSelectionMethodId": 3,
"npiTypeIds": null,
"speciality": {
"allSpecialitiesSelected": true
},
"accounts": [
{
"allAccountsSelected": true
}
],
"locations": {
"countryId": 30100001
},
"dataPartners": {
"allSpecialitiesSelected": true
},
"storagePath": null,
"includeAudienceIds": [1, 2, 3],
"excludeAudienceIds": [1, 2, 3]
}
],
"planLevelTargeting": {
"devices": {
"allDeviceTypesSelected": true
},
"channels": {
"allChannelTypesSelected": true
},
"creativeTypes": {
"allCreativeTypesSelected": true
},
"inventory": {
"openExchangeVO": {
"allExchangesSelected": true,
"allIabCategoriesSelected": true
},
"inventoryGroup": {
"allInventoryGroupsSelected": true
}
}
},
"splitStrategy": [
{ "splitDimensionTypeId": 1, "selectedValueIds": [11, 13, 14, 15, 17] },
{ "splitDimensionTypeId": 2, "selectedValueIds": [3, 4] },
{ "splitDimensionTypeId": 3, "selectedValueIds": [7] },
{ "splitDimensionTypeId": 4, "selectedValueIds": [11] },
{ "splitDimensionTypeId": 5, "selectedValueIds": [] }
],
"campaigns": [
{
"id": null,
"name": "Campaign_Image_HCP_Healthlink_Mobile",
"startTime": 1732707706666,
"endTime": 1733312506666,
"frequencyCap": 0,
"budget": null,
"maxBudget": 0.0,
"minMediaCpm": null,
"mediaCpm": null,
"maxMediaCpm": null,
"dataCpm": null,
"minReach": 0,
"reach": null,
"maxReach": 0,
"impressions": null,
"maxImpressions": 0,
"strategy": "Image + HCP + Healthlink + Mobile",
"targeting": {
"dataPartnerIds": [7],
"creativeTypeId": 11,
"deviceTypeIds": [11],
"npiTypeId": 3,
"audienceTypeIds": [1, 2]
},
"isAbm": false
}
]
}

Publish Campaigns Plan

POST

Generate an Insertion Order and draft Campaigns based on a provided planner configuration. To generate the planner configuration with Campaigns data, use the Generate Campaigns Plan API.

See the full resource properties for request schema and response properties.

Request Sample
{
"id": 123,
"name": "Sample HCP Planner Request",
"startTime": 1735124399000,
"endTime": 1757534400000,
"timezoneId": 4,
"budgetTypeId": 1,
"budget": 75000.00,
"maxBudget": 80000.00,
"reach": 250000,
"maxReach": 300000,
"impression": 1000000,
"maxImpressions": 1200000,
"frequencyCap": 5,
"audienceBlocks": [
{
"audienceSelectionMethodId": 1,
"npiTypeIds": [1, 2],
"speciality": {
"specialityIds": [101, 102],
"allSpecialitiesSelected": false
},
"locations": {
"countryId": 1,
"whiteListedStateIds": [501, 502],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [90210, 10001],
"blackListedZipcodes": []
},
"dataPartners": [
{
"id": 7,
"reach": 10000,
"priority": 1,
"isSelected": true,
"incrementalReach": 5000
},
{
"id": 8,
"reach": 10000,
"priority": 2,
"isSelected": true,
"incrementalReach": 5000
},
{
"id": 10,
"reach": 10000,
"priority": 3,
"isSelected": true,
"incrementalReach": 5000
}
]
},
{
"audienceSelectionMethodId": 2,
"npiTypeIds": [1, 2],
"speciality": {
"specialityIds": [101, 102],
"allSpecialitiesSelected": false
},
"locations": {
"countryId": 1,
"whiteListedStateIds": [501, 502],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [90210, 10001],
"blackListedZipcodes": []
},
"dataPartners": [
{
"id": 7,
"reach": 10000,
"priority": 1,
"isSelected": true,
"incrementalReach": 5000
},
{
"id": 8,
"reach": 10000,
"priority": 2,
"isSelected": true,
"incrementalReach": 5000
},
{
"id": 10,
"reach": 10000,
"priority": 3,
"isSelected": true,
"incrementalReach": 5000
}
],
"storagePathId": 1
},
{
"audienceSelectionMethodId": 3,
"includeAudienceIds": [301, 302],
"excludeAudienceIds": [401]
},
{
"audienceSelectionMethodId": 4,
"npiTypeIds": [1, 2],
"speciality": {
"specialityIds": [101, 102],
"allSpecialitiesSelected": false
},
"accounts": [
{
"accountTypeId": 1,
"accountIds": [201, 202],
"allAccountsSelected": false
},
{
"accountTypeId": 2,
"accountIds": [],
"allAccountsSelected": true
}
],
"locations": {
"countryId": 1,
"whiteListedStateIds": [501, 502],
"blackListedStateIds": [],
"whiteListedCityIds": [],
"blackListedCityIds": [],
"whiteListedZipcodes": [90210, 10001],
"blackListedZipcodes": []
},
"dataPartners": [
{
"id": 7,
"reach": 10000,
"priority": 1,
"isSelected": true,
"incrementalReach": 5000
},
{
"id": 8,
"reach": 10000,
"priority": 2,
"isSelected": true,
"incrementalReach": 5000
},
{
"id": 10,
"reach": 10000,
"priority": 3,
"isSelected": true,
"incrementalReach": 5000
}
]
}
],
"planLevelTargeting": {
"devices": {
"deviceTypeIds": [1, 2],
"allDeviceTypesSelected": false
},
"channels": {
"channelTypeIds": [1, 2],
"allChannelTypesSelected": false
},
"creativeTypes": {
"creativeTypeIds": [10, 11],
"allCreativeTypesSelected": false,
"isTvAutoBuying": true
},
"inventory": {
"openExchanges": {
"exchangeIds": [1, 2],
"allExchangesSelected": false,
"iabCategoryIds": [1, 2],
"allIabCategoriesSelected": false
},
"inventoryGroup": {
"inventoryGroupIds": [1, 2],
"allInventoryGroupsSelected": false
}
}
},
"splitStrategy": [
{
"splitDimensionTypeId": 1,
"selectedValueIds": [10, 11]
}
],
"campaigns": [
{
"id": null,
"name": "Campaign A",
"startTime": 1754942400000,
"endTime": 1757534400000,
"budget": 37500.00,
"maxBudget": 40000.00,
"mediaCpm": 50.0,
"dataCpm": 15.0,
"reach": 125000,
"maxReach": 150000,
"impressions": 500000,
"maxImpressions": 600000,
"isAbm": false,
"targeting": {
"dataPartnerIds": [1],
"creativeTypeId": 10,
"deviceTypeIds": [1],
"npiTypeId": 1,
"audienceTypeIds": [1]
}
}
]
}
Response 200
{
"success": true,
"data": {
"message": "Campaign generation is in progress"
}
}

More HCP Details

Get Split Strategy List

GET

Get the list of available split strategies for Healthcare Proposal Planners.

Response Properties
id
integer
Split strategy ID
name
string
Split strategy name
order
integer
Order
displayName
string
Display Name
Response 200
{
"success": true,
"data": [
{
"id": 1,
"name": "creative_type",
"order": 1,
"displayName": "Creative Type"
},
{
"id": 2,
"name": "npi_type",
"order": 2,
"displayName": "NPI Type"
},
{
"id": 3,
"name": "partner",
"order": 3,
"displayName": "Partner"
},
{
"id": 4,
"name": "device_type",
"order": 4,
"displayName": "Device Type"
},
{
"id": 5,
"name": "audience_type",
"order": 5,
"displayName": "Audience Type"
}
]
}

NPI Type List

GET

Get the list of available NPI Types for Healthcare Proposal Planners.

Response Properties
id
integer
NPI Type ID
name
string
NPI Type Name
order
integer
Order
displayName
string
NPI Type Display Name
Response 200
{
"success": true,
"data": [
{
"id": 3,
"name": "hcp",
"order": 3,
"displayName": "HCP"
},
{
"id": 4,
"name": "npi_nurse",
"order": 4,
"displayName": "NPI Nurse"
}
]
}

Get Geography Segments

GET

Get the list of available Geography Segments for Healthcare Proposal Planners.

Response Properties
id
integer
Geography Segment ID
name
string
Geography Segment Name
order
integer
Order
displayName
string
Display Name
Response 200
{
"success": true,
"data": [
{
"id": 302,
"name": null,
"order": 1,
"displayName": "State"
},
{
"id": 304,
"name": null,
"order": 4,
"displayName": "City"
}
]
}

Get Data Partners List

GET

Get the list of available Data Partners for Healthcare Proposal Planners.

Response Properties
id
integer
Data Partner ID
name
string
Data Partner Name
order
integer
Order
displayName
string
Data Partner Display Name
dataCost
integer
Data Cost
logoUrl
string
Logo URL
Response 200
{
"success": true,
"data": [
{
"id": 7,
"name": "hl_npi_id",
"order": 6,
"displayName": "Healthlink ID",
"dataCost": 10,
"logoUrl": "https://advp0had0vuj7rad3niaw1eus2-stage.s3.us-east-1.amazonaws.com/data_partner/hld.png"
},
{
"id": 8,
"name": "data360_npi_id",
"order": 7,
"displayName": "Data360 ID",
"dataCost": 15,
"logoUrl": "https://advp0had0vuj7rad3niaw1eus2-stage.s3.us-east-1.amazonaws.com/data_partner/D360.png"
},
{
"id": 10,
"name": "iqvia_npi_id",
"order": 9,
"displayName": "IQVIA ID",
"dataCost": 25,
"logoUrl": "https://advp0had0vuj7rad3niaw1eus2-stage.s3.us-east-1.amazonaws.com/data_partner/iqvia.png"
}
]
}

Get Audience Selection Methods List

GET

Get the list of available Audience Selection Methods for Healthcare Proposal Planners.

Response Properties
id
integer
Audience Selection Method ID
name
string
Audience Selection Method Name
order
integer
Order
displayName
string
Audience Selection Method Display Name
Response 200
{
"success": true,
"data": [
{
"id": 1,
"name": "filter_based",
"order": 1,
"displayName": "Filter Audience"
},
{
"id": 2,
"name": "npi_upload",
"order": 2,
"displayName": "Upload NPI List"
},
{
"id": 3,
"name": "existing_audience",
"order": 3,
"displayName": "Existing Audience"
}
]
}

Get Specialties List

GET

Get the list of available Specialties for Healthcare Proposal Planners.

Query Parameters
pageNo
integer
Page number of retrieved data, default: 1
noOfEntries
integer
Number of entries returned per page, default: 50
searchField
string
Filter results by search field
sortBy
string
Sorts by ascending (+) or descending (-), default: +displayName
Supported values: name, id, createdOn
specialitiyIds
array of integers
Filter by specialty IDs
Response 200
{
"success": true,
"data": {
"specialitiesList": [
{
"id": 40500003,
"name": "Addiction Medicine",
"displayName": "Addiction Medicine",
"displayOrder": 3
},
{
"id": 40500004,
"name": "Addiction Medicine",
"displayName": "Addiction Medicine",
"displayOrder": 3
}
],
"totalRecords": 2,
"filteredRecords": 2
}
}

Get Account Types

GET

Get the list of available Account Types for Healthcare Proposal Planners.

Query Parameters
pageNo
integer
Page number of retrieved data, default: 1
noOfEntries
integer
Number of entries returned per page, default: 50
searchField
string
Filter results by search field
sortBy
string
Sorts by ascending (+) or descending (-), default: -reach
Supported values: name, id, createdOn
Response Properties
id
integer
Account Type ID
name
string
Account Type Name
displayName
string
Account Type Display Name
displayOrder
integer
Display Order
accountCount
integer
Account Count
Response 200
{
"success": true,
"data": {
"accountTypesList": [
{
"id": 1,
"name": "Individual",
"displayName": "Individual",
"displayOrder": 1,
"accountCount": 1
},
{
"id": 2,
"name": "Organization",
"displayName": "Organization",
"displayOrder": 2,
"accountCount": 1
}
],
"totalRecords": 2,
"filteredRecords": 2
}
}
Have a question?
Was this page helpful?