/preview/retail-media/catalog/products/batch
curl --request POST \
--url https://api.criteo.com/preview/retail-media/catalog/products/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"entries": [
{
"merchantId": 123,
"batchId": 123,
"feedId": "<string>",
"itemGroupId": "<string>",
"productId": "<string>"
}
]
}
'import requests
url = "https://api.criteo.com/preview/retail-media/catalog/products/batch"
payload = { "entries": [
{
"merchantId": 123,
"batchId": 123,
"feedId": "<string>",
"itemGroupId": "<string>",
"productId": "<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({
entries: [
{
merchantId: 123,
batchId: 123,
feedId: '<string>',
itemGroupId: '<string>',
productId: '<string>'
}
]
})
};
fetch('https://api.criteo.com/preview/retail-media/catalog/products/batch', 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/preview/retail-media/catalog/products/batch",
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([
'entries' => [
[
'merchantId' => 123,
'batchId' => 123,
'feedId' => '<string>',
'itemGroupId' => '<string>',
'productId' => '<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/preview/retail-media/catalog/products/batch"
payload := strings.NewReader("{\n \"entries\": [\n {\n \"merchantId\": 123,\n \"batchId\": 123,\n \"feedId\": \"<string>\",\n \"itemGroupId\": \"<string>\",\n \"productId\": \"<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/preview/retail-media/catalog/products/batch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"entries\": [\n {\n \"merchantId\": 123,\n \"batchId\": 123,\n \"feedId\": \"<string>\",\n \"itemGroupId\": \"<string>\",\n \"productId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.criteo.com/preview/retail-media/catalog/products/batch")
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 \"entries\": [\n {\n \"merchantId\": 123,\n \"batchId\": 123,\n \"feedId\": \"<string>\",\n \"itemGroupId\": \"<string>\",\n \"productId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"operationToken": "<string>"
}/preview/retail-media/catalog/products/batch
Used to publish a batch of operations to insert, update and deletes products. The batch is processed asynchronously.The response provides an operationToken which can be used to track the status of the report of the operation.
POST
/
preview
/
retail-media
/
catalog
/
products
/
batch
/preview/retail-media/catalog/products/batch
curl --request POST \
--url https://api.criteo.com/preview/retail-media/catalog/products/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"entries": [
{
"merchantId": 123,
"batchId": 123,
"feedId": "<string>",
"itemGroupId": "<string>",
"productId": "<string>"
}
]
}
'import requests
url = "https://api.criteo.com/preview/retail-media/catalog/products/batch"
payload = { "entries": [
{
"merchantId": 123,
"batchId": 123,
"feedId": "<string>",
"itemGroupId": "<string>",
"productId": "<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({
entries: [
{
merchantId: 123,
batchId: 123,
feedId: '<string>',
itemGroupId: '<string>',
productId: '<string>'
}
]
})
};
fetch('https://api.criteo.com/preview/retail-media/catalog/products/batch', 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/preview/retail-media/catalog/products/batch",
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([
'entries' => [
[
'merchantId' => 123,
'batchId' => 123,
'feedId' => '<string>',
'itemGroupId' => '<string>',
'productId' => '<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/preview/retail-media/catalog/products/batch"
payload := strings.NewReader("{\n \"entries\": [\n {\n \"merchantId\": 123,\n \"batchId\": 123,\n \"feedId\": \"<string>\",\n \"itemGroupId\": \"<string>\",\n \"productId\": \"<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/preview/retail-media/catalog/products/batch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"entries\": [\n {\n \"merchantId\": 123,\n \"batchId\": 123,\n \"feedId\": \"<string>\",\n \"itemGroupId\": \"<string>\",\n \"productId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.criteo.com/preview/retail-media/catalog/products/batch")
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 \"entries\": [\n {\n \"merchantId\": 123,\n \"batchId\": 123,\n \"feedId\": \"<string>\",\n \"itemGroupId\": \"<string>\",\n \"productId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"operationToken": "<string>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
application/json
Defines a batch of operations.
The request entries to be processed in the batch.
Show child attributes
Show child attributes
Response
202 - application/json
Batch accepted. The status of the operation can be tracked using the report endpoint and the operationToken.
A batch was accepted. The report can be accessed using the reporting endpoint.
Was this page helpful?
/preview/retail-media/catalog/merchants/{merchantId}/store-inventory/upsert
Previous
/preview/retail-media/catalog/products/batch/report/{operation-token}
Next
⌘I