/2025-04/retail-media/line-items/{line-item-id}/products/delete
curl --request POST \
--url https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": [
{
"attributes": {
"bidOverride": 123,
"id": "<string>"
},
"id": "<string>",
"type": "<string>"
}
]
}
'import requests
url = "https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete"
payload = { "data": [
{
"attributes": {
"bidOverride": 123,
"id": "<string>"
},
"id": "<string>",
"type": "<string>"
}
] }
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({
data: [
{
attributes: {bidOverride: 123, id: '<string>'},
id: '<string>',
type: '<string>'
}
]
})
};
fetch('https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
[
'attributes' => [
'bidOverride' => 123,
'id' => '<string>'
],
'id' => '<string>',
'type' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete"
payload := strings.NewReader("{\n \"data\": [\n {\n \"attributes\": {\n \"bidOverride\": 123,\n \"id\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": [\n {\n \"attributes\": {\n \"bidOverride\": 123,\n \"id\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": [\n {\n \"attributes\": {\n \"bidOverride\": 123,\n \"id\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body/2025-04/retail-media/line-items/{line-item-id}/products/delete
Remove a collection of promoted products from a line item
POST
/
2025-04
/
retail-media
/
line-items
/
{line-item-id}
/
products
/
delete
/2025-04/retail-media/line-items/{line-item-id}/products/delete
curl --request POST \
--url https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": [
{
"attributes": {
"bidOverride": 123,
"id": "<string>"
},
"id": "<string>",
"type": "<string>"
}
]
}
'import requests
url = "https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete"
payload = { "data": [
{
"attributes": {
"bidOverride": 123,
"id": "<string>"
},
"id": "<string>",
"type": "<string>"
}
] }
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({
data: [
{
attributes: {bidOverride: 123, id: '<string>'},
id: '<string>',
type: '<string>'
}
]
})
};
fetch('https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
[
'attributes' => [
'bidOverride' => 123,
'id' => '<string>'
],
'id' => '<string>',
'type' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete"
payload := strings.NewReader("{\n \"data\": [\n {\n \"attributes\": {\n \"bidOverride\": 123,\n \"id\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": [\n {\n \"attributes\": {\n \"bidOverride\": 123,\n \"id\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.criteo.com/2025-04/retail-media/line-items/{line-item-id}/products/delete")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": [\n {\n \"attributes\": {\n \"bidOverride\": 123,\n \"id\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
ID of the line item
Body
application/json
Request body whose {data} contains an array of promoted products.
Request object containing promoted products to be appended, deleted, paused or unpaused.
Show child attributes
Show child attributes
Response
204
Promoted products removed from the line item
Was this page helpful?
/2025-04/retail-media/line-items/{line-item-id}/products/append
Previous
/2025-04/retail-media/line-items/{line-item-id}/products/pause
Next
⌘I