Accounts Endpoints - Criteo Docs

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

Method Endpoint Description
GET /accounts Get all Accounts

Account Attributes

Attribute Data Type Description
id string Account ID, from a demand or supply account (generated internally by Criteo)
Accepted values: string of int64
Writeable? N / Nullable? N
name string Account name, arbitrary and defined at account creation
Accepted values: up to 510-chars string
Writeable? Y / Nullable? N
type enum Account type, withsupplybeing the account type for Retailers anddemandthe account type for the different types of advertisers (brand, marketplace sellers, agencies, etc.)
Accepted values:demand,supply
Writeable? N / Nullable? N
subtype enum Account sub-specific for demand accounts
Accepted values:brand,seller
Writeable? N / Nullable? Y
countries list Countries associated with the account
Accepted values: 2-chars country code (in ISO-3166 alpha-2 code; e.g.US,FR)
Writeable? N / Nullable? N
currency string Default currency for billing, budgeting, bid settings & campaign performance metrics
Accepted values: 3-chars currency code (in ISO-4217; e.g.USD,EUR)
Writeable? N / Nullable? N
parentAccountLabel string Label used to associate multiple accounts
Accepted values: up to 510-chars string
Default: same asname
Writeable? Y / Nullable? N
timeZone string Account time zone
Accepted values: time zone identifiers from IANA (TZ database) (e.g.America/New_York,Europe/Paris,Asia/Tokyo,UTC)
Writeable? N / Nullable? N
companyName string This 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
onBehalfCompanyName string This 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 ofcompanyName) associated with the advertisement
Accepted 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 Reference You can also see this endpoint in the API reference.

Sample Request

cURL

curl -X GET "https://api.criteo.com/{version}/retail-media/accounts?pageIndex=0&pageSize=25" \
    -H "Authorization: Bearer <MY_ACCESS_TOKEN>"

Python

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)

Java

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

<?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

Response Description
🟢200 Call executed with success

What’s next