curl --request POST \
--url https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/auto-select-products \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/auto-select-products"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/auto-select-products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"campaignId": "<string>",
"discoveryId": "<string>",
"selectedProducts": [
{
"productId": "<string>",
"name": "<string>",
"salesAgentId": "<string>",
"groupId": "<string>",
"groupName": "<string>",
"budget": 123,
"cpm": 123,
"pricingOptionId": "<string>"
}
],
"budgetContext": {
"campaignBudget": 123,
"totalAllocated": 123,
"remainingBudget": 123,
"currency": "<string>"
},
"productCount": 4503599627370495,
"previouslySelectedCount": 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": {}
}
}Auto-select products
Automatically select products for a performance campaign using a 3-tier strategy (scoring → measurability → CPM heuristic). Campaign must be in DRAFT status. Supports iterative refinement via ADCP-style refine directives — review results then re-call with include/omit/more_like_this to adjust selections. Replaces all previously selected products.
curl --request POST \
--url https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/auto-select-products \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/auto-select-products"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/auto-select-products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"campaignId": "<string>",
"discoveryId": "<string>",
"selectedProducts": [
{
"productId": "<string>",
"name": "<string>",
"salesAgentId": "<string>",
"groupId": "<string>",
"groupName": "<string>",
"budget": 123,
"cpm": 123,
"pricingOptionId": "<string>"
}
],
"budgetContext": {
"campaignBudget": 123,
"totalAllocated": 123,
"remainingBudget": 123,
"currency": "<string>"
},
"productCount": 4503599627370495,
"previouslySelectedCount": 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"
Body
Optional refinement parameters for iterative auto-select product selection. Based on ADCP refine spec.
Array of refinement directives from a previous auto-select response. Supports request-scoped direction and product-scoped include/omit/more_like_this actions.
1Request-scoped refinement: direction for the overall selection
- Option 1
- Option 2
Show child attributes
Show child attributes
Maximum number of products to select
0 < x <= 90071992547409915
Minimum budget to allocate per product
x > 0500
Response
Auto-select products
Response from auto-selecting products for a performance campaign
Campaign ID
Discovery session ID containing the selected products
Products selected and added to the discovery session
Show child attributes
Show child attributes
Budget allocation summary
Show child attributes
Show child attributes
Total number of products selected
0 <= x <= 9007199254740991Number of previously selected products that were replaced by auto-select
0 <= x <= 9007199254740991