---
title: "List and filter intents"
description: "List back-in-stock intents (signups) for the shop, newest first. Supports filtering by Shopify product or variant, customer email or phone, creation date range, and notification status, with page-based pagination (up to "
url: https://docs.stoqapp.com/v1/back-in-stock/list-and-filter-intents/
api: "API v1 (legacy)"
method: GET
path: "/external/intents"
---

# List and filter intents

`GET https://app.stoqapp.com/api/v1/external/intents`

List back-in-stock intents (signups) for the shop, newest first. Supports filtering by Shopify product or variant, customer email or phone, creation date range, and notification status, with page-based pagination (up to 500 per page). Returns the matching intents alongside pagination metadata.

## Query parameters

- `shopify_variant_id` (integer): Filter by Shopify Variant ID
- `shopify_product_id` (integer): Filter by Shopify Product ID
- `email` (string): Filter by customer email
- `phone` (string): Filter by customer phone
- `start_date` (string): Filter by start date (YYYY-MM-DD)
- `end_date` (string): Filter by end date (YYYY-MM-DD)
- `notified` (boolean): Filter by notification status (true = notified, false = not notified)
- `page` (integer): Page number for pagination
- `per_page` (integer): Number of items per page (maximum 500)

## Headers

- `X-Auth-Token` (string, required): API key for authentication

## Returns

- `intents` (array of objects)
  - `id` (string): Unique identifier for the intent
  - `blocked_at` (string, nullable): Timestamp when the intent was blocked from sending
  - `channel` (string): Communication channel used for notifications (e.g., Email, SMS)
  - `email` (string): Customer's email address for notifications
  - `notified_at` (string, nullable): Timestamp of the notification sent
  - `optin_confirmed` (boolean): Whether the customer has confirmed their GDPR opt-in for notifications
  - `phone` (string): Customer's phone number for SMS notifications
  - `quantity` (integer): Requested quantity of the product when back in stock
  - `sent_notifications_count` (integer): Number of notifications sent for this intent
  - `source` (string): e.g. `api`
  - `type` (string): Type of the intent (e.g., restock, wishlist_reminder)
  - `unsubscribed_at` (string, nullable): Timestamp when the customer unsubscribed from notifications
  - `created_at` (string): Timestamp when the intent was created
  - `updated_at` (string): Timestamp when the intent was last updated
  - `customer_id` (string): Unique identifier for the customer
  - `intent_trigger_id` (string, nullable): Identifier for the trigger that created this intent
  - `product_variant_id` (string, nullable): Internal product variant identifier
  - `shop_id` (string): Unique identifier for the shop
  - `shopify_inventory_item_id` (integer, nullable): Shopify's inventory item identifier
  - `shopify_market_id` (integer, nullable): Shopify's market identifier for multi-market stores
  - `shopify_product_id` (integer, nullable): Shopify's product identifier
  - `shopify_variant_id` (integer, nullable): Shopify's variant identifier
  - `customer_name` (string, nullable): Customer's full name
  - `contact` (string, nullable): Customer's contact information
  - `customer_unsubscribed_at` (string, nullable): Timestamp when the customer unsubscribed from all notifications
  - `accepts_marketing` (boolean, nullable): Whether the customer has opted in to receive marketing communications
  - `notifications_count` (integer, nullable): Total number of notifications sent for this intent
- `meta` (object)
  - `total_count` (integer): e.g. `128`
  - `page` (integer): e.g. `1`
  - `per_page` (integer): e.g. `25`
  - `total_pages` (integer): e.g. `6`

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

## Example request

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

## 200

A paginated list of intents

```json
{
  "intents": [
    {
      "id": "8f3c2b1a-7d4e-4c2a-9f10-2b3c4d5e6f70",
      "channel": "email",
      "email": "shopper@example.com",
      "phone": null,
      "quantity": 1,
      "notified_at": null,
      "optin_confirmed": true,
      "source": "api",
      "type": "restock",
      "sent_notifications_count": 0,
      "created_at": "2026-06-20T14:30:00Z",
      "updated_at": "2026-06-20T14:30:00Z",
      "customer_id": "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
      "shop_id": "a1b2c3d4-5e6f-7081-92a3-b4c5d6e7f809",
      "shopify_product_id": 7891234567890,
      "shopify_variant_id": 43900910010503,
      "accepts_marketing": true
    }
  ],
  "meta": {
    "total_count": 128,
    "page": 1,
    "per_page": 25,
    "total_pages": 6
  }
}
```

## 400

Bad request

## 401

Unauthorized

