List and filter intents
LegacyAPI v1 is the older API. It still works and is supported, but new integrations should use API v2. Migrating from v1 to v2
const url = 'https://app.stoqapp.com/api/v1/external/intents';const options = {method: 'GET', headers: {'X-Auth-Token': '<X-Auth-Token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://app.stoqapp.com/api/v1/external/intents \ --header 'X-Auth-Token: <X-Auth-Token>'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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”API key for authentication
Query Parameters
Section titled “Query Parameters”Filter by Shopify Variant ID
Filter by Shopify Product ID
Filter by customer email
Filter by customer phone
Filter by start date (YYYY-MM-DD)
Filter by end date (YYYY-MM-DD)
Filter by notification status (true = notified, false = not notified)
Page number for pagination
Number of items per page (maximum 500)
Responses
Section titled “Responses”A paginated list of intents
object
object
Unique identifier for the intent
Timestamp when the intent was blocked from sending
Communication channel used for notifications (e.g., Email, SMS)
Customer’s email address for notifications
Timestamp of the notification sent
Whether the customer has confirmed their GDPR opt-in for notifications
Customer’s phone number for SMS notifications
Requested quantity of the product when back in stock
Number of notifications sent for this intent
Type of the intent (e.g., restock, wishlist_reminder)
Timestamp when the customer unsubscribed from notifications
Timestamp when the intent was created
Timestamp when the intent was last updated
Unique identifier for the customer
Identifier for the trigger that created this intent
Internal product variant identifier
Unique identifier for the shop
Shopify’s inventory item identifier
Shopify’s market identifier for multi-market stores
Shopify’s product identifier
Shopify’s variant identifier
Customer’s full name
Customer’s contact information
Timestamp when the customer unsubscribed from all notifications
Whether the customer has opted in to receive marketing communications
Total number of notifications sent for this intent
object
Example
{ "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 }}Bad request
Unauthorized
Thanks for letting us know.
Still stuck? Ask Quinn or chat with support