Each section has exactly the shape its per-widget endpoint returns.
Query parameters
period—7d,30d,90dor12m(default7d), for every period-based section. Inventory ignores it.limit— rows per list (1–100). Defaults match the per-widget endpoints: 10 for products and customers, 20 for trade and inventory. The dashboard takes one limit per list instead (topSellingLimit,lowStockLimit,reservedStockLimit,recentOrdersLimit), and the product page takesordersLimit.include— comma-separated subset of the page’s sections to load, e.g. when the period picker above one chart changes. Omit it to load everything. An unknown section name is a400.
Partial failures
Sections load independently. If one fails — say the service behind it is briefly unavailable — it comes backnull with a message under errors, and every other section still
loads:
include is also null, with no errors entry. The one
exception is the product page: an unknown product id is a 404 for the whole call.
Caching
Admin reports and summaries are cached for a short time, shared across admins with the same roles:
Lists themselves (orders, customers, products, …) and product details are never cached.
Any successful change made through the admin API — creating a discount, updating an order’s
status, editing a product — clears the cached data it affects before the response is returned,
so the page you go back to is already up to date. Changes that happen elsewhere, like a customer
placing an order, appear once the cache expires.
Top categories
sales in top categories is the number of orders that contained at least one product from the
category (an order with two products from the same category counts once), and
averageOrderAmount is the category’s revenue per such order.