Analytics Endpoints

This document covers the analytics endpoints: sales summaries, product and category performance, and inventory and fulfillment indicators for your account, over a date range you choose. Analytics are read-only, are computed from your account's orders, payments, and stock records, and match what the Seller Center reports for the same period.

Access through the developer API is issued by the Company and is limited by seller type: manufacturer and supplier accounts receive API access for importing data, under the Developer Agreement and the API Access Tiers. Nothing in this document grants broader access.

Endpoints

MethodPathPurpose
GET/analytics/summaryHeadline measures for a period: sales, orders, refunds, average order value
GET/analytics/salesSales by day for a period
GET/analytics/productsSales and returns by product and variant for a period
GET/analytics/categoriesSales by marketplace category for a period
GET/analytics/inventoryCurrent stock health: low-stock and out-of-stock variants
GET/analytics/fulfillmentFulfillment performance: time to ship, delivery outcomes

All paths are relative to the base URL https://www.aapawz.com/api. Every period endpoint takes the same query parameters

ParameterRequiredMeaning
period_startyesFirst day of the period, YYYY-MM-DD
period_endyesLast day of the period, inclusive, YYYY-MM-DD
currencynoCurrency for monetary measures; defaults to your account currency

Periods are computed in UTC and may span at most 366 days; a longer range fails with 422 and code period_too_long. Collections paginate as specified in Pagination and Filtering (Pagination & Filtering). Monetary measures are decimal strings with a currency field; field definitions are in Data Types and Enums.

The summary response

GET /analytics/summary?period_start=2026-10-01&period_end=2026-10-14
Authorization: Bearer <your-api-key>
{
  "period_start": "2026-10-01",
  "period_end": "2026-10-14",
  "currency": "USD",
  "gross_sales": "12840.19",
  "refunds": "312.45",
  "net_sales": "12527.74",
  "orders": 412,
  "units_sold": 537,
  "average_order_value": "30.41",
  "returns": 18
}

Definitions

  • gross_sales is the sum of order totals for orders placed in the period, before refunds. refunds is the value refunded in the period, whenever the original order was placed. net_sales is gross_sales minus refunds.
  • average_order_value is gross_sales divided by orders, rounded to two decimal places.
  • A measure for a period with no activity is "0.00" or 0, never null. A day with no sales appears in /analytics/sales with zero values, so a time series has no gaps.

Product and category performance

GET /analytics/products returns one row per variant sold in the period

{
  "data": [
    {
      "product_id": "prod_8f3ka9",
      "variant_id": "var_51hd02",
      "seller_sku": "ACME-DOGFOOD-10LB",
      "title": "Acme Grain-Free Dog Food, 10 lb",
      "units_sold": 96,
      "gross_sales": "2399.04",
      "refunds": "24.99",
      "returns": 1
    }
  ],
  "next_cursor": null,
  "currency": "USD"
}

Rows sort by gross_sales descending unless you pass sort. GET /analytics/categories returns the same measures grouped by category. Figures reconcile with the orders and payments records: the sum of product gross_sales for a period equals the summary gross_sales for that period, subject to the rounding of individual lines.

Inventory and fulfillment indicators

GET /analytics/inventory is a snapshot, not a period report: it returns the variants currently below your low-stock threshold and those out of stock, with quantity_available and days of stock at the recent sales rate where that rate can be computed. GET /analytics/fulfillment reports, for orders shipped in the period, the median and 90th-percentile hours from order confirmation to shipment, the share delivered on or before the promised date, and counts of shipments by final status. Use these to run your own reorder and carrier reviews; the underlying records remain Inventory Endpoints and Fulfillment Endpoints.

Rules and errors

  • Analytics describe your account only. There is no cross-account, marketplace-wide, or competitor reporting through the API.
  • Figures are as current as the underlying records at the time of the request. A refund or cancellation recorded later changes a re-run of the same period; for closed accounting periods, reconcile against statements (Payments Endpoints), which do not change once issued.
  • Cache responses on your side for repeated reporting rather than re-requesting identical periods; rate limits are in Rate Limit Headers.
StatusCodeCause
422period_too_longThe range exceeds 366 days
422invalid_periodperiod_end is before period_start, or a date is malformed

Error bodies follow Error Codes.

    Analytics Endpoints · All About Pawz Developers