Skip to content

List products

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

GET/back_in_stock/products

Costs 1 rate-limit point · Rate limits

Read per-product back-in-stock configuration: notify-me button visibility (always_show / when_out_of_stock / never_show), restock message and assigned widget template (widget_template_id, from GET /back_in_stock/widget_templates) for each variant, plus whether the shop-level per-product customization toggle is on. Each row also has the variant's pending and total signups (count_by as on the dashboard) and its lifetime back-in-stock units sold and revenue. Without search, rows are the variants STOQ has activity for (signups, per-product settings, offers), sorted by pending signups, most first. search (product name, variant title, SKU, product URL or id) also looks the term up in the Shopify catalog: matching variants STOQ has no row for come after the STOQ rows, with default settings and zero counts. Every row has has_stoq_activity; a search response has catalog_searched (false when the catalog was skipped or could not be reached). Filter with shopify_product_id, shopify_variant_id, overrides_only=true or has_waitlist=true; the last two only match STOQ rows, so they skip the catalog. Shopify ids are gids both ways, e.g. "gid://shopify/ProductVariant/123".

Any of sort, group_by, after, product_status, button_visibility, restock_message or restock_message_query lists the dashboard's Products tab instead: the whole Shopify catalog, sorted by sort (title_asc, the default, title_desc, created_desc, created_asc), limit rows per page (default 20, max 100), search matching title or SKU. product_status is a comma list of active, draft, archived, unlisted. button_visibility (comma list of the three values) and restock_message (has or none) with restock_message_query (text the message contains) only match variants STOQ has a row for, as on the tab; with them product_status_filter_skipped is true when product statuses could not be checked and the status filter was left out. group_by=product returns products, each with its variants. Pass the response's end_cursor as after for the next page while has_next_page is true. shopify_product_id, shopify_variant_id, overrides_only and has_waitlist cannot be combined with these.

Also searched aswhich products have custom notify me settingsper product back in stock configproduct button visibilityproducts tab settings

Query parameters

  • count_bystring
    One of customerssignups
  • sortstring
    One of title_asctitle_desccreated_desccreated_asc
  • group_bystring
    One of variantproduct
  • restock_messagestring
    One of hasnone
  • shopify_product_idstring
  • shopify_variant_idstring
  • overrides_onlystring
  • has_waitliststring
  • limitinteger
  • searchstring
  • afterstring
  • product_statusstring
  • button_visibilitystring
  • restock_message_querystring

Errors

401

Missing or invalid X-Auth-Token.

422

The request failed validation.

429

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

Every error has the same shape: see Errors.

GET/back_in_stock/products
curl "https://app.stoqapp.com/api/v2/external/back_in_stock/products" \
  -H "X-Auth-Token: $STOQ_API_KEY"
Response
No body