DoorDash Ads API (1.0.19)
DoorDash Ads API for Sponsored Products for campaign management and reporting operations.
Please see DoorDash CPG Advertiser Guide & FAQ for more details about Ads functionalities.
Release Notes
v1.0.19 (effective Apr 7, 2025)
- Set up docs on Developer Portal
- Campaigns
- Net new budget capout recommendations endpoint
- Ad Groups
- Now supports behavioral targeting
- [Beta] Now supports dayparting
- Report
- Now supports business reporting (Category Share, Product Sales)
- [Beta] Now supports dayparted (hourly) reporting
- Now supports catalog reporting
- Keywords
- Now supports retrieving recommended keywords with status within an ad group context
- Resources
- Net new resources search endpoint
[Beta]: Currently only rolled out to certain advertisers. GA launch for dayparting is estimated to be end of May 2025.
Create campaign
Create a single campaign.
Authorizations:
Request Body schema: application/json
A campaign to create.
name required | string (Name) Resource name. |
description | string (Description) Resource description. |
campaignType required | string (CampaignType) Value: "SPONSORED_PRODUCTS" The advertising product managed by this campaign. |
required | object (BudgetWrite) non-empty Only one of daily or lifetime budget may be configured. |
startDate required | string (StartDate) Start date for the resource to go live. The format of the date is yyyy-MM-dd HH:mm:ss. |
endDate | string (EndDate) End date for the resource to stop running. The format of the date is yyyy-MM-dd HH:mm:ss. |
Responses
Request samples
- Payload
{- "name": "string",
- "description": "string",
- "campaignType": "SPONSORED_PRODUCTS",
- "budget": {
- "daily": {
- "unitAmount": 0
}, - "lifetime": {
- "unitAmount": 0
}
}, - "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00"
}
Response samples
- 200
- 400
- 401
- 500
{- "campaignId": "string",
- "name": "string",
- "description": "string",
- "status": "INCOMPLETE",
- "statusDescription": "string",
- "code": "string",
- "codeDescription": "string",
- "campaignType": "SPONSORED_PRODUCTS",
- "budget": {
- "daily": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}, - "lifetime": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "placementType": "AUTOMATIC",
- "permission": {
- "isReadOnly": true,
- "message": "string"
}
}
Update campaign
Update a single campaign.
Authorizations:
Request Body schema: application/json
A partial campaign object used to update an existing campaign.
campaignId required | string (CampaignId) Unique campaign identifier. |
name | string (Name) Resource name. |
campaignType | string (CampaignType) Value: "SPONSORED_PRODUCTS" The advertising product managed by this campaign. |
description | string (Description) Resource description. |
status | string (StatusWrite) Enum: "ACTIVE" "PAUSED" "ENDED" Current resource state. |
object (BudgetWrite) non-empty Only one of daily or lifetime budget may be configured. | |
startDate | string (StartDate) Start date for the resource to go live. The format of the date is yyyy-MM-dd HH:mm:ss. |
endDate | string (EndDate) End date for the resource to stop running. The format of the date is yyyy-MM-dd HH:mm:ss. |
Responses
Request samples
- Payload
{- "campaignId": "string",
- "name": "string",
- "campaignType": "SPONSORED_PRODUCTS",
- "description": "string",
- "status": "ACTIVE",
- "budget": {
- "daily": {
- "unitAmount": 0
}, - "lifetime": {
- "unitAmount": 0
}
}, - "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "campaignId": "string",
- "name": "string",
- "description": "string",
- "status": "INCOMPLETE",
- "statusDescription": "string",
- "code": "string",
- "codeDescription": "string",
- "campaignType": "SPONSORED_PRODUCTS",
- "budget": {
- "daily": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}, - "lifetime": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "placementType": "AUTOMATIC",
- "permission": {
- "isReadOnly": true,
- "message": "string"
}
}
Get campaigns
Get a list of campaigns.
Authorizations:
query Parameters
startIndex | number Default: 0 0-indexed record offset for the result set. Defaults to 0. |
count | number Number of records to include in the paged response. |
Responses
Response samples
- 200
- 400
- 401
- 500
{- "campaigns": [
- {
- "campaignId": "string",
- "name": "string",
- "description": "string",
- "status": "INCOMPLETE",
- "statusDescription": "string",
- "code": "string",
- "codeDescription": "string",
- "campaignType": "SPONSORED_PRODUCTS",
- "budget": {
- "daily": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}, - "lifetime": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "placementType": "AUTOMATIC",
- "permission": {
- "isReadOnly": true,
- "message": "string"
}
}
]
}
Get campaign by ID
Get a single campaign by the provided identifier.
Authorizations:
path Parameters
campaignId required | string Unique identifier for a campaign |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "campaignId": "string",
- "name": "string",
- "description": "string",
- "status": "INCOMPLETE",
- "statusDescription": "string",
- "code": "string",
- "codeDescription": "string",
- "campaignType": "SPONSORED_PRODUCTS",
- "budget": {
- "daily": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}, - "lifetime": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "placementType": "AUTOMATIC",
- "permission": {
- "isReadOnly": true,
- "message": "string"
}
}
Get budget capout recommendations
Get budget capout report and recommendations for the provided campaign ID.
Authorizations:
path Parameters
campaignId required | string Unique identifier for a campaign |
Responses
Response samples
- 200
- 400
- 401
- 500
{- "adEntityId": "string",
- "type": "string",
- "value": {
- "avgCapOutTimeLast7Days": 0,
- "recommendedBudget": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string"
}, - "totalMissedSalesLast7Days": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string"
}, - "dailyCapOutTime": [
- {
- "dayOfWeek": "MONDAY",
- "capOutTime": 0,
- "maximumLiveHours": 0
}
]
}
}
Create ad group
Create a single ad group.
Authorizations:
Request Body schema: application/json
An ad group to create.
campaignId required | string (CampaignId) Unique campaign identifier. | ||||||||||||||||||||||||
name required | string (Name) Resource name. | ||||||||||||||||||||||||
startDate required | string (StartDate) Start date for the resource to go live. The format of the date is yyyy-MM-dd HH:mm:ss. | ||||||||||||||||||||||||
endDate required | string (EndDate) End date for the resource to stop running. The format of the date is yyyy-MM-dd HH:mm:ss. | ||||||||||||||||||||||||
required | object Bid for all ad group placement types. Either automaticBid OR manualTargets must be set. Bid unitAmount range per advertiser country code is outlined in the following table. Ranges are presented as "Minimum-Maximum".
| ||||||||||||||||||||||||
required | Array of objects (ManualTargetWrite) Bid for specific ad group placement types. Either automaticBid OR manualTargets must be set. Supported ad group placement type combinations are represented in the following table.
Bid unitAmount range per advertiser country code per placement type is outlined in the following table. Ranges are presented as "Minimum-Maximum".
| ||||||||||||||||||||||||
Array of objects (BehavioralTargetWrite) Behavioral targeting configuration to customize the audience of this ad group campaign. | |||||||||||||||||||||||||
Array of objects (Daypart) [Beta] Configure custom schedule for when people see this ad group campaign. |
Responses
Request samples
- Payload
{- "campaignId": "string",
- "name": "string",
- "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "automaticBid": {
- "price": {
- "unitAmount": 0
}
}, - "manualTargets": [
- {
- "bid": {
- "price": {
- "unitAmount": 0
}
}, - "placement": {
- "type": "SEARCH"
}
}
], - "behavioralTargets": [
- {
- "action": "LAPSED",
- "resources": {
- "type": "L1_BRAND",
- "ids": [
- 0
]
}
}
], - "dayparts": [
- {
- "startTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}, - "endTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}
}
]
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "campaignId": "string",
- "adGroupId": "string",
- "name": "string",
- "status": "INCOMPLETE",
- "statusDescription": "string",
- "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "automaticBid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "code": "string",
- "codeDescription": "string",
- "manualTargets": [
- {
- "bid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "placement": {
- "type": "SEARCH"
}
}
], - "keywordsBidding": [
- {
- "bid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "placement": {
- "type": "SEARCH"
}, - "targetKeywords": [
- "string"
]
}
], - "behavioralTargets": [
- {
- "action": "LAPSED",
- "resources": {
- "type": "L1_BRAND",
- "objects": [
- {
- "id": "string",
- "name": "string",
- "status": "INELIGIBLE"
}
]
}
}
], - "dayparts": [
- {
- "startTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}, - "endTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}
}
]
}
Update ad group
Update a single ad group.
Authorizations:
Request Body schema: application/json
A partial ad group object used to update an existing ad group.
campaignId required | string (CampaignId) Unique campaign identifier. | ||||||||||||||||||||||||
adGroupId required | string (AdGroupId) Unique ad group identifier. | ||||||||||||||||||||||||
name | string (Name) Resource name. | ||||||||||||||||||||||||
status | string (StatusWrite) Enum: "ACTIVE" "PAUSED" "ENDED" Current resource state. | ||||||||||||||||||||||||
startDate | string (StartDate) Start date for the resource to go live. The format of the date is yyyy-MM-dd HH:mm:ss. | ||||||||||||||||||||||||
endDate | string (EndDate) End date for the resource to stop running. The format of the date is yyyy-MM-dd HH:mm:ss. | ||||||||||||||||||||||||
object Bid for all ad group placement types. Bid unitAmount range per advertiser country code is outlined in the following table. Ranges are presented as "Minimum-Maximum".
| |||||||||||||||||||||||||
Array of objects (ManualTargetWrite) Bid for specific ad group placement types. Supported ad group placement type combinations are represented in the following table.
Bid unitAmount range per advertiser country code per placement type is outlined in the following table. Ranges are presented as "Minimum-Maximum".
| |||||||||||||||||||||||||
Array of objects (KeywordsBiddingWrite) Keyword search bidding configuration to customize the audience of this ad group campaign. | |||||||||||||||||||||||||
Array of objects (BehavioralTargetWrite) Behavioral targeting configuration to customize the audience of this ad group campaign. | |||||||||||||||||||||||||
Array of objects (Daypart) [Beta] Custom schedule for when people see this ad group campaign. |
Responses
Request samples
- Payload
{- "campaignId": "string",
- "adGroupId": "string",
- "name": "string",
- "status": "ACTIVE",
- "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "automaticBid": {
- "price": {
- "unitAmount": 0
}
}, - "manualTargets": [
- {
- "bid": {
- "price": {
- "unitAmount": 0
}
}, - "placement": {
- "type": "SEARCH"
}
}
], - "keywordsBidding": [
- {
- "bid": {
- "price": {
- "unitAmount": 0
}
}, - "placement": {
- "type": "SEARCH"
}, - "targetKeywords": [
- "string"
]
}
], - "behavioralTargets": [
- {
- "action": "LAPSED",
- "resources": {
- "type": "L1_BRAND",
- "ids": [
- 0
]
}
}
], - "dayparts": [
- {
- "startTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}, - "endTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}
}
]
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "campaignId": "string",
- "adGroupId": "string",
- "name": "string",
- "status": "INCOMPLETE",
- "statusDescription": "string",
- "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "automaticBid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "code": "string",
- "codeDescription": "string",
- "manualTargets": [
- {
- "bid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "placement": {
- "type": "SEARCH"
}
}
], - "keywordsBidding": [
- {
- "bid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "placement": {
- "type": "SEARCH"
}, - "targetKeywords": [
- "string"
]
}
], - "behavioralTargets": [
- {
- "action": "LAPSED",
- "resources": {
- "type": "L1_BRAND",
- "objects": [
- {
- "id": "string",
- "name": "string",
- "status": "INELIGIBLE"
}
]
}
}
], - "dayparts": [
- {
- "startTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}, - "endTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}
}
]
}
Get ad groups
Get a list of ad groups, optionally filtered by campaign IDs and/or ad group IDs.
Authorizations:
query Parameters
startIndex | number Default: 0 0-indexed record offset for the result set. Defaults to 0. |
count | number Number of records to include in the paged response. |
campaignIdFilter | string A comma-delimited list of campaign identifiers. At least one of campaignIdFilter and adGroupIdFilter is required. |
adGroupIdFilter | string A comma-delimited list of ad group identifiers. At least one of campaignIdFilter and adGroupIdFilter is required. |
Responses
Response samples
- 200
- 400
- 401
- 500
{- "adGroups": [
- {
- "campaignId": "string",
- "adGroupId": "string",
- "name": "string",
- "status": "INCOMPLETE",
- "statusDescription": "string",
- "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "automaticBid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "code": "string",
- "codeDescription": "string",
- "manualTargets": [
- {
- "bid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "placement": {
- "type": "SEARCH"
}
}
], - "keywordsBidding": [
- {
- "bid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "placement": {
- "type": "SEARCH"
}, - "targetKeywords": [
- "string"
]
}
], - "behavioralTargets": [
- {
- "action": "LAPSED",
- "resources": {
- "type": "L1_BRAND",
- "objects": [
- {
- "id": "string",
- "name": "string",
- "status": "INELIGIBLE"
}
]
}
}
], - "dayparts": [
- {
- "startTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}, - "endTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}
}
]
}
]
}
Get ad group by ID
Get a single ad group by the provided identifier.
Authorizations:
path Parameters
adGroupId required | string The identifier of an existing ad group. |
Responses
Response samples
- 200
- 400
- 401
- 404
- 500
{- "campaignId": "string",
- "adGroupId": "string",
- "name": "string",
- "status": "INCOMPLETE",
- "statusDescription": "string",
- "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "automaticBid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "code": "string",
- "codeDescription": "string",
- "manualTargets": [
- {
- "bid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "placement": {
- "type": "SEARCH"
}
}
], - "keywordsBidding": [
- {
- "bid": {
- "price": {
- "unitAmount": 0,
- "currency": "USD",
- "displayString": "string",
- "decimalPlaces": 0,
- "symbol": "string",
- "symbolPlacement": "left",
- "sign": true
}
}, - "placement": {
- "type": "SEARCH"
}, - "targetKeywords": [
- "string"
]
}
], - "behavioralTargets": [
- {
- "action": "LAPSED",
- "resources": {
- "type": "L1_BRAND",
- "objects": [
- {
- "id": "string",
- "name": "string",
- "status": "INELIGIBLE"
}
]
}
}
], - "dayparts": [
- {
- "startTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}, - "endTimeOfDayOfWeek": {
- "dayOfWeek": "MONDAY",
- "timeOfDay": {
- "hours": 0,
- "minutes": 0,
- "seconds": 0,
- "nanos": 0
}
}
}
]
}
Create product ad
Create a single product ad the provided campaign and ad group IDs.
Authorizations:
Request Body schema: application/json
A product ad to create.
campaignId required | string (CampaignId) Unique campaign identifier. |
adGroupId required | string (AdGroupId) Unique ad group identifier. |
idType required | string (ProductIdType) Enum: "GTIN_14" "UPC" "DD_SIC" Product ID type |
productId required | string (ProductId) Unique product identifier based on product ID type. |
Responses
Request samples
- Payload
{- "campaignId": "string",
- "adGroupId": "string",
- "idType": "GTIN_14",
- "productId": "string"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "campaignId": "string",
- "adGroupId": "string",
- "idType": "GTIN_14",
- "productId": "string",
- "ddSic": "string"
}
Get product ads
Get a list of product ads, optionally filtered by campaign IDs and/or adGroup IDs.
Authorizations:
query Parameters
startIndex | number Default: 0 0-indexed record offset for the result set. Defaults to 0. |
count | number Number of records to include in the paged response. |
campaignIdFilter | string A comma-delimited list of campaign identifiers. At least one of campaignIdFilter and adGroupIdFilter is required. |
adGroupIdFilter | string A comma-delimited list of ad group identifiers. At least one of campaignIdFilter and adGroupIdFilter is required. |
Responses
Response samples
- 200
- 400
- 401
- 500
{- "productAds": [
- {
- "campaignId": "string",
- "adGroupId": "string",
- "idType": "GTIN_14",
- "productId": "string",
- "ddSic": "string"
}
]
}
Delete product ad
Delete a single product ad by the provided identifier.
Authorizations:
Request Body schema: application/json
The identifier of an existing product ad.
campaignId required | string (CampaignId) Unique campaign identifier. |
adGroupId required | string (AdGroupId) Unique ad group identifier. |
idType required | string (ProductIdType) Enum: "GTIN_14" "UPC" "DD_SIC" Product ID type |
productId required | string (ProductId) Unique product identifier based on product ID type. |
Responses
Request samples
- Payload
{- "campaignId": "string",
- "adGroupId": "string",
- "idType": "GTIN_14",
- "productId": "string"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "campaignId": "string",
- "adGroupId": "string",
- "idType": "GTIN_14",
- "productId": "string",
- "ddSic": "string",
- "code": "string",
- "codeDescription": "string"
}
Create report
Create a single report.
Authorizations:
path Parameters
recordType required | object one of: CAMPAIGN, ADGROUP, PRODUCT, KEYWORD, PRODUCT_SALES, CATEGORY_SHARE, CATALOG |
Request Body schema: application/json
Report request parameters.
reportName required | string name of a report |
fileType | string (FileType) Value: "CSV" Report file type. |
startDate required | string (StartDate) Start date for the resource to go live. The format of the date is yyyy-MM-dd HH:mm:ss. |
endDate required | string (EndDate) End date for the resource to stop running. The format of the date is yyyy-MM-dd HH:mm:ss. |
segment | string (Segment) Enum: "PLACEMENT" "NONE" A secondary dimension used to further segment certain types of reports. |
groupBys | Array of strings (GroupBy) Items Enum: "BRAND" "VERTICAL" "CATEGORY" "ITEM" CATEGORY only valid for Alcohol advertisers. |
timeGranularity | string (TimeGranularity) Enum: "HOUR" "DAY" "WEEK" "MONTH" "NONE" Notes:
|
Array of objects (CatalogReportFilter) |
Responses
Request samples
- Payload
{- "reportName": "string",
- "fileType": "CSV",
- "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "segment": "PLACEMENT",
- "groupBys": [
- "BRAND"
], - "timeGranularity": "HOUR",
- "filters": [
- {
- "field": "L1_BRAND",
- "terms": [
- "string"
]
}
]
}
Response samples
- 200
- 400
- 401
- 500
{- "reportId": "string"
}
Download report
Download a single report by the provided identifier.
Authorizations:
path Parameters
reportId required | string The identifier for a report. |
Responses
Response samples
- 200
- 400
- 401
- 500
{- "reportId": "string",
- "name": "string",
- "requestedAt": "2025-05-01 00:00:00",
- "reportExpiresAt": "2025-05-01 00:00:00",
- "status": "COMPLETED",
- "recordType": "CAMPAIGN",
- "groupBys": [
- "BRAND"
], - "timeGranularity": "HOUR"
}
Get reports
Get a list of reports, optionally filtered by status or report type.
Authorizations:
query Parameters
startDate required | string Get all reports requested after this date. |
endDate | string Get all reports requested before this date. |
startIndex | number Default: 0 0-indexed record offset for the result set. Defaults to 0. |
count | number Number of records to include in the paged response. |
status | string (ReportStatus) Enum: "SCHEDULED" "PROCESSING" "COMPLETED" "ERROR" Example: status=COMPLETED Filter report by status. |
Responses
Response samples
- 200
- 400
- 401
- 500
{- "totalCount": 0,
- "reports": [
- {
- "reportId": "string",
- "name": "string",
- "status": "COMPLETED",
- "recordType": "CAMPAIGN",
- "segment": "PLACEMENT",
- "groupBys": [
- "BRAND"
], - "startDate": "2025-05-01 00:00:00",
- "endDate": "2025-05-01 00:00:00",
- "dateGenerated": "2025-05-01 00:00:00"
}
]
}
Validate products
Validate eligibility of a list of catalog products. Products in result will be returned in the same order as provided in the request.
Authorizations:
Request Body schema: application/json
List of product IDs
idType | string (ProductIdType) Enum: "GTIN_14" "UPC" "DD_SIC" Product ID type |
productId | string (ProductId) Unique product identifier based on product ID type. |
Responses
Request samples
- Payload
[- {
- "idType": "GTIN_14",
- "productId": "string"
}
]
Response samples
- 200
- 400
- 401
- 500
[- {
- "idType": "GTIN_14",
- "productId": "string",
- "isEligible": true,
- "brandName": "string",
- "productName": "string",
- "imageUrl": "string",
- "ddSic": "string"
}
]
Get recommended keywords
Get a list of recommended keywords for the provided products and placement type.
Authorizations:
Request Body schema: application/json
List of placement types and list of product IDs.
required | Array of objects (Placement) Placement type must be 'SEARCH' for recommended keywords. |
required | Array of objects List of product IDs |
Responses
Request samples
- Payload
{- "placements": [
- {
- "type": "SEARCH"
}
], - "products": [
- {
- "idType": "GTIN_14",
- "productId": "string"
}
]
}
Response samples
- 200
- 400
- 401
- 500
{- "recommendedKeywords": {
- "SEARCH": [
- "string"
], - "property1": [
- "string"
], - "property2": [
- "string"
]
}
}
Get recommended keywords with status in ad group
Get a list of recommended keywords and their status within the given ad group (e.g. new) for the provided products and placement type.
Authorizations:
path Parameters
adGroupId required | string Unique identifier for an ad group |
Request Body schema: application/json
List of placement types and list of product IDs.
required | Array of objects (Placement) Placement type must be 'SEARCH' for recommended keywords. |
required | Array of objects List of product IDs |
Responses
Request samples
- Payload
{- "placements": [
- {
- "type": "SEARCH"
}
], - "products": [
- {
- "idType": "GTIN_14",
- "productId": "string"
}
]
}
Response samples
- 200
- 400
- 401
- 500
{- "recommendedKeywords": {
- "SEARCH": [
- {
- "keyword": "string",
- "status": "NEW"
}
], - "property1": [
- {
- "keyword": "string",
- "status": "NEW"
}
], - "property2": [
- {
- "keyword": "string",
- "status": "NEW"
}
]
}
}
Search resources
Get a list of resources (categories or advertiser's brands) based on classification type and resource type.
Authorizations:
Request Body schema: application/json
classificationType required | string (ClassificationType) Enum: "BRAND" "CATEGORY" |
resourceTypes | Array of strings Items Enum: "L1_BRAND" "L1_CATEGORY" "L2_CATEGORY" When classificationType = BRAND, resourceTypes must be at least one of [L1_BRAND]. When classificationType = CATEGORY, resourceTypes must be at least one of [L1_CATEGORY, L2_CATEGORY]. When not provided, will return only L1s for the provided classification. When provided, will returns associated resources of the provided classification type. |
searchAfter | string Null when results included all matching resources. Base64 encoded string of the request payload when there are additional resources not included within the current result set. |
limit | number Default: 10 |
Responses
Request samples
- Payload
{- "classificationType": "BRAND",
- "resourceTypes": [ ],
- "searchAfter": "string",
- "limit": 10
}
Response samples
- 200
- 400
- 401
- 500
{- "results": [
- {
- "id": "string",
- "name": "string",
- "type": "L1_BRAND"
}
], - "searchAfter": "string"
}