Introduction
Audience Segments represent groups of users, defined either explicitly throughContact Lists provided externally or by User Events intent behaviors automatically collected through our retailers integrations.
Multiple Audience Segments can be combined using logical Algebra Nodes to define the desired target audience for your campaigns.
2025 Preview versionof the Retail Media API. Only the create, update, and delete endpoints are included because they now support event-based targeting, which is not available in the stable API.Other endpoints (e.g.,
search, contact-list management) remain unchanged and are documented in the stable version of this page.create, update, delete) use a partial approval model. Even if some items in the request fail, the response will return 200 OK. Any failed items will be listed in the error section of the response with an error code and details.Examples of possible error codes:segment-not-found→ Segment is not found.name-must-be-unique→ Segment name must be unique.name-must-not-be-empty→ Segment name property must not be empty.
Endpoints
Verb | Endpoint | Description |
|---|---|---|
POST |
| Create a new Audience Segment |
PATCH |
| Update an Audience Segment |
POST |
| Delete an Audience Segment |
Audience Segment Attributes
Attribute | Data Type | Description |
|---|---|---|
| string | Audience Segment ID, generated internally by Criteo Accepted values: string of int64 Writeable? N / Nullable? N |
| string | Audience Segment name Accepted values: string Writeable? Y / Nullable? N |
| string | Description of the Audience Segment Accepted values: string Writeable? Y / Nullable? N |
| string | AccountID associated with the Audience Segment, generated internally by Criteo Accepted values: string of int64 Writeable? N / Nullable? N |
| string | RetailerID, associated with the Audience Segment, generated internally by Criteo Accepted values: string of int64 Writeable? N / Nullable? N |
| enum | Type of segment Accepted values:
Writeable? Y / Nullable? N |
| object | Setting to target users with contact list. Note, either one of See below for more details |
| object | Settings to target users based on their events. Note, either one of See below for more details |
| timestamp | Timestamp of Audience Segment creation, in UTC Accepted values: Writeable? N / Nullable? N |
| string | User ID who created the Audience Segment ( Accepted values: string Writeable? N / Nullable? Y |
| timestamp | Timestamp of last Audience Segment update, in UTC Accepted values: Writeable? N / Nullable? N |
| list\ | Channels associated to the audience Accepted values: Writeable? N / Nullable? N |
create operation
- Writeable (Y/N): Indicates if the field can be modified in requests.
- Nullable (Y/N): Indicates if the field can accept null/empty values.
- Primary Key: A unique, immutable identifier of the entity, generated internally by Criteo. Primary keys are typically ID fields (e.g.,
retailerId,campaignId,lineItemId) and are usually required in the URL path.
Contact List Segment Attributes
Attribute | Data Type | Description |
|---|---|---|
| boolean | Indicates if the contact list can be edited Accepted values: Writeable? N / Nullable? N |
| enum | User identifier type from Contact list Accepted values: Writeable? N / Nullable? N |
- Writeable (Y/N): Indicates if the field can be modified in requests.
- Nullable (Y/N): Indicates if the field can accept null/empty values.
- Primary Key: A unique, immutable identifier of the entity, generated internally by Criteo. Primary keys are typically ID fields (e.g.,
retailerId,campaignId,lineItemId) and are usually required in the URL path.
Events Segment Attributes
Attribute | Data Type | Description |
|---|---|---|
| enum | Activity type performed by the desired target users in the retailer’s environment Accepted values: Writeable? Y / Nullable? N |
| enum | Timeframe of the interaction performed by the desired target users in the retailer’s environment Accepted values: Writeable? Y / Nullable? N |
| list\ | Define users interested in specific categories usingSearch Category. Note, either one of See the dedicated section right below for more details. Accepted values: array of strings/int64 Writeable? Y / Nullable? Y |
| list\ | Define users who performed the activity type above in specificbrands. Note, either one of See the dedicated section right below for more details. Accepted values: array of strings/int64 Writeable? Y / Nullable? Y |
| decimal | Define users who interact with products whose prices are greater than Accepted values: Writeable? Y / Nullable? Y |
| decimal | Define users who interact with products whose prices are smaller than Accepted values: Writeable? Y / Nullable? Y |
- Writeable (Y/N): Indicates if the field can be modified in requests.
- Nullable (Y/N): Indicates if the field can accept null/empty values.
- Primary Key: A unique, immutable identifier of the entity, generated internally by Criteo. Primary keys are typically ID fields (e.g.,
retailerId,campaignId,lineItemId) and are usually required in the URL path.
Sourcing Category and Brand IDs
To populate thecategoryId and brandId attributes when creating or updating audience segments, use the following endpoints:
categoryID
Use the Search Categories endpoint to find category IDs relevant to your campaign. This method offers a faster lookup than navigating the full product catalog.
brandID
Two endpoints should be used together to accurately source brandId:
/brands/search– retrieves all available brands./accounts/{accountId}/brands– retrieves only the brands mapped to a specific account.
brandId used is mapped to the account associated with the audience segment. A best practice is to cross-reference both the brandId and the intended retailerId to verify eligibility for targeting.
Create Audience Segment
This endpoint allows creating Audience Segments, either from Contact List or Users Events type. Sample Request:Update Audience Segment
This endpoint allows updatingAudience Segments, either from Contact List or Users Events type.
Contact List segments, it’s possible to update their metadata (name and description) but not their identity types. For those cases, please create a new segment with the new desired identifier type.Delete Audience Segment
This endpoint allows deleting Audience Segments, either one by one or multiple of them. Sample requestPartial 200 OK response
Errors and warnings
Errors and warnings are grouped by category for clarity and usability.Request Structure Errors
duplicate-id
Error: Segment ID cannot be duplicatedMessage: The data object must not have multiple segment objects with the same ID.
duplicate-name
Error: Cannot have duplicated segment namesMessage: Each segment in the request must have a unique name.
empty-attributes-object
Error: Cannot have an empty attributes objectMessage: The request must have attributes object provided.
empty-data-object
Error: Cannot have an empty data objectMessage: The request must have at least one element in the data object.
invalid-segment-type
Error: Segment type is invalidMessage: abcdef is not a valid segment type.
multiple-segment-types
Error: Cannot have a segment object with multiple types definedMessage: The segment object must have exactly one type defined.
non-parsable-id
Error: One or more IDs cannot be parsedMessage: All IDs in the segment object must have a valid numerical ID.
undefined-segment-type
Error: Cannot have a segment object without any type definedMessage: The segment object must have exactly one type defined.
Payload & Limits
payload-too-big
Error: Cannot create more than 10 segments at a timeMessage: Each request must have at most 10 segment objects.
segments-limit-reached
Error: Too many audience segmentsMessage: Advertiser(s) 30, 40 have reached the number of allowed audience segments.
Pagination Errors
pagination-is-required
Error: Pagination is requiredMessage: Pagination is required when no entity IDs are provided in the filters.
pagination-limit-cannot-be-zero
Error: Pagination limit cannot be zeroMessage: Pagination limit must be great than 0 when offset is positive.
pagination-limit-invalid
Error: Pagination limit is invalidMessage: Pagination limit must be a positive number lower than 10 (current limit set to 10).
pagination-offset-invalid
Error: Pagination offset is invalidMessage: Pagination offset must be a positive number.
Account and Authorization Errors
account-must-be-active
Error: Account must be activeMessage: The account used must be active.
account-must-be-supply
Error: Account must be supplyMessage: The account used must be a supply account.
account-must-exist
Error: Account must existMessage: The account used must exist.
retailer-must-be-authorized
Error: Retailer must be authorizedMessage: The retailer associated with the account must be authorized.
retailer-must-be-live
Error: Retailer must be liveMessage: The retailer used must be live.
brands-must-be-authorized
Error: Brands must be authorizedMessage: You are not authorized to use one or more of the provided brand IDs.
add-to-cart-must-be-supported-for-retailer
Error: Add to cart must be supportedMessage: The retailer used must support add to cart.
Validation Errors
brand-list-must-be-valid
Error: Brand list must be validMessage: The provided brands are unknown or cannot be found within the given country: (30, 40).
buying-power-must-be-valid
Error: Buying power must be validMessage: Buying power value is unknown: (Low).
categories-must-exist
Error: Categories must existMessage: One or more of the provided category IDs do not exist.
categories-or-brands-must-be-set
Error: Categories or brands must be setMessage: Either category IDs or brand IDs must be set.
category-must-be-valid
Error: Category must be validMessage: The specified category value is invalid.
lookback-days-must-be-set
Error: Lookback days must be setMessage: Lookback days must be set.
name-must-be-unique
Error: Segment name must be uniqueMessage: Another Segment exists with the name: abcdef.
name-must-not-be-empty
Error: Segment name property must not be emptyMessage: Cannot have an empty name in a create Segment entity.
name-must-not-be-too-long
Error: Segment name property must not be too longMessage: Segment names must be no longer than 10 characters.
price-range-must-be-valid
Error: Price range must be validMessage: At least one price range must be set or one of the provided value is unknown.
segment-must-not-be-used-in-audience
Error: Segment must not be used in an audienceMessage: The segment must be removed from all audiences to be able to delete it.
segment-not-found
Error: Segment not foundMessage: Segment ID abcdef was not found.
shopper-activity-must-be-set
Error: Shopper activity must be setMessage: Shopper activity must be set.
start-date-must-be-before-end-date
Error: Start date must be before end dateMessage: Start date and end date are not chronologically ordered.
type-must-be-the-same
Error: Type must be the sameMessage: Segment type cannot be changed after creation. The information sent is incompatible with the type of the segment.