> For the complete documentation index, see [llms.txt](https://docs.globo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.globo.io/pre-order/app-api/rest-api/pre-order/get-list-offers.md).

# \[GET] List offers

### \* Authentication&#x20;

<mark style="color:red;">Required</mark> `Authorization`

Limit `throttle:30,1`

### Request

Retrieve the shop's Back In Stock (BIS) submission list, with pagination.

Endpoint <mark style="background-color:green;">\[GET]</mark> - `/shop-api/pre-order/list?page=1`

| Params  | Type   | Required |
| ------- | ------ | -------- |
| page    | number | `no`     |
| keyword | string | `no`     |

{% hint style="info" %}
Use keyword to search by offer name or product name
{% endhint %}

{% tabs %}
{% tab title="HTTP" %}

```http
GET /shop-api/pre-order/list?page=1 HTTP/1.1
Host: preorder.globo.io
Authorization: ************
```

{% endtab %}

{% tab title="Javascript" %}

```js
const myHeaders = new Headers();
myHeaders.append("Authorization", "************");
const requestOptions = {
  method: "GET",
  headers: myHeaders,
  redirect: "follow"
};
fetch("https://preorder.globo.io/shop-api/pre-order/list?page=1", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
```

{% endtab %}

{% tab title="PHP" %}

```php
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://preorder.globo.io/shop-api/pre-order/list?page=1',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: ************'
  ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
```

{% endtab %}
{% endtabs %}

#### Success response `200`

```json
{
  "success": true,
  "data": [
    {
      "id": 123,
      "offer_name": "Summer Pre-order",
      "start_date": "2026-08-01 00:00:00",
      "end_date": "2026-09-30 23:59:59",
      "countdown_before_preorder_start": true,
      "countdown_before_preorder_end": false,
      "apply_to": "product",
      "preorder_condition_inventory": "oos",
      "fulfillment_status": "ON_HOLD",
      "fulfillment_shipping_date": "2026-10-15",
      "turn_on_continue_selling_when_preorder_start": true,
      "turn_off_continue_selling_when_preorder_end": true,
      "status": 1,
      "products": [
        {
          "product_id": 7890123456789,
          "variant_id": 4567890123456,
          "limit": 100
        }
      ],
      "full_payment_discount_type": "percentage",
      "full_payment_discount_value": 10,
      "partial_payment_value": 30,
      "partial_payment_value_type": "percentage",
      "partial_payment_discount_value": 0,
      "partial_payment_discount_type": "percentage",
      "partial_payment_remaining_balance_charge_date": "2026-10-01"
    }
  ],
  "pagination": {
    "total": 120,
    "per_page": 50,
    "current_page": 1,
    "last_page": 3,
    "from": 1,
    "to": 50
  }
}
```

Notes on `apply_to` shape:

* `product` → response includes `products[]`
* `collection` → response includes `collection_id` (and optionally `collection_name`)
* `all` → neither `products` nor `collection_id`

List-specific behavior for `apply_to = product`:\
`products` contains only a sample first product (not the full product list). Use `GET /shop-api/pre-order/get/{id}` or the products list APIs for full product details.

### Response Keys & Fields

#### Top-level

| Key          | Type    | Description                                       |
| ------------ | ------- | ------------------------------------------------- |
| `success`    | boolean | `true` when the request succeeds                  |
| `data`       | array   | List of offer objects (newest `updated_at` first) |
| `pagination` | object  | Pagination metadata                               |

#### `pagination`

| Key            | Type            | Description                                     |
| -------------- | --------------- | ----------------------------------------------- |
| `total`        | integer         | Total offers matching the filter                |
| `per_page`     | integer         | Always `50`                                     |
| `current_page` | integer         | Current page                                    |
| `last_page`    | integer         | Last available page                             |
| `from`         | integer \| null | First item index on this page (`null` if empty) |
| `to`           | integer \| null | Last item index on this page (`null` if empty)  |

#### Offer object (`data[]`)

| Field                                           | Type            | Description                                                     |
| ----------------------------------------------- | --------------- | --------------------------------------------------------------- |
| `id`                                            | integer         | Offer (profile) ID                                              |
| `offer_name`                                    | string          | Offer display name                                              |
| `start_date`                                    | string \| null  | Pre-order start datetime                                        |
| `end_date`                                      | string \| null  | Pre-order end datetime; `null` if no end date                   |
| `countdown_before_preorder_start`               | boolean         | Countdown before start enabled                                  |
| `countdown_before_preorder_end`                 | boolean         | Countdown before end enabled                                    |
| `apply_to`                                      | string          | Target scope: `product`, `collection`, or `all`                 |
| `preorder_condition_inventory`                  | string          | Inventory start condition (e.g. `now`, `oos`)                   |
| `fulfillment_status`                            | string \| null  | Order fulfillment mode: `ON_HOLD`, `UNFULFILLMENT`, `SCHEDULED` |
| `fulfillment_shipping_date`                     | string          | Present when fulfillment is scheduled by exact date             |
| `fulfillment_after_checkout`                    | mixed           | Present when fulfillment is scheduled as time-after-checkout    |
| `turn_on_continue_selling_when_preorder_start`  | boolean         | Auto-enable continue selling when offer starts                  |
| `turn_off_continue_selling_when_preorder_end`   | boolean         | Auto-disable continue selling when offer ends                   |
| `status`                                        | integer \| null | Offer status (`1` = active when created via API)                |
| `products`                                      | array           | Only when `apply_to = product`                                  |
| `collection_id`                                 | integer         | Only when `apply_to = collection`                               |
| `collection_name`                               | string          | Optional; only when available on the offer                      |
| `full_payment_discount_type`                    | string          | Full-payment discount type (default `percentage`)               |
| `full_payment_discount_value`                   | number          | Full-payment discount value                                     |
| `partial_payment_value`                         | number \| null  | Deposit / partial amount (only if partial payment enabled)      |
| `partial_payment_value_type`                    | string          | Partial amount type (e.g. `percentage`)                         |
| `partial_payment_discount_value`                | number          | Discount on partial payment                                     |
| `partial_payment_discount_type`                 | string          | Partial discount type                                           |
| `partial_payment_remaining_balance_charge_date` | string \| null  | Remaining balance charge date (if exact-time trigger)           |

#### `products[]` item (when `apply_to = product`)

| Field        | Type            | Description                                               |
| ------------ | --------------- | --------------------------------------------------------- |
| `product_id` | integer         | Shopify product ID                                        |
| `variant_id` | integer         | Shopify variant ID                                        |
| `limit`      | integer \| null | Pre-order unit limit for that variant; `null` = unlimited |

### Failed Response

Something went wrong — `200`

```json
{
"success": false,
"message": "Something went wrong"
}
```

Empty result

```json
{
  "success": true,
  "data": [],
  "pagination": {
    "total": 0,
    "per_page": 50,
    "current_page": 1,
    "last_page": 1,
    "from": null,
    "to": null
  }
}
```
