List offers
API v2 is in public beta: endpoints and fields can change before general availability. See the changelog
/preorders/offersCosts 1 rate-limit point · Rate limits
List preorder offers in this shop, paginated. search matches offer name, internal name, or an attached product's title. status filters by current_status (live, scheduled, off, or deleted for deleted offers, which all leaves out). shopify_market_ids (Market GIDs) narrows to offers restricted to those Shopify markets. sort orders by created date, name, or revenue.
expand adds offer sections to each row, in the same shape as GET /preorders/offers/:id: inventory, shipping, payments, markets, products (comma-separated or an array). summary counts every offer matching the filters by current_status (total, live, scheduled, off; with status=deleted, total and deleted), not only this page.
Also searched aslist offersshow all offerspreorder offersall preorders
Query parameters
statusstringOne ofalllivescheduledoffdeletedenableddisabledsortstringOne ofcreated_at desccreated_at ascinternal_name ascinternal_name descpreorder_revenue descpreorder_revenue ascpagestringper_pagestringsearchstringshopify_market_idsarrayexpandstring
Returns
offersarray of objectsShow 8 child attributesHide child attributes
idstringExample:73a74948-2b57-4cc3-971f-2b441828c977namestringExample:Summer Sneaker Dropinternal_namestringExample:summer-2026current_statusstringExample:liveline_item_revenuestringExample:0.00order_revenuestringExample:0.00created_atstringExample:2026-06-25T10:30:45Zupdated_atstringExample:2026-06-25T10:30:45Z
metaobjectShow 4 child attributesHide child attributes
total_countintegerExample:2pageintegerExample:1per_pageintegerExample:50total_pagesintegerExample:1
Errors
Missing or invalid X-Auth-Token.
The request failed validation.
Rate limited: cost-weighted per token (read 1, write 2; 360 points / 60s). Check Retry-After.
Every error has the same shape: see Errors.
curl "https://app.stoqapp.com/api/v2/external/preorders/offers" \
-H "X-Auth-Token: $STOQ_API_KEY"const res = await fetch("https://app.stoqapp.com/api/v2/external/preorders/offers", {
headers: {
"X-Auth-Token": process.env.STOQ_API_KEY,
},
});
const data = await res.json();import os
import requests
res = requests.get(
"https://app.stoqapp.com/api/v2/external/preorders/offers",
headers={"X-Auth-Token": os.environ["STOQ_API_KEY"]},
)
data = res.json()require "net/http"
require "json"
uri = URI("https://app.stoqapp.com/api/v2/external/preorders/offers")
req = Net::HTTP::Get.new(uri, "X-Auth-Token" => ENV["STOQ_API_KEY"])
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)curl "https://app.stoqapp.com/api/v2/external/preorders/offers?status=all&sort=created_at%20desc&shopify_market_ids=gid%3A%2F%2Fshopify%2FMarket%2F12345" \
-H "X-Auth-Token: $STOQ_API_KEY"const res = await fetch("https://app.stoqapp.com/api/v2/external/preorders/offers?status=all&sort=created_at%20desc&shopify_market_ids=gid%3A%2F%2Fshopify%2FMarket%2F12345", {
headers: {
"X-Auth-Token": process.env.STOQ_API_KEY,
},
});
const data = await res.json();import os
import requests
res = requests.get(
"https://app.stoqapp.com/api/v2/external/preorders/offers?status=all&sort=created_at%20desc&shopify_market_ids=gid%3A%2F%2Fshopify%2FMarket%2F12345",
headers={"X-Auth-Token": os.environ["STOQ_API_KEY"]},
)
data = res.json()require "net/http"
require "json"
uri = URI("https://app.stoqapp.com/api/v2/external/preorders/offers?status=all&sort=created_at%20desc&shopify_market_ids=gid%3A%2F%2Fshopify%2FMarket%2F12345")
req = Net::HTTP::Get.new(uri, "X-Auth-Token" => ENV["STOQ_API_KEY"])
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body){
"offers": [
{
"id": "73a74948-2b57-4cc3-971f-2b441828c977",
"name": "Summer Sneaker Drop",
"internal_name": "summer-2026",
"current_status": "live",
"line_item_revenue": "0.00",
"order_revenue": "0.00",
"created_at": "2026-06-25T10:30:45Z",
"updated_at": "2026-06-25T10:30:45Z"
},
{
"id": "5d1c6f0e-8a43-4e57-9b0a-2f6f4c1d7e90",
"name": "Winter Collection",
"internal_name": "winter-2026",
"current_status": "off",
"line_item_revenue": "0.00",
"order_revenue": "0.00",
"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
}
}{
"errors": [
"Invalid API key"
],
"code": "auth_invalid",
"details": [
{
"code": "auth_invalid",
"message": "Invalid API key",
"path": null,
"value": null,
"expected": null
}
]
}{
"errors": [
"name is required"
],
"code": "validation_failed",
"details": [
{
"code": "validation_failed",
"message": "name is required",
"path": null,
"value": null,
"expected": null
}
]
}{
"errors": [
"Rate limit exceeded"
],
"code": "rate_limited",
"details": [
{
"code": "rate_limited",
"message": "Rate limit exceeded",
"path": null,
"value": null,
"expected": null
}
]
}