List offers
BetaAPI v2 is in public beta: endpoints, fields and behaviour can change before general availability. See the changelog
const url = 'https://app.stoqapp.com/api/v2/external/preorders/offers?status=all&sort=created_at%20desc&page=string&per_page=string&search=string&market_ids=gid%3A%2F%2Fshopify%2FMarket%2F12345&expand=string';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/v2/external/preorders/offers?status=all&sort=created_at%20desc&page=string&per_page=string&search=string&market_ids=gid%3A%2F%2Fshopify%2FMarket%2F12345&expand=string' \ --header 'X-Auth-Token: <X-Auth-Token>'List preorder offers in this shop, paginated. search matches offer name, internal name, or an attached product’s title. status filters by enabled/disabled/scheduled. market_ids narrows to offers restricted to those Shopify markets. sort orders by created date, name, or revenue.
Note: expand adds capability blocks to each row, in the same shape as their own reads: inventory, shipping, payments, markets, products (comma-separated or an array). summary counts every offer matching the filters by state (total, active, scheduled, paused, ended), not only this page.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Example
allExample
created_at descExample
stringExample
stringExample
stringExample
[ "gid://shopify/Market/12345"]Example
stringResponses
Section titled “Responses”Success — example response shown.
object
Example
{ "offers": [ { "id": "gid://shopify/SellingPlan/1", "name": "Summer Sneaker Drop", "internal_name": "summer-2026", "status": "draft", "created_at": "2026-06-25T10:30:45Z", "updated_at": "2026-06-25T10:30:45Z" }, { "id": "gid://shopify/SellingPlan/2", "name": "Winter Collection", "internal_name": "winter-2026", "status": "active", "created_at": "2026-06-20T14:15:30Z", "updated_at": "2026-06-22T09:45:12Z" } ], "meta": { "total_count": 2, "page": 1, "per_page": 50, "total_pages": 1 }}Missing or invalid X-Auth-Token.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "Unauthorized" ]}The request failed validation.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "name is required" ]}Rate limited — cost-weighted per token (read 1, write 2; 360 points / 60s). Check Retry-After.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "Rate limit exceeded" ]}Thanks for letting us know.
Still stuck? Ask Quinn or chat with support