Skip to main content

Introduction

An account represents a brand, agency, marketplace seller, or retailer. It serves as a business and billing entity that contains campaigns.
Accounts are created by Criteo. Please reach out to your account representative

Endpoint

MethodEndpointDescription
GET/accountsGet All Accounts

Account Attributes

AttributeData TypeDescription
idstringAccount ID, from a demand or supply account (generated internally by Criteo)Accepted values: string of int64 Writeable? N / Nullable? N
namestringAccount name, arbitrary and defined at account creationAccepted values: up to 510-chars string Writeable? Y / Nullable? N
typeenumAccount type, with supply being the account type for Retailers and demand the account type for the different types of advertisers (brand, marketplace sellers, agencies, etc)Accepted values: demand, supply Writeable? N / Nullable? N
subtypeenumAccount sub-type, specific for demand accountsAccepted values: brand, seller Writeable? N / Nullable? Y
countrieslist<string>Countries associated with the accountAccepted values: 2-chars country code (in ISO-3166 alpha-2 code; e.g. US, FR) Writeable? N / Nullable? N
currencystringDefault currency for billing, budgeting, bid settings & campaign performance metricsAccepted values: 3-chars currency code (in ISO-4217; e.g. USD, EUR) Writeable? N / Nullable? N
parentAccountLabelstringLabel used to associate multiple accountsAccepted values: up to 510-chars string Default: same as name Writeable? Y / Nullable? N
timeZonestringAccount time zoneAccepted values: time zone identifiers from IANA (TZ database) (e.g. America/New_York, Europe/Paris, Asia/Tokyo, UTC) Writeable? N / Nullable? N
companyNamestringThis optional field, exclusively accessible to marketplaces within the European Union (in compliance with the Digital Service Act - DSA), will display the name of the company associated with the advertisement.Accepted values: up to 255-chars string Writeable? Y / Nullable? Y
onBehalfCompanyNamestringThis optional field, exclusively accessible to marketplaces within the European Union (in compliance with the Digital Service Act - DSA), will display the name of the company (on behalf of companyName) associated with the advertisementAccepted values: up to 255-chars string Writeable? Y / Nullable? Y
Digital Service Act (DSA)In compliance with the Digital Services Act (DSA), marketplaces within the European Union will receive information about the company name associated with each advertisement.

Get All Accounts

This endpoint lists all accounts accessible via your API credentials. Results are paginated using pageIndex and pageSize query parameters; if omitted, defaults to 0 and 25, respectively - see API Response
View in the API ReferenceYou can also see this endpoint in the API reference.
Sample Request
curl -X GET "https://api.criteo.com/{version}/retail-media/accounts?pageIndex=0&pageSize=25" \
    -H "Authorization: Bearer <MY_ACCESS_TOKEN>"
import requests

url = "https://api.criteo.com/{version}/retail-media/accounts?pageSize=25&pageIndex=0"

payload={}
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <MY_ACCESS_TOKEN>'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");

RequestBody body = RequestBody.create(mediaType, "");

Request request = new Request.Builder()
  .url("https://api.criteo.com/{version}/retail-media/accounts?pageSize=25&pageIndex=0")
  .method("GET", body)
  .addHeader("Accept", "application/json")
  .addHeader("Authorization", "Bearer <MY_ACCESS_TOKEN>")
  .build();

Response response = client.newCall(request).execute();
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.criteo.com/{version}/retail-media/accounts?pageSize=25&pageIndex=0');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));

$request->setHeader(array(
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <MY_ACCESS_TOKEN>'
));

try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}

catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
Sample Response
{
    "metadata": {
        "totalItemsAcrossAllPages": 2,
        "currentPageSize": 25,
        "currentPageIndex": 0,
        "totalPages": 1
    },
    "data": [
        {
            "id": "5",
            "type": "RetailMediaAccount",
            "attributes": {
                "name": "Supply Demo Test Account",
                "type": "supply",
                "subtype": null,
                "countries": [
                    "US"
                ],
                "currency": "USD",
                "parentAccountLabel": "Supply Demo Test Account",
                "timeZone": "America/New_York",
                "companyName": "Supply Demo Test Account",
                "onBehalfCompanyName": "Supply Demo Test Account"
            }
        },
        {
            "id": "368471940340928512",
            "type": "RetailMediaAccount",
            "attributes": {
                "name": "RM API Account",
                "type": "demand",
                "subtype": "brand",
                "countries": [
                    "US"
                ],
                "currency": "USD",
                "parentAccountLabel": "API Account",
                "timeZone": "America/New_York",
                "companyName": "RM API Account",
                "onBehalfCompanyName": "RM API Account"
            }
        }
    ]
}

Responses

ResponseDescription
🟢200Call executed with success

What’s Next