Skip to main content

Insights API

Insights reports are one of IQM's analytics tools that help Advertisers quickly identify trends and apply precise adjustments to deliver better results for campaigns. With pre-defined metrics and dimensions, Insights reports can be generated for Provider Level Data (PLD) Insights and Script Lift Study (SLS) Insights.

TypeDescriptionNotes
Audience Quality (AQ) Insights reportAQ Insights reports leverage third-party healthcare data from PurpleLab to confirm audience exposure based on patient-level targeting criteria including prescriptions, diagnoses, and procedures.
Script Lift Study (SLS) Insights reportSLS Insights reports include key details about prescribing behaviors and how they are influenced by current and previous Healthcare campaigns.
Provider Level Data (PLD) Insights reportPLD Insights reports include details about healthcare professionals targeted in your campaigns, and provide similar details as VLD Insights reports while adhering to healthcare data privacy regulations.PLD Insights, NLD Insights, and ICT Insights reports are handled by the Report templates endpoints with the category parameter.
Nurse Level Data (NLD) Insights reportNLD Insights reports offer deeper visibility into how Non-NPI nurses engage with your campaigns. They uncover ad-exposure, engagement, demographic, and physician-specialty data to reveal reach and impact.
Integrated Care Team (ICT) Insights reportICT Insights reports uncover key details about the ICT audiences you’ve targeted in previous and current campaigns.
NOTE

Some Insights reports will need to be enabled by an administrator to access. By default PLD, SLS, and AQ Insights reports are not accessible to Advertiser users.

You can check an Advertiser's access to Insights reports with the Get Customer config details endpoint.

More resources​

Authentication​

Use the following header parameters for all requests:

Headers
Authentication
string required
Authentication bearer token
See Sign up and authenticate
X-IAA-OW-ID
integer required
Organization Workspace ID header

Insights details​

Get eligible campaigns​

GET

Get a status-wise list of eligible campaigns for generation of PLD, ICT, or NLD Insights reports.

Eligible campaign IDs can be used in the Calculate Insights computation and Create report template endpoints.

Query parameters
reportType
string required
Type of report: pld, ict, or nld.
Response properties
running
array of objects
Campaigns with running status.
paused
array of objects
Campaigns with paused status.
expired
array of objects
Campaigns with expired status.
Campaign object properties
campaignId
integer
Campaign ID.
campaignTimezoneId
integer
Timezone ID.
Response 200
{
"success": true,
"data": {
"running": [
{
"campaignId": 451351,
"campaignTimezoneId": 29
}
],
"paused": [
{
"campaignId": 451350,
"campaignTimezoneId": 29
}
],
"expired": [
{
"campaignId": 470839,
"campaignTimezoneId": 29
}
]
}
}
Response 400
{
"success": false,
"errorObjects": [
{
"error": "Invalid report type provided : vlds"
}
]
}

Calculate Insights computation​

POST

Compute the cost and impressions for creation of PLD, ICT, or NLD Insights reports based on the provided campaign IDs and date range.

The computation calculates the chargeable impressions and cost based on the markup charged to the Organization. This returns an estimate only; it doesn't create a report or charge the account.

Request schema
category
string required
Insights type category: pld, ict, or nld.
campaignIds
array of integers required
Campaign IDs for which to compute the report.
startDate
integer required
Unix epoch timestamp of report start date, in milliseconds.
endDate
integer required
Unix epoch timestamp of report end date, in milliseconds.
reportId
integer
ID of an existing report (for example, a failed one) to price its regeneration. When set, the other fields aren't needed.
Response properties
ioId
integer
Insertion order ID.
ioName
string
Insertion order name.
startDate
integer
Unix epoch timestamp of report start date, in milliseconds.
endDate
integer
Unix epoch timestamp of report end date, in milliseconds.
campaignIds
array of integers
Campaign IDs included in the computation.
reportCreatable
boolean
Indicates whether the report can be created.
chargeableImps
integer
Number of chargeable impressions.
chargedImps
integer
Impressions already paid for by an earlier report of the same type. These aren't billed again.
chargeableCost
number
Chargeable cost amount.
chargedCost
number
Cost of impressions already paid for by an earlier report of the same type. This isn't billed again.
fundsAvailable
boolean
Indicates whether sufficient funds are available.
effectiveRate
number
Rate per 1,000 impressions (CPM) for this report type.
templateId
integer
Associated template ID.
Request sample
{
"category": "pld",
"campaignIds": [451351, 451352],
"startDate": 1640995200000,
"endDate": 1643673599000
}
Response 200
{
"success": true,
"data": {
"ioId": 101,
"ioName": "Test IO",
"startDate": 1742898000000,
"endDate": 1774238399000,
"campaignIds": [11011],
"reportCreatable": true,
"chargeableImps": 100,
"chargedImps": 25,
"chargeableCost": 345.23,
"chargedCost": 45.21,
"fundsAvailable": true,
"effectiveRate": 3.45,
"templateId": 111
}
}
Response 422
{
"success": false,
"errorObjects": [
{
"error": "Date range is invalid or exceeds maximum allowed period"
}
]
}

Audience Quality (AQ) Insights report​

AQ Insights report eligibility requirements​

AQ Insights reports are available for campaigns that meet certain requirements.

Read more about these requirements in our Help Center article.

Requirement typeRequirement detailsNotes
Campaign verticalHealthcare.Any campaign created under a Healthcare Advertiser account is a “Healthcare” campaign.
Audience typeMatched (Patient), Segmented (Patient).
Audience statusReady.
Campaign typeAdvanced, and targeting at least one patient audience.
Campaign statusRunning, Expired (within the past two years), Paused.
Campaign impressions1K or more impressions.
Campaign duration14 or more days.

AQ Insights report resource properties​

Resource properties
reportId
integer
AQ Insights report ID.
reportName
string
AQ Insights report name.
campaignId
integer
Campaign ID.
campaignName
string
Campaign name.
statusId
integer
AQ Insights report status type ID.
statusName
string
AQ Insights report status name.
startDate
integer
Unix epoch timestamp of start date, in milliseconds.
endDate
integer
Unix epoch timestamp of end date, in milliseconds.
ioId
integer
Insertion order ID.
ioName
string
Insertion order name.
ioBudgetType
integer
Insertion order budget type ID.
Supported values
1Budget
2Impression
isCampaignEligible
boolean
Indicates that campaign is eligible for AQ Insights report: true.
reportCreatedOn
integer
Unix epoch timestamp of creation date, in milliseconds.
creativeTypeId
integer
Creative type ID.
Supported values
0All
11Image
13HTML
14Video
15Native
17Audio
campaignTimeZoneId
integer
Timezone ID.
fileSizeDetails
object
Object containing file sizes by type ID (1: XLSX, 2: CSV).
aqsReportCreatable
boolean
Indicates if AQ Insights report can be generated for the given campaign and date range (true).
aqsChargeableImps
integer
The number of chargeable impressions for the requested AQ Insights report.
aqsChargedImps
integer
The number of impressions for which the AQ Insights report is already generated.
aqsChargeableCost
number
Cost to generate the AQ Insights report.
aqsChargedCost
number
Cost of AQ Insights report that is already generated.
fundsAvailable
boolean
Indicates if sufficient funds are available in the Advertiser's account to generate the AQ Insights report (true).
effectiveAqsRate
number
The effective rate applied for AQ Insights report generation.

