Skip to main content
Getting Started
  • A promoted product specifies the product that will be advertised on a line item.
  • Identify eligible products to promote by accessing your account catalog.
  • Each product can optionally be configured with a specific bid amount, allowing you to control how much you are willing to pay per click.
  • The suggested limit is 1500 SKUs. This is a soft limit: exceeding it won’t result in errors, but performance runs the risk of degradation at higher volumes.

Endpoints

Method

Endpoint

Description

GET

/line-items/{lineItemId}/products

Retrieve all products associated with a specific line item.

POST

/line-items/{lineItemId}/products/append

Add products to a specific line item or update their bid override.

POST

/line-items/{lineItemId}/products/delete

Remove products from a specific line item.

POST

/line-items/{lineItemId}/products/pause

Pause products on a specific line item, preventing them from being advertised.

POST

/line-items/{lineItemId}/products/unpause

Reactivate paused products on a specific line item, allowing them to be advertised again.

 

Attribute

Data Type

Description

id*

string

Product ID, unique identifier at theRetailercatalog and obtained from the accountCatalog

Accepted values: up to500-chars string

Writeable? N / Nullable? N

lineItemId*

string

Line ItemID, in which the product is to be promoted; required in the endpoints’ path to define in which line item to perform the action

Accepted values: string or int64

Writeable? N / Nullable? N

bidOverride

decimal

Bid value for the specific product; overridestargetBidspecified on theLine Itemand must satisfyminBidfromCatalog(input excludes platform fees). The value0.0will remove a bidOverride and the product bid will default to the line item’stargetBid.

Accepted values:bidOverrideminBid,0.0

Writeable? N / Nullable? Y

status

enum

Status of Promoted Product; can only be updated toactiveorpausedusing the endpoints below.

For more details about each state, check outCampaign, Line Item & Products Status

Returned values:active,paused,scheduled,ended,budgetHit,noFunds,draft,archived

Writeable? Y / Nullable? N

*Required
Field Definitions
  • 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.

Get All Products on Specific Line Item

This endpoint lists all products on the specified line item. Results are paginated using offset and limit query parameters; if omitted, defaults to 0 and 500, respectively. See API Response. Additional query parameter fields is supported to receive a comma-separated list of optional attributes to include in the response, to optimize response time and payload length. Sample Request
curl -X GET "https://api.criteo.com/{version}/retail-media/line-items/2465695028166499188/products?offset=0&limit=10&fields=bidOverride,status" \
    -H "Authorization: Bearer <MY_ACCESS_TOKEN>"
Sample Response 🔵 HTTP code 200:
{
    "meta": {
        "offset": 0,
        "limit": 10,
        "count": 10,
        "responseCount": 10
    },
    "data": [
        {
            "id": "06d3049c3e1642ec92479dbeca1fc39f",
            "type": "RetailMediaPromotedProduct",
            "attributes": {
                "bidOverride": 0.70,
                "status": "active"
            }
        },
        // ...
        {
            "id": "926097",
            "type": "RetailMediaPromotedProduct",
            "attributes": {
                "bidOverride": 0.30,
                "status": "active"
            }
        }
    ]
}

Add Products to specific Line Item, or Update Bid Override

This endpoint adds one or more products to promote on the specified line item. If the product already exists, only its bid override will be updated. Sample Request
curl -L -X POST 'https://api.criteo.com/{version}/retail-media/line-items/2465695028166499188/products/append' \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <MY_ACCESS_TOKEN>' \
    -d '{
            "data": [
                {
                    "id": "492731",
                    "type": "RetailMediaPromotedProduct",
                    "attributes": {
                        "id": "492731",
                        "status": "paused",
                        "bidOverride": "0.0"
                    }
                }
            ]
        }'
Sample Response 🔵 HTTP code 204 (no body content)

Remove Products from a specific Line Item

This endpoint removes one or more products from the specified line item. The resulting state of the line item is returned as a single page. Line items can be created without any promoted products, but once any products are added, at least one product must remain. Sample Request
curl -X POST "https://api.criteo.com/{version}/retail-media/line-items/2465695028166499188/products/delete" \
    -H "Authorization: Bearer <MY_ACCESS_TOKEN>" \
    -H "Content-Type: application/json" \
    -d '{
            "data": [
                {
                    "id": "sku1",
                    "type": "RetailMediaPromotedProduct"
                }
            ]
        }'
Sample Response 🔵 HTTP code 204 (no body content)

Pause Products on a Specific Line Item

This endpoint allows reactivating one or multiple paused products on a line item: Sample Request
curl -X POST 'https://api.criteo.com/{version}/retail-media/line-items/311990577399115776/products/pause' \
		-H 'Content-Type: application/json' \
		-H'Authorization: Bearer <MY_ACCESS_TOKEN>' \
    -d '{
          "data": [
            {
              "id": "4f5c49fce3c94542b5023e7cc1e1f5ca",
              "type": "RetailMediaPromotedProduct"
            }
         ]
    }'
Sample Response 🔵 HTTP code 204 (no body content)

Unpaused Products on a Specific Line Item

This endpoint allows unpausing one or multiple products on a line item: Sample Request
curl -L -X POST 'https://api.criteo.com/{version}/retail-media/line-items/311990577399115776/products/unpause' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <MY_ACCESS_TOKEN>' \
-d '{
  "data": [
    {
      "id": "4f5c49fce3c94542b5023e7cc1e1f5ca",
      "type": "RetailMediaPromotedProduct"
    }
  ]
}'
Sample Response 🔵 HTTP code 204 (no body content)

Responses

Response

Description

🟢200

Call completed with success

🟢204

Promoted product paused or unpaused with success (no body content returned)

🔴400

Bad Request - Common validation errors:

  • Could not find the SKU ID used to append to the line item. Make sure the SKU exists in the retailer’s catalog
  • Product bid override less than the product min bid
  • Invalid bid override: Cannot use bid override attribute for a product belonging to a preferred deals line item
  • Pausing/Unpausing promoted products: Only the ID is required; do not includeBidOverrideorStatusattributes.

🔴403

API user does not have authorization to make requests for the account ID. For authorization, follow theauthorization requeststeps.

🔴404

Line item ID not found