> ## 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.

# Retailer Pages

<Info>
  **A FEW THINGS TO KNOW**

  1 - A *page* is an inventory that can be targeted with Preferred Deals line items on a particular retailer 2 - A retailer typically allows multiples types of pages to be targeted
</Info>

## **Endpoint**

| Verb  | Endpoint                        | Description                                |
| ----- | ------------------------------- | ------------------------------------------ |
| `GET` | `/retailers/{retailerId}/pages` | Get all pages types from specific retailer |

## **Retailer Page Type Attributes**

| Attribute    | Data Type   | Description                                                                                            |
| ------------ | ----------- | ------------------------------------------------------------------------------------------------------ |
| `retailerId` | string      | Retailer ID, generated internally by CriteoAccepted values: string of int64 Writeable? N / Nullable? N |
| `pageTypes`  | list\<enum> | Page types available in the associated RetailerAccepted values:- `home`                                |

* `search`
* `category`
* `productDetail`
* `merchandising`
* `deals`
* `checkout`
* `confirmation`Writeable? N / Nullable? N |

## **Get all Page Types from specific Retailer**

This endpoint lists all retailers that carry the brands associated with an account. Results are paginated.

**Sample Response**

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

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

  url = "https://api.criteo.com/{version}/retail-media/retailers/299/pages"
  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/retailers/299/pages")
    .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/retailers/299/pages');
  $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();
  }
  ```
</CodeGroup>

**Sample Response**

<CodeGroup>
  ```json JSON theme={null}
  {
      "pageTypes": [
          "home",
          "search",
          "category",
          "productDetail",
          "merchandising",
          "deals",
          "checkout",
          "confirmation"
      ]
  }
  ```
</CodeGroup>