Get list of AQ Insights reports​

GET

Get a paginated list of AQ Insights reports with detailed information.

A reportId can be used in the Download AQ Insights report and Delete AQ Insights report endpoints.

Query parameters
searchField
string
Filter results by search field.
noOfEntries
integer
Number of entries returned per page, default: 200.
pageNo
integer
Page number of retrieved data, default: 1.
sortBy
string
Sorts by ascending (+) or descending (-), default: reportId.
Response 200
{
"success": true,
"data": {
"totalRecords": 10,
"reportDataList": [
{
"reportId": 10,
"reportName": "530667_AQS_Insights_7",
"campaignName": "prod-campaign-21145",
"campaignId": 21145,
"statusId": 3,
"statusName": "Completed",
"startDate": 1603152000000,
"endDate": 1603411200000,
"ioId": 5,
"ioName": "Corporate, Inc.",
"isCampaignEligible": false,
"reportCreatedOn": 1721253632000,
"creativeTypeId": 11,
"ioBudgetType": 1,
"campaignTimeZoneId": 29,
"fileSizeDetails": {
"1": 1024,
"2": 1024
}
},
{
"reportId": 9,
"reportName": "530667_AQS_Insights_6",
"campaignName": "Campaign-4949",
"campaignId": 4949,
"statusId": 3,
"statusName": "Completed",
"startDate": 1603152000000,
"endDate": 1603411200000,
"ioId": 15,
"ioName": "Quinton for Mayor",
"isCampaignEligible": false,
"reportCreatedOn": 1720325578000,
"creativeTypeId": 14,
"ioBudgetType": 1,
"campaignTimeZoneId": 29,
"fileSizeDetails": {
"1": 1024,
"2": 1024
}
}
],
"filteredRecords": 10
}
}

Get list of campaigns eligible for AQ Insights reports​

GET

Get a status-wise list of campaign IDs eligible for AQ Insights report generation.

Response properties
running, paused, expired
array of objects
Object array of campaign IDs mapped to each of these three campaign statuses.
Object properties
campaignId
integer
Campaign ID.
campaignTimezoneId
integer
Campaign timezone ID.
Response 200
{
"success": true,
"data": {
"running": [
{
"campaignId": 451351,
"campaignTimezoneId": 29
}
],
"paused": [
{
"campaignId": 451350,
"campaignTimezoneId": 29
}
],
"expired": [
{
"campaignId": 470839,
"campaignTimezoneId": 29
}
]
}
}

Validate AQ Insights report name​

GET

Validate the report name for generation of AQ Insights reports. Checks if the name meets length requirements (3-100 characters) and ensures uniqueness within the Organization.

Query parameters
reportName
string
Name of report to validate.
Response properties
available
boolean
Indicates if the report name is available: true.
message
string
Validation message.
Response 200 (valid)
{
"success": true,
"data": {
"available": true,
"message": "This AQS report name is valid"
}
}
Response 200 (already used)
{
"success": true,
"data": {
"available": false,
"message": "The name 'report_name' is already used by another report, kindly update the name"
}
}
Response 422
{
"success": false,
"errorObjects": [
{
"error": "Please provide name with at least 3 characters and maximum of 100 characters"
}
]
}

Compute AQ Insights report cost​

POST

Compute the cost and impressions for AQ Insights report generation based on the campaign and date range. This returns an estimate only; it doesn't create a report or charge the account.

Request schema
campaignId
integer
Campaign ID.
aqsId
integer
AQ Insights report ID (for regeneration).
aqsName
string
AQ Insights report name.
aqsStartDate
integer
Unix epoch timestamp of start date, in milliseconds.
aqsEndDate
integer
Unix epoch timestamp of end date, in milliseconds.
aqsReportTypeId
integer
AQ Insights report type ID.
aqsAudienceConceptGroups
array of objects
Array of audience/concept group mappings.
Request sample
{
"campaignId": 1,
"aqsStartDate": 1722311000000,
"aqsEndDate": 1722315000000,
"aqsName": "Dummy AQS Name",
"aqsReportTypeId": 1,
"aqsAudienceConceptGroups": [{
"audienceId": 101,
"conceptGroupId": 202335
}]
}
Response 200
{
"success": true,
"data": {
"aqsReportCreatable": true,
"campaignId": 1,
"aqsStartDate": 1722311000000,
"aqsEndDate": 1722315000000,
"aqsChargeableImps": 1000,
"aqsChargedImps": 100,
"aqsChargeableCost": 1000,
"aqsChargedCost": 100,
"aqsName": "Dummy AQS Name",
"aqsReportTypeId": 1,
"aqsAudienceConceptGroups": [{
"audienceId": 101,
"conceptGroupId": 202335
}],
"fundsAvailable": true
}
}
Response 200 (report exists)
{
"success": true,
"data": {
"aqsReportCreatable": false,
"aqsId": 1,
"aqsName": "AQS report 1",
"aqsStatus": 1,
"aqsCreatedOn": 1722315234000,
"campaignId": 1,
"ioId": 1,
"ioName": "Insertion Order Name",
"ioTypeId": 1,
"aqsReportTypeId": 1,
"aqsAudienceConceptGroups": [{
"audienceId": 101,
"conceptGroupId": 202335
}]
}
}
Response 200 (processing)
{
"success": true,
"data": {
"aqsReportCreatable": false,
"message": "AQS Insights can't be generated for this campaigns at the moment as another insight with overlapping date range is processing"
}
}

Generate AQ Insights report​

POST

Generate an AQ Insights report. This endpoint calculates the cost for the impressions based on the impressions and mark up charged on the Organization and then creates the AQ Insights reports.

