Skip to content

Retrieve products

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

GET/preorders/reports/products

Costs 1 rate-limit point · Rate limits

Preorder units, orders, line revenue and last order date per variant (or product), as the dashboard's products table.

Counts preorder line items only (ordinary items in a mixed cart are excluded). revenue is line revenue. group_by=product rolls variants up to their product. range=all_time is the dashboard's All time. image_url is the variant's stored image, else the product's (null if none is stored).

Also searched asper-product reportproduct performancewhich products are preorderingreport by productper-variant reportreport by varianttop preorder products

Query parameters

  • rangestring
  • group_bystring
    One of variantproduct
  • fromstring
  • tostring
  • sort_bystring
  • directionstring
  • pagestring
  • per_pagestring

Returns

  • windowobject
    Show 2 child attributesHide child attributes
    • fromstring
      Example: 2026-05-26T00:00:00Z
    • tostring
      Example: 2026-06-25T23:59:59Z
  • group_bystring
    Example: variant
  • sort_bystring
    Example: revenue
  • directionstring
    Example: desc
  • currencystring
    Example: USD
  • rowsarray of objects
    Show 9 child attributesHide child attributes
    • shopify_product_idstring
      Example: gid://shopify/Product/8784906035384
    • product_titlestring
      Example: Classic Sneaker
    • shopify_variant_idstring
      Example: gid://shopify/ProductVariant/47284734423096
    • variant_titlestring
      Example: Blue / Medium
    • skustring
      Example: CS-BLU-M
    • unitsinteger
      Example: 64
    • ordersinteger
      Example: 58
    • revenuestring
      Example: 7040.00
    • last_order_datestring
      Example: 2026-06-25T10:02:00Z
  • metaobject
    Show 4 child attributesHide child attributes
    • total_countinteger
      Example: 42
    • pageinteger
      Example: 1
    • per_pageinteger
      Example: 25
    • total_pagesinteger
      Example: 2

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/preorders/reports/products
curl "https://app.stoqapp.com/api/v2/external/preorders/reports/products" \
  -H "X-Auth-Token: $STOQ_API_KEY"
Response
{
  "window": {
    "from": "2026-05-26T00:00:00Z",
    "to": "2026-06-25T23:59:59Z"
  },
  "group_by": "variant",
  "sort_by": "revenue",
  "direction": "desc",
  "currency": "USD",
  "rows": [
    {
      "shopify_product_id": "gid://shopify/Product/8784906035384",
      "product_title": "Classic Sneaker",
      "shopify_variant_id": "gid://shopify/ProductVariant/47284734423096",
      "variant_title": "Blue / Medium",
      "sku": "CS-BLU-M",
      "units": 64,
      "orders": 58,
      "revenue": "7040.00",
      "last_order_date": "2026-06-25T10:02:00Z"
    },
    {
      "shopify_product_id": "gid://shopify/Product/8784906035384",
      "product_title": "Classic Sneaker",
      "shopify_variant_id": "gid://shopify/ProductVariant/47284734455864",
      "variant_title": "Red / Large",
      "sku": "CS-RED-L",
      "units": 31,
      "orders": 30,
      "revenue": "3410.00",
      "last_order_date": "2026-06-24T18:40:00Z"
    }
  ],
  "meta": {
    "total_count": 42,
    "page": 1,
    "per_page": 25,
    "total_pages": 2
  }
}