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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
audienceSelectionMethodId integer | Audience Selection Method ID | ||||||||||||||
npiTypeIds array of integers | NPI Type IDs | ||||||||||||||
speciality object | Specialty object | ||||||||||||||
| |||||||||||||||
specialityIds array of integers | Specialty IDs |
allSpecialitiesSelected boolean | All specialties selected |
accounts array of objects
accounts object properties
accountTypeId integer | Account Type ID |
accountIds array of integers | Account IDs |
allAccountsSelected boolean | All accounts selected |
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
dataPartners object properties
dataPartnerIds array of integers | Data Partner IDs |
allDataPartnersSelected boolean | All data partners selected |
storagePathId integer
storagePath string
storageFileName string
storageFileSize integer
storageFileRows integer
includeAudienceIds array of integers
excludeAudienceIds array of integers
planLevelTargeting object
planLevelTargeting object properties
devices object | Devices object | ||||||||||||||
| |||||||||||||||
deviceTypeIds array of integers | Device Type IDs |
allDeviceTypesSelected boolean | All device types selected |
channels object
channels object properties
channelTypeIds array of integers | Channel Type IDs |
allChannelTypesSelected boolean | All channel types selected |
creativeTypes object
creativeTypes object properties
creativeTypeIds array of integers | Creative Type IDs |
allCreativeTypesSelected boolean | All creative types selected |
inventory object
inventory object properties
openExchangeVO object | Open Exchange VO object | ||||||||
| |||||||||
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
splitStrategy array of objects
splitStrategy object properties
splitDimensionType object | Split Dimension Type object | ||||||||
| |||||||||
id integer | Split Dimension ID |
name string | Name |
displayName string | Display Name |
order integer | Order |
selectedValueIds array of integers
campaigns array of objects
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 | ||||||||||
| |||||||||||
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{
"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
GETGet 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 |
{
"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
GETGet 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 |
{
"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
GETDownload the Healthcare Proposal Planner file.
| Request Schema | |
|---|---|
planId integer | Plan ID |
fileTypeId integer | File Type ID (1: xlsx) |
{
"planId": 123,
"fileTypeId": 1
}
{
"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
POSTPOST
Create a new ready or draft Healthcare Proposal Planner. See resource properties for request schema.
{
"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
PUTUpdate an existing Healthcare Proposal Planner by ID. See resource properties for request schema.
| Path Parameters | |
|---|---|
planId integer | Plan ID |
{
"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
DELETEDelete 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 |
{
"success": true,
"data": {
"message": "Sample deleted successfully"
}
}
Validate Planner Name
POSTCheck 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 |
{
"name": "Q4 Diabetes Awareness Campaign"
}
{
"success": true,
"data": {
"available": false
}
}
Get Targeting Graphs
POSTThis 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
audienceSelectionMethodId integer | Audience selection method ID | ||||||||||||||
npiTypeIds array of integers | NPI Type IDs | ||||||||||||||
speciality object | Specialty object | ||||||||||||||
| |||||||||||||||
specialityIds array of integers | Specialty IDs |
allSpecialitiesSelected boolean | All specialties selected |
accounts array of objects
accounts object properties
accountTypeId integer | Account Type ID |
accountIds array of integers | Account IDs |
allAccountsSelected boolean | All accounts selected |
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
dataPartners object properties
dataPartnerIds array of integers | Data Partner IDs |
allDataPartnersSelected boolean | All data partners selected |
storagePathId integer
storagePath string
storageFileName string
storageFileSize integer
storageFileRows integer
includeAudienceIds array of integers
excludeAudienceIds array of integers
planLevelTargeting object
planLevelTargeting object properties
devices object | Devices object | ||||||||||||||
| |||||||||||||||
deviceTypeIds array of integers | Device Type IDs |
allDeviceTypesSelected boolean | All device types selected |
channels object
channels object properties
channelTypeIds array of integers | Channel Type IDs |
allChannelTypesSelected boolean | All channel types selected |
creativeTypes object
creativeTypes object properties
creativeTypeIds array of integers | Creative Type IDs |
allCreativeTypesSelected boolean | All creative types selected |
inventory object
inventory object properties
openExchangeVO object | Open Exchange VO object | ||||||||
| |||||||||
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
owId integer
Response Properties
deviceTypeDistribution object | Device Type Distribution object | ||||||||||
| |||||||||||
totalNPIs integer | Total NPIs | ||||
breakdown array of objects | Breakdown array | ||||
| |||||
deviceTypeId integer | Device Type ID |
percentage number | Percentage |
creativeTypeDistribution array of objects
creativeTypeDistribution object properties
creativeTypeId integer | Creative Type ID |
impressions integer | Impressions |
cpm number | CPM |
channelTypeDistribution object
channelTypeDistribution object properties
totalNPIs integer | Total NPIs | ||||
breakdown array of objects | Breakdown array | ||||
| |||||
channelTypeId integer | Channel Type ID |
percentage number | Percentage |
{
"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
}
{
"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
POSTThis 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 | ||||||||||||||
| |||||||||||||||
specialityIds array of integers | Specialty IDs |
allSpecialitiesSelected boolean | All specialties selected |
accounts array of objects
accounts object properties
accountTypeId integer | Account Type ID |
accountIds array of integers | Account IDs |
allAccountsSelected boolean | All accounts selected |
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
dataPartners object properties
dataPartnerIds array of integers | Data Partner IDs |
allDataPartnersSelected boolean | All data partners selected |
storagePathId integer
storagePath string
storageFileName string
storageFileSize integer
storageFileRows integer
includeAudienceIds array of integers
excludeAudienceIds array of integers
Response Properties
npiTypes array of objects | NPI Types array | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
id integer | ID |
reach integer | Reach |
specialties array of objects
specialties object properties
id integer | ID |
reach integer | Reach |
accountStats object
accountStats object properties
accountsTypeCount integer | Accounts Type Count | ||||
accountsCount integer | Accounts Count | ||||
accounts array of objects | Accounts array | ||||
| |||||
id integer | ID |
reach integer | Reach |
dataPartnerStats object
dataPartnerStats object properties
partners array of objects | Partners array | ||||||||||
| |||||||||||
id integer | ID |
reach integer | Reach |
coverage number | Coverage |
venn array of objects
venn object properties
partnerIds array of integers | Partner IDs |
count integer | Count |
reach integer | Reach |
coveragePercentage number | Coverage Percentage |
intersectionPercentage number | Intersection Percentage |
{
"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": []
}
{
"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
POSTThis 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.
{
"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": [] }
]
}
{
"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
POSTGenerate 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.
{
"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]
}
}
]
}
{
"success": true,
"data": {
"message": "Campaign generation is in progress"
}
}
More HCP Details
Get Split Strategy List
GETGet 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 |
{
"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
GETGet 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 |
{
"success": true,
"data": [
{
"id": 3,
"name": "hcp",
"order": 3,
"displayName": "HCP"
},
{
"id": 4,
"name": "npi_nurse",
"order": 4,
"displayName": "NPI Nurse"
}
]
}
Get Geography Segments
GETGet 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 |
{
"success": true,
"data": [
{
"id": 302,
"name": null,
"order": 1,
"displayName": "State"
},
{
"id": 304,
"name": null,
"order": 4,
"displayName": "City"
}
]
}
Get Data Partners List
GETGet 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 |
{
"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
GETGet 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 |
{
"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
GETGet 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 |
{
"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
GETGet 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 |
{
"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
}
}