Request schema
campaignId
integer
Campaign ID.
aqsId
integer
AQ Insights report ID to regenerate.
aqsName
string
AQ Insights report name.
aqsStartDate
integer
Unix epoch timestamp of start date, in milliseconds.
aqsEndDate
integer
Unix epoch timestamp of end date, in milliseconds.
aqsReportTypeId
integer
AQ Insights report type ID.
aqsAudienceConceptGroups
array of objects
Array of audience/concept group mappings.
Request sample (new report)
{
"campaignId": 1,
"aqsStartDate": 1722311000000,
"aqsEndDate": 1722315000000,
"aqsName": "Dummy AQS Name",
"aqsReportTypeId": 1,
"aqsAudienceConceptGroups": [{
"audienceId": 101,
"conceptGroupId": 202335
}]
}
Request sample (regenerate)
{
"aqsId": 1
}
Response 200
{
"success": true,
"data": {
"aqsReportCreatable": true,
"aqsChargeableImps": 1,
"aqsChargedImps": 1,
"aqsChargeableCost": 1,
"aqsChargedCost": 1,
"fundsAvailable": true,
"effectiveAqsRate": 1
}
}
Response 200 (report exists)
{
"success": true,
"data": {
"aqsReportCreatable": false,
"aqsId": 1,
"aqsName": "AQS report 1",
"aqsStatus": 1,
"aqsCreatedOn": 1722315234000,
"campaignId": 1,
"ioId": 1,
"ioName": "Insertion Order Name",
"ioTypeId": 1,
"aqsReportTypeId": 1,
"aqsAudienceConceptGroups": [{
"audienceId": 101,
"conceptGroupId": 202335
}]
}
}
Response 200 (failure)
{
"success": true,
"data": {
"aqsReportCreatable": false,
"message": "AQS Insights can't be generated for this campaigns at the moment as another insight with overlapping date range is processing"
}
}

Get AQ Insights report types​

GET

Get available AQ Insights report types. Returns a list of report types that can be generated. Only users from Advertiser Organizations are authorized to access this endpoint.

Response properties
reportTypeData
array of objects
Array of report type objects.
Object properties
id
integer
Report type ID.
name
string
Report type name.
label
string
Report type display label.
order
integer
Display order.
totalRecords
integer
Total number of records.
filteredRecords
integer
Number of filtered records.
Response 200
{
"success": true,
"data": {
"reportTypeData": [
{
"id": 1,
"name": "audience",
"label": "Audience",
"order": 1
},
{
"id": 2,
"name": "Campaign",
"label": "Campaign",
"order": 2
}
],
"totalRecords": 2,
"filteredRecords": 2
}
}

Download AQ Insights report​

POST

Get a download link for an AQ Insights report in CSV or XLSX format. Only reports with a 'ready' status are eligible for download.

Request schema
fileTypeId
integer
File type ID.
Supported values
1XLSX
2CSV
reportId
integer
AQ Insights report ID.
Response properties
reportURL
string
AQ Insights report file URL.
Request sample
{
"fileTypeId": 1,
"reportId": 50
}
Response 200
{
"success": true,
"data": {
"reportURL": "https://download.domain.com/aqs-reports/2024-12-03/50_Report.xlsx?X-Amz-Algorithm=AWS4-HMAC"
}
}
More responses
Response 400
{
"success": false,
"errorObjects": [
{
"error": "Unsupported file type provided. Please use fileType 1 for XLSX or 2 for CSV."
}
]
}
Response 422
{
"success": false,
"errorObjects": [
{
"error": "Invalid sortBy value."
}
]
}

Email AQ Insights report​

POST

Send an AQ Insights report to the provided email address(es) after validating the report ID and email addresses.

Request schema
reportId
integer required
AQ Insights report ID to email.
fileTypeId
integer required
File type ID.
Supported values
1XLSX
2CSV
emailIds
array of strings required
Recipient email addresses (1–15).
Response properties
message
string
Success message.
Request sample (XLSX file)
{
"reportId": 50,
"fileTypeId": 1,
"emailIds": ["user1@email.com"]
}
Request sample (CSV file)
{
"reportId": 50,
"fileTypeId": 2,
"emailIds": ["user1@email.com"]
}
Response 200
{
"success": true,
"data": {
"message": "AQS report e-mail sent successfully."
}
}

Delete AQ Insights report​

DELETE

Delete AQ Insights reports that are not marked as deleted and have a 'failed' status. Requires user authorization and checks if the provided AQ Insights report IDs are valid.

Query parameters
reportIds
string
Comma-separated AQ Insights report IDs.
Response properties
success
boolean
Indicates report was successfully deleted: true.
message
string
Success message.
Response 200
{
"success": true,
"data": {
"message": "255944_AQS_Insights_2 deleted successfully"
}
}

Script Lift Study (SLS) Insights report​

SLS Insights eligibility requirements​

SLS Insights reports are available for Healthcare campaigns that meet certain requirements.

Read more about these requirements in our Help Center article.

