---
title: "List signups"
description: "List back-in-stock signups (the waitlist), newest first, with the dashboard's waitlist filters."
url: https://docs.stoqapp.com/v2-reference/back-in-stock-signups/list-signups/
api: "API v2 reference"
method: GET
path: "/back_in_stock/signups"
---

# List signups

`GET https://app.stoqapp.com/api/v2/external/back_in_stock/signups`

List back-in-stock signups (the waitlist), newest first, with the dashboard's waitlist filters.

**Note:** status is pending (not notified yet) or notified; from/to are shop-local days matched against the signup date for pending and the notified date for notified. title and sku match the product title or SKU. without_orders keeps notified signups that led to no order. query matches part of the signup's or customer's email or phone, or the customer's name. Notified signups are ordered by notified date. source is where the signup came from (restock-rocket-extension is the storefront form; restock-rocket-extension-resubscribe is Quick Resubscribe). product_deleted and variant_deleted mark rows whose product or variant was deleted on Shopify.

## Query parameters

- `status` (string) One of: `pending`, `notified`.
- `shopify_market_ids` (array)
- `shopify_product_id` (string)
- `shopify_variant_id` (string)
- `customer_id` (string)
- `title` (string)
- `sku` (string)
- `without_orders` (string)
- `from` (string)
- `to` (string)
- `query` (string)
- `page` (string)
- `per_page` (string)

## Returns

- `signups` (array of objects)
  - `id` (string): e.g. `5f0c2a9e-3b1d-4c8e-9a51-2d7e6b1f0a42`
  - `channel` (string): e.g. `email`
  - `contact` (string): e.g. `john@example.com`
  - `quantity` (integer): e.g. `2`
  - `shopify_product_id` (string): e.g. `gid://shopify/Product/8784906035384`
  - `shopify_variant_id` (string): e.g. `gid://shopify/ProductVariant/47284734423096`
  - `product_title` (string): e.g. `Trail Shoe`
  - `variant_title` (string): e.g. `Blue / Medium`
  - `sku` (string): e.g. `TS-BLU-M`
  - `shopify_market_id` (any)
  - `customer_id` (string): e.g. `8b6f1e2a-0c4d-4f7a-b1e3-9d2c5a7f6e10`
  - `customer_name` (string): e.g. `John Doe`
  - `accepts_marketing` (boolean): e.g. `false`
  - `customer_unsubscribed_at` (any)
  - `customer_bounce_count` (integer): e.g. `0`
  - `optin_confirmed` (any)
  - `unsubscribed_at` (any)
  - `notifications_count` (integer): e.g. `0`
  - `notified_at` (any)
  - `created_at` (string): e.g. `2026-06-25T13:45:30Z`
- `meta` (object)
  - `total_count` (integer): e.g. `147`
  - `page` (integer): e.g. `1`
  - `per_page` (integer): e.g. `50`
  - `total_pages` (integer): e.g. `3`

Rate limit: this call costs 1 point ([rate limits](https://docs.stoqapp.com/docs/rate-limits/)).

## Examples

### List signups

```sh
curl "https://app.stoqapp.com/api/v2/external/back_in_stock/signups" \
  -H "X-Auth-Token: $STOQ_API_KEY"
```

### List signups filtered by status, shopify_market_ids and shopify_product_id

```sh
curl "https://app.stoqapp.com/api/v2/external/back_in_stock/signups?status=pending&shopify_market_ids=gid%3A%2F%2Fshopify%2FMarket%2F12345&shopify_product_id=78000000001" \
  -H "X-Auth-Token: $STOQ_API_KEY"
```

## 200

Success: example response shown.

```json
{
  "signups": [
    {
      "id": "5f0c2a9e-3b1d-4c8e-9a51-2d7e6b1f0a42",
      "channel": "email",
      "contact": "john@example.com",
      "quantity": 2,
      "shopify_product_id": "gid://shopify/Product/8784906035384",
      "shopify_variant_id": "gid://shopify/ProductVariant/47284734423096",
      "product_title": "Trail Shoe",
      "variant_title": "Blue / Medium",
      "sku": "TS-BLU-M",
      "shopify_market_id": null,
      "customer_id": "8b6f1e2a-0c4d-4f7a-b1e3-9d2c5a7f6e10",
      "customer_name": "John Doe",
      "accepts_marketing": false,
      "customer_unsubscribed_at": null,
      "customer_bounce_count": 0,
      "optin_confirmed": null,
      "unsubscribed_at": null,
      "notifications_count": 0,
      "notified_at": null,
      "created_at": "2026-06-25T13:45:30Z"
    }
  ],
  "meta": {
    "total_count": 147,
    "page": 1,
    "per_page": 50,
    "total_pages": 3
  }
}
```

## 401

Missing or invalid `X-Auth-Token`.

```json
{
  "errors": [
    "Invalid API key"
  ],
  "code": "auth_invalid",
  "details": [
    {
      "code": "auth_invalid",
      "message": "Invalid API key",
      "path": null,
      "value": null,
      "expected": null
    }
  ]
}
```

## 422

The request failed validation.

```json
{
  "errors": [
    "name is required"
  ],
  "code": "validation_failed",
  "details": [
    {
      "code": "validation_failed",
      "message": "name is required",
      "path": null,
      "value": null,
      "expected": null
    }
  ]
}
```

## 429

Rate limited: cost-weighted per token (read 1, write 2; 360 points / 60s). Check `Retry-After`.

```json
{
  "errors": [
    "Rate limit exceeded"
  ],
  "code": "rate_limited",
  "details": [
    {
      "code": "rate_limited",
      "message": "Rate limit exceeded",
      "path": null,
      "value": null,
      "expected": null
    }
  ]
}
```

