curl --request GET \
--url https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"campaignId": "<string>",
"discoveryId": "<string>",
"products": [
{
"productId": "<string>",
"salesAgentId": "<string>",
"selectedAt": "<string>",
"mediaBuys": [
{
"mediaBuyId": "<string>",
"status": "<string>",
"name": "<string>",
"packageIds": [
"<string>"
]
}
],
"productName": "<string>",
"salesAgentName": "<string>",
"publisherDomain": "<string>",
"publisherName": "<string>",
"bidPrice": 123,
"budget": 123,
"pricingOptionId": "<string>",
"pricingModel": "<string>",
"searchContext": {
"id": "<string>",
"brief": "<string>"
}
}
],
"searchContexts": [
{
"id": "<string>",
"brief": "<string>",
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"createdAt": "<string>",
"productCount": 4503599627370495
}
],
"summary": {
"totalProducts": 4503599627370495,
"productsOnMediaBuys": 4503599627370495,
"productsPending": 4503599627370495
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Get campaign products
List all products staged on a campaign together with the discovery run that found each one and any media buys it has been executed into. Use to inspect what products are queued for execution before launching a campaign.
curl --request GET \
--url https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"campaignId": "<string>",
"discoveryId": "<string>",
"products": [
{
"productId": "<string>",
"salesAgentId": "<string>",
"selectedAt": "<string>",
"mediaBuys": [
{
"mediaBuyId": "<string>",
"status": "<string>",
"name": "<string>",
"packageIds": [
"<string>"
]
}
],
"productName": "<string>",
"salesAgentName": "<string>",
"publisherDomain": "<string>",
"publisherName": "<string>",
"bidPrice": 123,
"budget": 123,
"pricingOptionId": "<string>",
"pricingModel": "<string>",
"searchContext": {
"id": "<string>",
"brief": "<string>"
}
}
],
"searchContexts": [
{
"id": "<string>",
"brief": "<string>",
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"createdAt": "<string>",
"productCount": 4503599627370495
}
],
"summary": {
"totalProducts": 4503599627370495,
"productsOnMediaBuys": 4503599627370495,
"productsPending": 4503599627370495
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Authorizations
API key or access token
Path Parameters
Unique identifier for the campaign
1"cmp_987654321"
Response
Get campaign products
Every product attached to a campaign, sourced from the campaign's media buys (authoritative) plus any discovery-staged products that have not yet been executed onto a media buy. Use this to get the full ad-product list for a campaign without paging through the nested mediaBuys[] tree on get_campaign. Pass mediaBuyId to narrow to a specific buy.
Campaign ID
Discovery session attached to the campaign, or null if none attached
Products staged on this campaign
Show child attributes
Show child attributes
Discovery runs that have contributed products
Show child attributes
Show child attributes
Aggregate counts for products on the campaign
Show child attributes
Show child attributes