Requirement typeRequirement detailsNotes
Campaign verticalHealthcare.Any campaign created under a Healthcare Advertiser account is a “Healthcare” campaign.
Campaign statusRunning, Expired (within the past two years), Paused.
Campaign impressions>1 impression.
Campaign duration7 or more days.
Campaign start date[Release date], 2025 or later (or earlier upon request from IQM's support team).
Audience typeMatched audience created from NPI IDs.The campaign must only include the audience type listed in this requirements table. For example, you won’t be able to generate an SLS Insights report for a campaign if it includes a Matched audience created from NPI IDs and a Retargeted audience consisting of your website’s past visitors. The NPI-based audience must be assigned to the campaign at the time of report creation and while report generation is in progress to remain eligible.

SLS Insights resource properties​

Resource properties
slsId
integer
SLS Insights ID.
slsName
string
SLS Insights name.
campaignIds
array of integers
Campaign IDs.
slsStatusId
integer
SLS Insights status type ID.
startDate
integer
Unix epoch timestamp of start date, in milliseconds.
endDate
integer
Unix epoch timestamp of end date, in milliseconds.
ioId
integer
Insertion order ID.
ioName
string
Insertion order name.
ioTypeId
integer
Insertion order budget type ID.
Supported values
1Budget
2Impression
isCampaignEligible
boolean
Indicates that campaign is eligible for SLS Insights report: true.
slsCreatedOn
integer
Unix epoch timestamp of creation date, in milliseconds.
campaignSlsTimezoneId
integer
Timezone ID.
slsChargeableImps
integer
The number of chargeable impressions for the requested SLS Insights report.
slsChargedImps
integer
The number of impressions for which the SLS Insights report is already generated.
slsChargeableCost
integer
Cost to generate the SLS Insights report.
slsChargedCost
integer
Cost of SLS Insights report that is already generated.
pdfFileSize
integer
PDF file size in bytes.
excelFileSize
integer
Excel file size in bytes.
slsReportTypeIds
array of integers
SLS Insights report type IDs.

Get list of SLS Insights reports​

GET

Get a list of SLS Insights reports.

An slsId can be used in the Generate SLS Insights report, Download SLS Insights report, and Delete SLS Insights report endpoints.

Query parameters
searchField
string
Filter results by search field.
noOfEntries
integer
Number of entries returned per page, default: 200.
pageNo
integer
Page number of retrieved data.
sortBy
string
Sorts by ascending (+) or descending (-), default: -slsId.
Response 200
{
"success": true,
"data": {
"totalRecords": 2,
"slsReportDataList": [
{
"slsId": 10,
"slsName": "530667_SLS_Insights_7",
"campaignIds": [
21145,
21146,
21147
],
"slsStatusId": 3,
"slsStatusName": "Failed",
"startDate": 1732165200000,
"endDate": 1732424399000,
"ioId": 5,
"ioName": "Corporate, Inc.",
"isCampaignEligible": false,
"slsCreatedOn": 1721253632,
"campaignSlsTimezoneId": 29,
"ioTypeId": 1,
"pdfFileSize": 2500000,
"excelFileSize": 2500000,
"slsReportTypeIds": [
1,
2,
3
]
},
{
"slsId": 9,
"slsName": "530667_SLS_Insights_6",
"campaignId": [
4949,
5959
],
"slsStatusId": 2,
"slsStatusName": "Processing",
"startDate": 1732165200000,
"endDate": 1732424399000,
"ioId": 15,
"ioName": "Quinton for Mayor",
"isCampaignEligible": false,
"slsCreatedOn": 1720325578,
"campaignSlsTimezoneId": 29,
"ioTypeId": 1,
"slsReportTypeIds": [
1,
3
]
},
],
"filteredRecords": 2
}
}

Generate SLS Insights report​

POST

This endpoint calculates the cost for the impressions for the SLS Insights reports based on the impressions and markup charged on the Organization and then creates the SLS Insights reports.

SLS Insights reports support three report types: "Pre vs Post Analysis," "Exposed vs Underexposed Analysis," and "Competitive Analysis."

Refer to our Help Center article for more details: SLS Insights Report Overview - SLS Insights Reporting Methods.

Request schema
ioId
integer
Insertion order ID.
campaignIds
array of integers
Campaign IDs.
slsStartDate
integer
Unix epoch timestamp of start date, in milliseconds.
slsEndDate
integer
Unix epoch timestamp of end date, in milliseconds.
slsName
string
SLS name, 3–100 characters. Must be unique.
slsLookbackDuration
integer
SLS lookback duration, in months (1–6).
conceptGroupId
string
Concept group ID.
reportTypes
array of integers
Report type IDs.
1: Pre vs Post Analysis.
2: Exposed vs Underexposed Analysis.
3: Competitive Analysis.
competitorConceptGroupIds
array of strings
Competitor concept group IDs.
slsId
integer
SLS Insights ID to regenerate.
Request sample
{
"ioId": 1234,
"campaignIds": [
1,
2,
3
],
"slsStartDate": 1722311000,
"slsEndDate": 1722315000,
"slsName": "Dummy SLS Name",
"slsLookbackDuration": 3,
"conceptGroupId": 202335,
"reportTypes": [
1,
2,
3
],
"competitorConceptGroupIds": [
800214,
800215,
800216
]
}
Response 200
{
"success": true,
"data": {
"slsReportCreated": true,
"campaignIds": [
1,
2,
3
],
"slsStartDate": 1722311000,
"slsEndDate": 1722315000,
"slsChargeableImps": 1000,
"slsChargedImps": 100,
"slsChargeableCost": 1000,
"slsChargedCost": 100,
"slsName": "Dummy SLS Name",
"slsLookbackDuration": 3,
"conceptGroupId": 202335,
"reportTypes": [
1,
2,
3
],
"competitorConceptGroupIds": [
800214,
800215,
800216
],
"fundsAvailable": true
}
}

SLS Insights reports computation​

POST

Calculates the cost for the impressions for the SLS Insights report based on impressions and the markup charged on the Organization. This returns an estimate only; it doesn't create a report or charge the account.

SLS Insights reports support three report types: "Pre vs Post Analysis," "Exposed vs Underexposed Analysis," and "Competitive Analysis."

Refer to our Help Center article for more details: SLS Insights Report Overview - SLS Insights Reporting Methods.

Request schema
ioId
integer
Insertion order ID.
campaignIds
array of integers
Campaign IDs.
slsStartDate
integer
Unix epoch timestamp of start date, in milliseconds.
slsEndDate
integer
Unix epoch timestamp of end date, in milliseconds.
slsName
string
SLS name, 3–100 characters. Must be unique.
slsLookbackDuration
integer
SLS lookback duration, in months (1–6).
conceptGroupId
string
Concept group ID.
reportTypes
array of integers
Report type IDs.
1: Pre vs Post Analysis.
2: Exposed vs Underexposed Analysis.
3: Competitive Analysis.
competitorConceptGroupIds
array of strings
Competitor concept group IDs.
Request sample
{
"ioId": 1234,
"campaignIds": [
1,
2,
3
],
"slsStartDate": 1722311000,
"slsEndDate": 1722315000,
"slsName": "Dummy SLS Name",
"slsLookbackDuration": 3,
"conceptGroupId": 202335,
"reportTypes": [
1,
2,
3
],
"competitorConceptGroupIds": [
800214,
800215,
800216
]
}
Response 200
{
"success": true,
"data": {
"slsReportCreated": true,
"campaignIds": [
1,
2,
3
],
"slsStartDate": 1722311000,
"slsEndDate": 1722315000,
"slsChargeableImps": 1000,
"slsChargedImps": 100,
"slsChargeableCost": 1000,
"slsChargedCost": 100,
"slsName": "Dummy SLS Name",
"slsLookbackDuration": 3,
"conceptGroupId": 202335,
"reportTypes": [
1,
2,
3
],
"competitorConceptGroupIds": [
800214,
800215,
800216
],
"fundsAvailable": true
}
}

Validate SLS Insights report name​

GET

Validate a name for SLS Insights reports.

Query parameters
reportName
string
Report name.
Response properties
success
boolean
Indicates successful validation.
data
string
Success message.
Response 200
{
"success": true,
"data": "This SLS report name is valid"
}

Get list of campaigns eligible for SLS Insights reports​

GET

Get a list of campaign IDs by status eligible for SLS Insights report generation.

Response properties
running, paused, expired
array of objects
Object array of campaign IDs mapped to each of these three campaign statuses.
object properties
campaignId
integer
Campaign ID.
campaignTimezoneId
integer
Campaign timezone ID.
Response 200
{
"success": true,
"data": {
"running": [
{
"campaignId": 516038,
"campaignTimezoneId": 29
}
],
"paused": [
{
"campaignId": 523630,
"campaignTimezoneId": 29
}
],
"expired": [
{
"campaignId": 500291,
"campaignTimezoneId": 29
}
]
}
}

Download SLS Insights report​

POST

Get a download link for a SLS Insights report in CSV or XLSX format.

Request schema
fileTypeId
integer
File type ID.
XLSX: 1.
CSV: 2.
reportId
integer
SLS Insights report ID.
Response properties
slsReportUrl
string
SLS Insights report file URL.
Request sample
{
"fileTypeId": 1,
"reportId": 50
}
Response 200
{
"success": true,
"data": {
"slsReportUrl": "https://dowload.domain.com/pld-reports/20220101/pld-report-1.xlsx"
}
}
More responses
Response 422
{
"success": false,
"errorObjects": [
{
"error": "Invalid sortBy value."
}
]
}

Email SLS Insights report​

POST

Send an SLS Insights report as an email attachment to specified recipients.

Request schema
reportId
integer required
SLS Insights report ID to email.
fileTypeId
integer required
File type ID.
Supported values
1XLSX
3PDF
emailIds
array of strings required
Recipient email addresses (1–15).
Response properties
message
string
Success message.
Request sample (XLSX file)
{
"fileTypeId": 1,
"emailIds": ["user1@email.com"],
"reportId": 50
}
Request sample (PDF file)
{
"fileTypeId": 3,
"emailIds": ["user1@email.com", "user2@email.com"],
"reportId": 50
}
Response 200
{
"success": true,
"data": {
"message": "SLS report e-mail sent successfully."
}
}

Delete SLS Insights report​

DELETE

Deletes SLS Insights reports that are not marked as deleted and have a 'failed' status, requires user authorization and checks if the provided SLS Insights report IDs are valid.

Query parameters
slsIds
string
Comma separated SLS Insights report IDs.
Response properties
success
boolean
Indicates report was successfully deleted: true.
message
string
Success message.
Response 200
{
"success": true,
"data": {
"message": "255944_PLD_Insights_2 deleted successfully"
}
}

Report templates​

PLD Insights eligibility requirements​

PLD Insights reports are available for Healthcare campaigns that meet certain requirements.

Read more about these requirements in our Help Center article.

Requirement typeRequirement detailsNotes
Campaign verticalHealthcare.Any campaign created under a Healthcare Advertiser account is a “Healthcare” campaign.
Campaign statusRunning, Expired (within the past 90 days), Paused (within the past 90 days).
Campaign duration7 or more days.
Campaign limitUp to 50 eligible campaigns from the same insertion order (IO) per report.
Audience typeMatched audience created from NPI IDs, Matched audience created from raw data.

Patient Matched audiences are not eligible for PLD Insights reporting.

NLD Insights eligibility requirements​

NLD Insights reports are available for Healthcare campaigns that meet certain requirements.

Read more about these requirements in our Help Center article.

Requirement typeRequirement detailsNotes
Campaign verticalHealthcare.Any campaign created under a Healthcare Advertiser account is a “Healthcare” campaign.
Campaign typeAdvanced.
Campaign statusRunning, Expired (within the past 2 years), Paused.
Campaign durationAt least 7 days through yesterday's date.
Campaign limitUp to 50 eligible campaigns from the same insertion order (IO) per report.
Audience typeCampaign must target at least one Non-NPI Nurse (Matched, Geofarmed, Contextual) audience.

ICT Insights eligibility requirements​

ICT Insights reports are available for Healthcare campaigns that meet certain requirements.

Read more about these requirements in our Help Center article.

Requirement typeRequirement detailsNotes
Campaign verticalHealthcare.Any campaign created under a Healthcare Advertiser account is a “Healthcare” campaign.
Campaign typeAdvanced.
Campaign statusRunning, Expired (within the past 2 years), Paused.
Campaign durationAt least 7 days through yesterday's date.
Campaign limitUp to 50 eligible campaigns from the same insertion order (IO) per report.
Audience typeCampaign must target at least one Integrated Care Team (ICT) input-type (HCP, Nurse) audience.

Get list of templates​

GET

Get a list of all templates for the specified report type with optional filtering and pagination.

A templateId can be used to get Get template details or to update an existing template using the Update report template endpoint.

Query parameters
category
string required
Insights type category: pld, ict, or nld.
searchField
string
Filter templates by name.
noOfEntries
integer
Number of entries per page, default: 20.
pageNo
integer
Page number for pagination, default: 1.
frequencyIds
integer
Filter by scheduling frequency IDs.
statusIds
integer
Filter by template status IDs.
sortBy
string
Sorts by ascending (+) or descending (-), default: -templateId.
Response properties
templateId
integer
Template ID.
name
string
Template name.
frequencyId
integer
Scheduling frequency ID.
startDate
integer
Unix epoch timestamp of template start date, in milliseconds.
endDate
integer
Unix epoch timestamp of template end date, in milliseconds.
timezoneId
integer
Timezone ID.
statusId
integer
Template status ID.
nextRunPreviewUtc
integer
Unix epoch timestamp of the next scheduled run (UTC), in milliseconds.
reportIds
array of integers
Associated report IDs.
campaignIds
array of integers
Associated campaign IDs.
reportStatusSummary
array of objects
Summary of report counts by status ID.
statusSummary
array of objects
Summary of template counts by status ID (top-level).
filteredRecords
integer
Number of records matching the applied filters.
totalRecords
integer
Total number of records.
Response 200
{
"success": true,
"data": {
"data": [
{
"templateId": 1,
"name": "Monthly ICT Report",
"frequencyId": 2,
"startDate": 1764843796510,
"endDate": 1764843796510,
"timezoneId": 29,
"statusId": 1,
"nextRunPreviewUtc": 1764843796510,
"reportIds": [10001, 10002, 10004],
"campaignIds": [10001, 10003],
"reportStatusSummary": [
{
"id": 1,
"count": 5
},
{
"id": 2,
"count": 2
}
]
}
],
"statusSummary": [
{
"id": 1,
"count": 5
},
{
"id": 2,
"count": 5
}
],
"filteredRecords": 1,
"totalRecords": 10
}
}

Get template details​

GET

Get the details of a template by its template ID.

Path parameters
templateId
integer
The ID of the template to retrieve.
Response properties
templateId
integer
Template ID.
name
string
Template name.
campaignIds
array of integers
Associated campaign IDs.
frequencyId
integer
Scheduling frequency ID.
frequencyDetails
object
Scheduling details based on frequency type.
startDate
integer
Unix epoch timestamp of template start date, in milliseconds.
endDate
integer
Unix epoch timestamp of template end date, in milliseconds.
timezoneId
integer
Timezone ID.
aggregationEnabled
boolean
Indicates whether report data is aggregated.
recipientEmails
array of strings
Recipient email addresses.
statusId
integer
Template status ID.
nextRunPreviewUtc
integer
Unix epoch timestamp of the next scheduled run (UTC), in milliseconds.
firstRunLocked
boolean
Indicates whether the first run is locked.
Response 200
{
"success": true,
"data": {
"templateId": 1,
"name": "Monthly PLD Report",
"campaignIds": [101, 102, 103],
"frequencyId": 2,
"frequencyDetails": {
"dayOfMonthTypeId": 2,
"dayOfMonth": 15
},
"startDate": 1704067200000,
"endDate": 1735689599000,
"timezoneId": 29,
"aggregationEnabled": true,
"recipientEmails": [
"xyz@gmail.com"
],
"statusId": 1,
"nextRunPreviewUtc": 1706745600000,
"firstRunLocked": true
}
}

Get template reports​

GET

Get the reports for a specific template with optional filtering and pagination.

Path parameters
templateId
integer
The ID of the template for which to retrieve reports.
Query parameters
searchField
string
Filter reports by search string.
noOfEntries
integer
Number of entries per page, default: 20.
pageNo
integer
Page number for pagination, default: 1.
sortBy
string
Sorts by ascending (+) or descending (-), default: -reportId.
statusIds
integer
Filter by status IDs.
frequencyIds
integer
Filter by scheduling frequency IDs.
Response properties
reportId
integer
Report ID.
name
string
Report name.
requestedStartDate
integer
Unix epoch timestamp of the report's requested start date, in milliseconds.
requestedEndDate
integer
Unix epoch timestamp of the report's requested end date, in milliseconds.
statusId
integer
Report status ID.
frequencyId
integer
Scheduling frequency ID.
generatedAt
integer
Unix epoch timestamp of when the report was generated, in milliseconds.
filePaths
object
Presigned download URLs for the report files.
fileSizes
object
File sizes in bytes for each format.
totalRecords
integer
Total number of records.
filteredRecords
integer
Number of records matching the applied filters.
statusSummary
array of objects
Summary of report counts by status ID.
frequencySummary
array of objects
Summary of report counts by frequency ID.
Response 200
{
"success": true,
"data": {
"data": [
{
"reportId": 180,
"name": "23897_PLD_Insights_7",
"requestedEndDate": 1762885799000,
"requestedStartDate": 1762799400000,
"statusId": 3,
"frequencyId": 3,
"generatedAt": 1764671972077,
"filePaths": {
"csvUrl": "https://.../9876.csv",
"xlsxUrl": "https://.../9876.xlxs",
"pdfUrl": "https://.../9876.pdf",
"zipUrl": "https://.../9876.zip"
},
"fileSizes": {
"csvBytes": 27223,
"xlsxBytes": 98604,
"pdfBytes": 84259,
"zipBytes": 20471
}
}
],
"totalRecords": 2,
"filteredRecords": 1,
"statusSummary": [
{
"id": 3,
"count": 1
},
{
"id": 4,
"count": 1
}
],
"frequencySummary": [
{
"id": 3,
"count": 1
}
]
}
}

Validate template name​

POST

Checks if the given template name is available (not already in use) within the caller's Organization.

Request schema
name
string
Template name to validate (3–100 characters).
category
string
Insights type category: pld, ict, or nld.
Response properties
available
boolean
Indicates whether the template name is available: true or false.
Request sample
{
"name": "Monthly PLD Report",
"category": "pld"
}
Response 200 (name available)
{
"success": true,
"data": {
"available": true
}
}
Response 200 (name not available)
{
"success": true,
"data": {
"available": false
}
}

Create report template​

POST

Creates a report template with the given campaigns and scheduling configuration.

The request defines a template name, associated campaign IDs, frequency and frequency details (daily, weekly, monthly, or custom), template start/end dates, aggregation flag, recipient emails, template status, and report category.

When the template is ACTIVE, the platform will use the configured schedule to trigger periodic report generation.

Request schema
name
string
Template name (3–100 characters).
campaignIds
array of integers
Campaign IDs (max 50).
frequencyId
integer
Scheduling frequency ID.
frequencyDetails
object
Scheduling details based on frequency type (see examples).
frequencyDetails object properties
dayOfWeekId
integer
Day of week (for weekly/custom-weekly).
dayOfMonthTypeId
integer
Day of month type: first day (1), specific day (2), last day (3).
dayOfMonth
integer
Specific day of month (2–28, when dayOfMonthTypeId = 2).
intervalModeId
integer
Custom interval mode: days (501), weeks (502), months (503).
intervalValue
integer
Custom interval value (e.g., every X days/weeks/months).
startDate
integer
Unix epoch timestamp of template start date, in milliseconds.
endDate
integer
Unix epoch timestamp of template end date, in milliseconds.
aggregationEnabled
boolean
Indicates whether to aggregate report data.
recipientEmails
array of strings
Recipient email addresses (max 15).
status
string
Template status: ACTIVE or INACTIVE.
category
string
Insights type category: pld, ict, or nld.
Response properties
templateId
integer
Created template ID.
nextRunDate
integer
Unix epoch timestamp of the next scheduled run, in milliseconds.
{
"name": "One-Time Template",
"campaignIds": [111, 222, 333],
"frequencyId": 1,
"frequencyDetails": {},
"startDate": 1763145600000,
"endDate": 1765737600000,
"aggregationEnabled": false,
"recipientEmails": [
"a@ws.com"
],
"status": "ACTIVE",
"category": "pld"
}
{
"name": "Daily Template",
"campaignIds": [111, 222],
"frequencyId": 2,
"frequencyDetails": {},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": true,
"recipientEmails": [
"daily@ws.com"
],
"status": "ACTIVE",
"category": "ict"
}
{
"name": "Weekly Template",
"campaignIds": [111, 222, 333],
"frequencyId": 3,
"frequencyDetails": {
"dayOfWeekId": 3
},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": false,
"recipientEmails": [
"weekly@ws.com"
],
"status": "ACTIVE",
"category": "nld"
}
{
"name": "Monthly Template (1st day)",
"campaignIds": [111],
"frequencyId": 4,
"frequencyDetails": {
"dayOfMonthTypeId": 1
},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": true,
"recipientEmails": [
"m1@ws.com"
],
"status": "ACTIVE",
"category": "pld"
}
{
"name": "Monthly Template (15th)",
"campaignIds": [111, 222],
"frequencyId": 4,
"frequencyDetails": {
"dayOfMonthTypeId": 2,
"dayOfMonth": 15
},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": false,
"recipientEmails": [
"m2@ws.com"
],
"status": "ACTIVE",
"category": "ict"
}
{
"name": "Monthly Template (last day)",
"campaignIds": [111, 222],
"frequencyId": 4,
"frequencyDetails": {
"dayOfMonthTypeId": 3
},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": false,
"recipientEmails": [
"m3@ws.com"
],
"status": "ACTIVE",
"category": "nld"
}
{
"name": "Custom Every 10 Days Template",
"campaignIds": [111],
"frequencyId": 5,
"frequencyDetails": {
"intervalModeId": 501,
"intervalValue": 10
},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": true,
"recipientEmails": [
"cdays@ws.com"
],
"status": "ACTIVE",
"category": "pld"
}
{
"name": "Custom Every 3 Weeks Template",
"campaignIds": [111, 222],
"frequencyId": 5,
"frequencyDetails": {
"intervalModeId": 502,
"intervalValue": 3,
"dayOfWeekId": 4
},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": false,
"recipientEmails": [
"cweeks@ws.com"
],
"status": "ACTIVE",
"category": "ict"
}
{
"name": "Custom Every 2 Months – 1st Day Template",
"campaignIds": [111],
"frequencyId": 5,
"frequencyDetails": {
"intervalModeId": 503,
"intervalValue": 2,
"dayOfMonthTypeId": 1
},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": true,
"recipientEmails": [
"cm1@ws.com"
],
"status": "ACTIVE",
"category": "nld"
}
{
"name": "Custom Every 2 Months – 10th Template",
"campaignIds": [111],
"frequencyId": 5,
"frequencyDetails": {
"intervalModeId": 503,
"intervalValue": 2,
"dayOfMonthTypeId": 2,
"dayOfMonth": 10
},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": false,
"recipientEmails": [
"cm2@ws.com"
],
"status": "ACTIVE",
"category": "pld"
}
{
"name": "Custom Every 2 Months – Last Day Template",
"campaignIds": [111, 222],
"frequencyId": 5,
"frequencyDetails": {
"intervalModeId": 503,
"intervalValue": 2,
"dayOfMonthTypeId": 3
},
"startDate": 1763145600000,
"endDate": 1789334400000,
"aggregationEnabled": true,
"recipientEmails": [
"cm3@ws.com"
],
"status": "ACTIVE",
"category": "ict"
}
Response 200
{
"success": true,
"data": {
"templateId": 101,
"nextRunDate": 1764460800000
}
}

Update report template​

PATCH

Apply a partial update to an existing report template. Only the fields present in the request are evaluated and applied.

The platform automatically re-evaluates future executions based on the effective configuration after the update. Past executions and generated reports are never modified.

Important notes
  • Updates only affect future executions
  • A resumed template may not necessarily produce a future run
  • "One Time" templates (frequency ID 1) execute at most once
  • If no future execution exists, nextRunDate will be null
Path parameters
templateId
integer
The ID of the template to update.
Update scenarios
Change madeFuture execution impact
Metadata-only updateNo impact to future executions.
Aggregation flag toggleFuture executions are recalculated.
End date modifiedFuture execution horizon is recalculated.
Start date modifiedFuture execution plan is recalculated.
Recurring → Recurring (frequency change)Future execution pattern changes.
Recurring → One-timeOne-time execution is triggered.
One-time → RecurringFuture recurring executions are scheduled.
ACTIVE → INACTIVEAll future executions are stopped.
INACTIVE → ACTIVE (recurring)Future executions resume.
Multiple changes in one requestStrongest applicable rule applies.

Request schema
name
string
Template name (3–100 characters).
recipientEmails
array of strings
Recipient email addresses.
status
string
Template status: ACTIVE or INACTIVE.
frequencyId
integer
Scheduling frequency ID.
frequencyDetails
object
Scheduling details based on frequency type.
frequencyDetails object properties
dayOfWeekId
integer
Day of week (for weekly/custom-weekly).
dayOfMonthTypeId
integer
Day of month type: first day (1), specific day (2), last day (3).
dayOfMonth
integer
Specific day of month (2–28, when dayOfMonthTypeId = 2).
intervalModeId
integer
Custom interval mode: days (501), weeks (502), months (503).
intervalValue
integer
Custom interval value (e.g., every X days/weeks/months).
startDate
integer
Unix epoch timestamp of template start date, in milliseconds.
endDate
integer
Unix epoch timestamp of template end date, in milliseconds.
aggregationEnabled
boolean
Indicates whether to aggregate report data.

Response properties
templateId
integer
Updated template ID.
nextRunDate
integer
Unix epoch timestamp of the next scheduled run, in milliseconds (may be null if no future execution exists).
{
"name": "Updated Template Name"
}
{
"aggregationEnabled": true
}
{
"endDate": 1790000000000
}
{
"frequencyId": 3,
"frequencyDetails": {
"dayOfWeekId": 2
}
}
{
"frequencyId": 1,
"frequencyDetails": {},
"startDate": 1763145600000,
"endDate": 1763145600000
}
{
"frequencyId": 2,
"frequencyDetails": {},
"startDate": 1763145600000
}
{
"status": "INACTIVE"
}
{
"status": "ACTIVE"
}
Response 200
{
"success": true,
"data": {
"templateId": 101,
"nextRunDate": 1764460800000
}
}

Report management​

Download report​

POST

Download a PLD, NLD, or ICT Insights report. Only reports with a ready status are eligible for download.

This endpoint validates the report status, file type, and user permissions before generating a pre-signed download URL.

Request schema
reportId
integer required
Report ID to download.
fileTypeId
integer required
File type ID: 1 (XLSX), 2 (CSV), 3 (PDF), 4 (ZIP).
Response properties
reportURL
string
Pre-signed download URL for the report.
Request sample
{
"fileTypeId": 1,
"reportId": 50
}
Response 200
{
"success": true,
"data": {
"reportURL": "https://xyz.abc.com/reports/abcd/2024-12-03/50_acbd_Report.xlsx?X-Amz-Algorithm=AWS4-HMAC"
}
}
Response 422 (report not ready)
{
"success": false,
"errorObjects": [
{
"error": "The provided ICT report ID: 50 is not in the ready state."
}
]
}

Delete report​

DELETE

Delete PLD, NLD, or ICT reports that have a failed status.

Reports that are already deleted or do not have a failed status cannot be deleted with this endpoint.

Query parameters
reportIds
string required
Comma-separated list of report IDs to delete.
Response properties
message
string
Success or error message.
Response 200 (bulk delete)
{
"success": true,
"data": {
"message": "2 ICT insights deleted successfully"
}
}
Response 200 (individual delete)
{
"success": true,
"data": {
"message": "255944_PLD_Insights_2 deleted successfully"
}
}
Response 422 (invalid state)
{
"success": false,
"errorObjects": [
{
"error": "Some of the provided NLD ID(s) are either already deleted, do not exist, or do not have a 'failed' status."
}
]
}

Email report​

POST

Send a PLD, NLD, or ICT Insights report as an email attachment to specified recipients.

Only reports with a ready status are eligible to be emailed. Reports larger than 25 MB cannot be sent.

Request schema
reportId
integer required
Report ID to email.
fileTypeId
integer required
File type ID: 1 (XLSX), 2 (CSV), 3 (PDF), 4 (ZIP).
emailIds
array of strings required
Recipient email addresses (1–15).
Response properties
message
string
Success or error message.
Request sample
{
"fileTypeId": 1,
"emailIds": [
"user1@email.com",
"user2@email.com"
],
"reportId": 50
}
Response 200
{
"success": true,
"data": {
"message": "ICT report e-mail sent successfully."
}
}
Response 422 (report not ready)
{
"success": false,
"data": {
"message": "The provided ICT ID: 50 is not in the ready state."
}
}

Regenerate report​

POST

Regenerate a PLD, NLD, or ICT Insights report that has a failed status.

The report must be associated with a scheduling template. Reports that are already deleted or in a ready/processing state cannot be regenerated.

Path parameters
reportId
integer required
Report ID to regenerate.
Response properties
reportId
integer
Report ID that was regenerated.
templateId
integer
Associated template ID.
nextRunDate
integer
Unix epoch timestamp of the next scheduled run, in milliseconds.
reportName
string
Name of the regenerated report.
Response 200
{
"success": true,
"data": {
"reportId": 12,
"templateId": 123,
"nextRunDate": 1765774800000,
"reportName": "sample report"
}
}
Response 400 (invalid state)
{
"success": false,
"data": {
"message": "ICT Report ID : 12 is already deleted or is in READY/PROCESSING state."
}
}
Response 422 (invalid ID)
{
"success": false,
"data": {
"message": "Please provide valid insights id value."
}
}

Get more Insights details​

Get list of Insights types​

GET

Get a list of Insights types by ID.

Insights type IDs
1Audience Insights.
3 Voter Level Data.
4 Provider Level Data.
5 Script Lift Study.
Response 200
{
"success": true,
"data": {
"totalRecords": 2,
"filteredRecords": 2,
"insightsTypeData": [
{
"id": 1,
"name": "audiences",
"label": "Audience Insights",
"order": 1
},
{
"id": 3,
"name": "voter_level_data",
"label": "Voter Level Data",
"order": 3
},
{
"id": 4,
"name": "provider_level_data",
"label": "Provider Level Data",
"order": 4
},
{
"id": 5,
"name": "script_life_study",
"label": "Script Lift Study",
"order": 5
}
]
}
}

Get list of Insights status types​

GET

Get a list of Insights status types.

Insights status IDs
1Processing.
2Ready.
3 Failed.
Response 200
{
"success": true,
"data": {
"totalRecords": 3,
"filterRecords": 3,
"insightsStatusData": [
{
"id": 1,
"name": "processing",
"label": "Processing",
"order": 1
},
{
"id": 2,
"name": "ready",
"label": "Ready",
"order": 2
},
{
"id": 3,
"name": "failed",
"label": "Failed",
"order": 3
}
]
}
}

Get list of template status types​

GET

Get all possible template statuses with their IDs, names, display names, and display orders.

Template status IDs
1Active.
2Inactive.
Response 200
{
"success": true,
"data": [
{
"id": 1,
"name": "active",
"displayName": "Active",
"order": 1
},
{
"id": 2,
"name": "inactive",
"displayName": "Inactive",
"order": 2
}
]
}

Get scheduling frequencies​

GET

Get static metadata for scheduling templates, including frequency types, sub-modes, and shared reference lists (day of week, day of month type).

Frequency type IDs
1One-Time.
2Daily.
3Weekly.
4Monthly.
5Custom.
Response 200
{
"success": true,
"data": {
"frequencyTypes": [
{
"id": 1,
"name": "oneTime",
"displayName": "One-Time",
"order": 1,
"fields": [],
"modes": null
},
{
"id": 2,
"name": "daily",
"displayName": "Daily",
"order": 2,
"fields": [],
"modes": null
},
{
"id": 3,
"name": "weekly",
"displayName": "Weekly",
"order": 3,
"fields": [
{
"id": 301,
"name": "dayOfWeek",
"displayName": "Day of Week",
"order": 1,
"fieldType": "reference",
"min": null,
"max": null,
"allowedValuesRef": "dayOfWeek"
}
],
"modes": null
},
{
"id": 4,
"name": "monthly",
"displayName": "Monthly",
"order": 4,
"fields": [
{
"id": 401,
"name": "dayOfMonthType",
"displayName": "Day of Month Type",
"order": 1,
"fieldType": "reference",
"min": null,
"max": null,
"allowedValuesRef": "dayOfMonthType"
},
{
"id": 402,
"name": "dayOfMonth",
"displayName": "Day of Month",
"order": 2,
"fieldType": "number",
"min": 2,
"max": 28,
"allowedValuesRef": null
}
],
"modes": null
},
{
"id": 5,
"name": "custom",
"displayName": "Custom",
"order": 5,
"fields": null,
"modes": [
{
"id": 501,
"name": "days",
"displayName": "Day(s)",
"order": 1,
"fields": [
{
"id": 50101,
"name": "intervalValue",
"displayName": "Repeats In",
"order": 1,
"fieldType": "number",
"min": 1,
"max": 365,
"allowedValuesRef": null
}
]
},
{
"id": 502,
"name": "weeks",
"displayName": "Week(s)",
"order": 2,
"fields": [
{
"id": 50201,
"name": "intervalValue",
"displayName": "Repeats In",
"order": 1,
"fieldType": "number",
"min": 1,
"max": 52,
"allowedValuesRef": null
},
{
"id": 50202,
"name": "dayOfWeek",
"displayName": "Day of Week",
"order": 2,
"fieldType": "reference",
"min": null,
"max": null,
"allowedValuesRef": "dayOfWeek"
}
]
},
{
"id": 503,
"name": "months",
"displayName": "Month(s)",
"order": 3,
"fields": [
{
"id": 50301,
"name": "intervalValue",
"displayName": "Repeats In",
"order": 1,
"fieldType": "number",
"min": 1,
"max": 12,
"allowedValuesRef": null
},
{
"id": 50302,
"name": "dayOfMonthType",
"displayName": "Day of Month Type",
"order": 2,
"fieldType": "reference",
"min": null,
"max": null,
"allowedValuesRef": "dayOfMonthType"
},
{
"id": 50303,
"name": "dayOfMonth",
"displayName": "Day of Month",
"order": 3,
"fieldType": "number",
"min": 2,
"max": 28,
"allowedValuesRef": null
}
]
}
]
}
],
"references": {
"dayOfWeek": [
{
"id": 1,
"name": "monday",
"displayName": "Monday",
"order": 1
},
{
"id": 2,
"name": "tuesday",
"displayName": "Tuesday",
"order": 2
},
{
"id": 3,
"name": "wednesday",
"displayName": "Wednesday",
"order": 3
},
{
"id": 4,
"name": "thursday",
"displayName": "Thursday",
"order": 4
},
{
"id": 5,
"name": "friday",
"displayName": "Friday",
"order": 5
},
{
"id": 6,
"name": "saturday",
"displayName": "Saturday",
"order": 6
},
{
"id": 7,
"name": "sunday",
"displayName": "Sunday",
"order": 7
}
],
"dayOfMonthType": [
{
"id": 1,
"name": "firstDay",
"displayName": "First Day of Month",
"order": 1
},
{
"id": 2,
"name": "nthDay",
"displayName": "Specific Day (2-28)",
"order": 2
},
{
"id": 3,
"name": "lastDay",
"displayName": "Last Day of Month",
"order": 3
}
]
}
}
}
Have a question?
Was this page helpful?