Introduction
Business Context
Prior to this release, the Retail Media API did not expose retailer scoping on balances, campaigns, or line items. Retailer-billed buying requires platforms to associate balances, campaigns, and line items to the same retailer β the API now enforces these constraints explicitly.Prerequisites
- API version
2026-01or later is required to see retailer-billed balances. On prior versions, retailer-billed balances are hidden by default to prevent integration surprises during rollout. - Platforms must use the supply account ID when querying balances if they wish to discover retailer-billed balances.
Key Concepts
- Retailer-billed balance β a budget object funded by the retailer, scoped to a specific
RetailerId. Cannot be created via API; must be retrieved viaGET /balances. RetailerIdβ the identifier of the retailer that funds the balance and scopes the campaign. Must be consistent across balance β campaign β line item.budgetModelβ a new field on the retailer search response indicating which budget models (e.g.,retailerBilled,capped,uncapped) are supported at a given retailer.
Endpoints Overview
Verb | Endpoint | Description |
|---|---|---|
GET |
| Get a single balance. Now includes |
GET |
| List balances. Now includes retailer fields. Retailer-billed balances hidden on prior versions. |
GET |
| Get balance change history. Now includes |
POST |
| Add campaigns to a balance. Validates retailer consistency. |
POST |
| Remove campaigns from a balance. Returns error for retailer-billed balances. |
POST |
| Create a campaign. Now accepts and validates |
GET |
| List campaigns. Now returns |
GET |
| Get a campaign. Now returns |
POST |
| Create a line item. Enforces |
POST |
| Search retailers. Now returns |
Attributes
New and Changed Fields on Balances
Attribute | Data Type | Mutable | Description |
|---|---|---|---|
|
| init | Retailer this balance is scoped to. Present only on retailer-billed balances. Nullable? Y (null for non-retailer-billed) |
|
| always | Retailer purchase order number.Replacesthe removed Nullable? Y |
|
| always | Criteo purchase order number. Replacesthe removed Nullable? Y |
|
| init | Billing type for Private Market. Values: |
~~ |
| β | Removedin |
New Field on Campaigns
A new fieldRetailerId has been added to the following endpoints:
/accounts/{accountId}/campaigns/campaigns/{campaignId}
Attribute | Data Type | Description |
|---|---|---|
|
| The retailer this campaign is associated with. Required when using a retailer-billed balance. Writeable?Y (at create) Nullable?Y (for non-retailer-billed campaigns) |
New Fields on Retailer Search
The new fields are added to the following endpoint:/accounts/{accountId}/retailers/search
Attribute | Data Type | Description |
|---|---|---|
|
| Budget model(s) supported for the given Values: Writeable?N Nullable?N |
New Error Codes
Error code | Endpoint | Meaning |
|---|---|---|
|
| Cannot remove a retailer-billed balance from a campaign. |
|
| Campaign |
|
| Line item |
Endpoint Changes
Get List of Balances for an Account
This endpoint returns a paginated list of balances for an account. On API version2026-01 and later, retailer-billed balances are included and retailerId, retailerPoNumber, and criteoPoNumber are returned. The old poNumber field is removed.
offset(int, default 0),limit(int, default 25, max 500),limitToId(List<string>)
Add Campaigns to a Balance
This endpoint adds one or more campaigns to a balance. It validates that campaigns are retailer-native when the balance is retailer-billed. Sample RequestRemove Campaign(s) from a Balance
This endpoint removes one or more campaigns from a balance. Sample RequestCreate New Campaigns
This endpoint creates a new campaign. Sample RequestGet Campaigns by Account ID and Campaign ID
Both endpoints now returnretailerId in the campaign attributes.
The list endpoint supports filtering by retailerId.
Sample Request β Get a Single Campaign
Create an Auction Line Item
Creates an auction line item. For retailer-billed campaigns,targetRetailerId is required and must match the campaignβs retailerId. Only one retailer is allowed per retailer-billed campaign.
Sample Request
Search Retailer for an Account
This endpoint allows searching for available retailers for an account. ThecampaignAvailabilities object now includes budgetModel, allowing platforms to determine which budget models are supported at a given retailer before creating a campaign.
Sample Request
Responses
Response | Title | Detail | Troubleshooting |
|---|---|---|---|
π’ | Success | Request executed successfully. | |
π΄ | Retailer-billed balance mapping | βOnly retailer-sold campaigns are allowed to be mapped to a retailer-billed balance.β | Only campaigns scoped to the same retailer as the balance can be appended via |
π΄ |
| Campaign | Ensure the |
π΄ |
| Line item | Ensure |
π΄ |
| A required field is missing or has an invalid value. | Review the request body against the attributes table above. |
π΄ |
| Verify your access token and that your account has access to the retailer in question. |