Skip to content

Overview

The back-in-stock surface: signups (the waitlist), the notification send log, shop settings, and reports.

BetaAPI v2 is in public beta: endpoints, fields and behaviour can change before general availability. See the changelog

Last updated

The back-in-stock API covers everything around restock alerts: who is waiting, what was sent, how sends behave, and how it all performed.

Path prefix: /back_in_stock, under the v2 base URL https://app.stoqapp.com/api/v2/external. For example, the waitlist is https://app.stoqapp.com/api/v2/external/back_in_stock/signups; leaving out /external returns an HTML 404.

You do not build a signup form. The STOQ app already puts a Notify me when available button and signup form on your product pages. The theme app extension renders them, and customers sign up through them with no API call from you.

What you can do over the API:

Term Meaning
Signup One customer waiting on one variant over one channel — a waitlist entry. v1 called this an intent.
Notification One delivery attempt of a back-in-stock alert (including sends blocked by plan limits).
Settings The shop-level configuration that governs sends — a singleton, not a list.
Resource Path What it covers
Signups /back_in_stock/signups The waitlist: list/read/create/delete, notify now, notify the waitlist or variants, bulk delete, transfer between variants
Notifications /back_in_stock/notifications Read-only send log — one entry per delivery attempt
Settings /back_in_stock/settings Shop-level singleton with five capabilities: channels, delivery, compliance, tagging, alerts
Reports /back_in_stock/reports Five reports, each readable as JSON and exportable as CSV

Identical to the rest of v2 — the X-Auth-Token header carrying the shop’s API key. See Getting Started.

Terminal window
curl 'https://app.stoqapp.com/api/v2/external/help?prefix=/back_in_stock' \
-H "X-Auth-Token: $STOQ_API_KEY"

The back-in-stock surface follows the rule learned from the preorders prune: named actions exist only where there are side effects beyond writing settings — sending notifications (notify, notify_variants), destroying rows (bulk_delete), moving signups between variants (transfer), creating customers (create).

Plain settings — including every boolean toggle — are PATCH on the owning capability. There are no enable_sms or set_batch_size named actions; you send PATCH /back_in_stock/settings/channels with { "sms": { "enabled": true } }.

v1 endpoint v2
GET /api/v1/external/intents GET /back_in_stock/signups
GET /api/v1/external/intents/:id GET /back_in_stock/signups/:id
POST /api/v1/external/intents POST /back_in_stock/signups
POST …/notify_intent POST /back_in_stock/signups/:id/notify
POST …/bulk_notify_intent POST /back_in_stock/signups/notify_variants (up to 10 variants) or POST /back_in_stock/signups/notify (every signup matching the waitlist filters)
DELETE …/bulk_destroy POST /back_in_stock/signups/bulk_delete
POST …/transfer_signups POST /back_in_stock/signups/transfer
GET …/products_in_demand GET /back_in_stock/reports/products_in_demand

Every back-in-stock action is also exposed as an MCP tool, generated from the same registry that powers /help — same names, same schemas, same behavior. See MCP.

Was this page helpful?

Still stuck? Ask Quinn or chat with support