/2026-01/retail-media/retailers/{retailerId}/categories/search
curl --request POST \
--url https://api.criteo.com/2026-01/retail-media/retailers/{retailerId}/categories/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"attributes": {
"categoryIds": [
"<string>"
],
"textSubstring": "<string>"
},
"type": "<string>"
}
}
'import requests
url = "https://api.criteo.com/2026-01/retail-media/retailers/{retailerId}/categories/search"
payload = { "data": {
"attributes": {
"categoryIds": ["<string>"],
"textSubstring": "<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: {categoryIds: ['<string>'], textSubstring: '<string>'},
type: '<string>'
}
})
};
fetch('https://api.criteo.com/2026-01/retail-media/retailers/{retailerId}/categories/search', 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/2026-01/retail-media/retailers/{retailerId}/categories/search",
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' => [
'categoryIds' => [
'<string>'
],
'textSubstring' => '<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/2026-01/retail-media/retailers/{retailerId}/categories/search"
payload := strings.NewReader("{\n \"data\": {\n \"attributes\": {\n \"categoryIds\": [\n \"<string>\"\n ],\n \"textSubstring\": \"<string>\"\n },\n \"type\": \"<string>\"\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/2026-01/retail-media/retailers/{retailerId}/categories/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"attributes\": {\n \"categoryIds\": [\n \"<string>\"\n ],\n \"textSubstring\": \"<string>\"\n },\n \"type\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.criteo.com/2026-01/retail-media/retailers/{retailerId}/categories/search")
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 \"attributes\": {\n \"categoryIds\": [\n \"<string>\"\n ],\n \"textSubstring\": \"<string>\"\n },\n \"type\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"attributes": {
"name": "<string>",
"parentId": "<string>",
"text": "<string>"
},
"id": "<string>",
"type": "<string>"
}
],
"errors": [
{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"source": {},
"stackTrace": "<string>",
"title": "<string>",
"traceId": "<string>"
}
],
"metadata": {
"limit": 123,
"offset": 123,
"count": 123
},
"warnings": [
{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"source": {},
"stackTrace": "<string>",
"title": "<string>",
"traceId": "<string>"
}
]
}/2026-01/retail-media/retailers/{retailerId}/categories/search
Search a retailer categories by given text substring and category ids.
POST
/
2026-01
/
retail-media
/
retailers
/
{retailerId}
/
categories
/
search
/2026-01/retail-media/retailers/{retailerId}/categories/search
curl --request POST \
--url https://api.criteo.com/2026-01/retail-media/retailers/{retailerId}/categories/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"attributes": {
"categoryIds": [
"<string>"
],
"textSubstring": "<string>"
},
"type": "<string>"
}
}
'import requests
url = "https://api.criteo.com/2026-01/retail-media/retailers/{retailerId}/categories/search"
payload = { "data": {
"attributes": {
"categoryIds": ["<string>"],
"textSubstring": "<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: {categoryIds: ['<string>'], textSubstring: '<string>'},
type: '<string>'
}
})
};
fetch('https://api.criteo.com/2026-01/retail-media/retailers/{retailerId}/categories/search', 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/2026-01/retail-media/retailers/{retailerId}/categories/search",
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' => [
'categoryIds' => [
'<string>'
],
'textSubstring' => '<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/2026-01/retail-media/retailers/{retailerId}/categories/search"
payload := strings.NewReader("{\n \"data\": {\n \"attributes\": {\n \"categoryIds\": [\n \"<string>\"\n ],\n \"textSubstring\": \"<string>\"\n },\n \"type\": \"<string>\"\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/2026-01/retail-media/retailers/{retailerId}/categories/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"attributes\": {\n \"categoryIds\": [\n \"<string>\"\n ],\n \"textSubstring\": \"<string>\"\n },\n \"type\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.criteo.com/2026-01/retail-media/retailers/{retailerId}/categories/search")
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 \"attributes\": {\n \"categoryIds\": [\n \"<string>\"\n ],\n \"textSubstring\": \"<string>\"\n },\n \"type\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"attributes": {
"name": "<string>",
"parentId": "<string>",
"text": "<string>"
},
"id": "<string>",
"type": "<string>"
}
],
"errors": [
{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"source": {},
"stackTrace": "<string>",
"title": "<string>",
"traceId": "<string>"
}
],
"metadata": {
"limit": 123,
"offset": 123,
"count": 123
},
"warnings": [
{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"source": {},
"stackTrace": "<string>",
"title": "<string>",
"traceId": "<string>"
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Retailer id.
Query Parameters
Limit of the search result.
Required range:
1 <= x <= 500Offset of the search result.
Required range:
0 <= x <= 2147483647Body
application/json
Request of categories search.
A top-level object that encapsulates a Criteo API request for a single value objects.
A value resource exposed by the API.
Show child attributes
Show child attributes
Response
200 - application/json
Success
A top-level object that encapsulates a Criteo API response for several entities and metadata.
Show child attributes
Show child attributes
Errors that occured during this call.
Show child attributes
Show child attributes
Metadata related to the current request.
Show child attributes
Show child attributes
Warnings that occured during this call.
Show child attributes
Show child attributes
Was this page helpful?
/2026-01/retail-media/retailers/{retailer-id}/templates/{template-id}
Previous
/2026-01/retail-media/retailers/{retailerId}/cpc-min-bids
Next
⌘I