> ## Documentation Index
> Fetch the complete documentation index at: https://developers.criteo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retailers

## Introduction

A retailer offers a selection of products from multiple brands.

Retailers act as publishers, providing advertising inventory for brands to promote their products.

An account can have access to one or more retailers, with this access typically managed by Criteo.

***

## Endpoint

| Method | Endpoint | Description |
| - | - | - |
| **GET** | `/accounts/{accountId}/retailers` | Get all retailers |

***

## Retailer Attributes

**id**

**Data Type:** string

**Values:** int64

**Description:** Retailer ID

**name**

**Data Type:** string

**Values:** 100 char limit

**Description:** Retailer name

**campaignEligibilities**

**Data Type:** string array

**Values:** `Auction`,`Preferred`, `Offsite`, `OffsiteCpc`

**Description:** The campaign types this retailer is eligible to leverage

***

## Get All Retailers

This endpoint retrieves a list of all retailers that carry the brands associated with an account.

The results are provided in a paginated format.

GET

```http theme={null}
https://api.criteo.com/{version}/retail-media/accounts/{accountId}/retailers
```

> [!NOTE]
>
> **API reference**
>
> You can find this endpoint in [the API reference](https://developers.criteo.com/retail-media/v2024.10/reference/accountsapigetapiv1externalaccountretailersbyaccountid) as well.

***

### Sample Request

```bash cURL theme={null}
curl -X GET "https://api.criteo.com/{version}/retail-media/accounts/18446744073709551616/retailers" \
    -H "Authorization: Bearer <MY_ACCESS_TOKEN>"
```

```python Python theme={null}
import requests

url = "https://api.criteo.com/{version}/retail-media/accounts/4/retailers"

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

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

print(response.text)
```

```java Java theme={null}
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/4/retailers")
  .method("GET", body)
  .addHeader("Accept", "application/json")
  .addHeader("Authorization", "Bearer <MY_ACCESS_TOKEN>")
  .build();

Response response = client.newCall(request).execute();
```

```php PHP theme={null}
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.criteo.com/{version}/retail-media/accounts/4/retailers');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));

$request->setHeader(array(
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <MY_ACCES_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

```json JSON expandable theme={null}
{
    "data": [
        {
            "id": "3239117063738827231",
            "type": "RetailMediaRetailer",
            "attributes": {
                "name": "Retailer 123",
                "campaignEligibilities": [
                    "auction",
                    "preferred",
                    "offsiteCpc",
                    "offsite"
                ]
            }
        },
        // ...
        {
            "id": "18159942378514859684",
            "type": "RetailMediaRetailer",
            "attributes": {
                "name": "Retailer 789",
                "campaignEligibilities": [
                    "auction",
                    "preferred",
                    "offsiteCpc",
                    "offsite"
                ]
            }
        }
    ],
    "metadata": {
        "totalItemsAcrossAllPages": 10,
        "currentPageSize": 25,
        "currentPageIndex": 0,
        "totalPages": 1,
        "nextPage": null,
        "previousPage": null
    }
}
```

***

## Responses

| Response | Description |
| - | - |
| 🟢`200` | Call executed with success |
| 🔴`403` | API user does not have the authorization to make requests to the account ID. For an authorization request, follow the[authorization request](https://developers.criteo.com/retail-media/v2024.10/docs/authorization-requests)steps |

***

**What’s Next**

* [Balances](https://developers.criteo.com/retail-media/v2024.10/docs/balances)
* [Audiences](https://developers.criteo.com/retail-media/v2024.10/docs/audiences)
* [Catalog](https://developers.criteo.com/retail-media/v2024.10/docs/catalogs)
* [Campaigns](https://developers.criteo.com/retail-media/v2024.10/docs/campaign)
* [Line Items](https://developers.criteo.com/retail-media/v2024.10/docs/line-items-endpoints)
* [Onsite Sponsored Products](https://developers.criteo.com/retail-media/v2024.10/docs/onsite-sponsored-products)
