Sales, orders, visitors and the average order
- Credentials
- OAuth access token
- Scopes
store:read- Role
- Owners and admins only. Staff get
403 forbidden.
Over the window, against the same length of time before it. Money is minor units. Only money that came in counts.
Plan: every plan, as on the console Overview (these are its headline numbers). The other reports (top-sellers, traffic, sales) need Analytics Plus (included with Growth and Scale), else 403 plan_limit.
Access: OAuth scope store:read; owner or admin; not write-gated.
merchantOAuth store:readAuthorizationBearer <token>OAuth 2.1 (authorization code + PKCE S256, public clients, dynamic registration) for connected AI apps. Effective power is scopes granted AND the person's role today AND the plan. orders:refund, billing:write and team:write are opt-in on the consent screen. Write implies read for marketing:read and messages:read, so a grant holding marketing:write passes a marketing:read check, and messages:send passes messages:read.
Scope: store:read
storeId*stringA store the person can reach. Any other id answers 404, never 403.
days?integerHow many days back, up to now.
1 <= value <= 73030OK
application/json- response
data*curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/reports/summary' \ -H 'Authorization: Bearer <access_token>'{ "data": { "days": 30, "currency": "ZAR", "sales": { "value": 0, "previous": 0, "changePct": null }, "orders": { "value": 0, "previous": 0, "changePct": null }, "visitors": { "value": 0, "previous": 0, "changePct": null }, "averageOrder": { "value": 0, "previous": 0, "changePct": null }, "daily": [ { "day": "2026-09-25", "revenueMinor": 0, "orders": 0, "visitors": 0, "productViews": 0, "addToCart": 0, "checkoutStarts": 0 }, { "day": "2026-09-26", "revenueMinor": 0, "orders": 0, "visitors": 0, "productViews": 0, "addToCart": 0, "checkoutStarts": 0 }, { "day": "2026-09-27", "revenueMinor": 0, "orders": 0, "visitors": 0, "productViews": 0, "addToCart": 0, "checkoutStarts": 0 } ] }}Book a delivery in POST
What arrived from the supplier goes into stock, each line through the stock ledger with the reason `receipt`. `received` maps line id to the quantity that arrived; leave it out for everything still due. A delivery can arrive short (the order stays open as part received) but never books more than was ordered. Access: OAuth scope `listings:write`; write-gated by the subscription.
Best-selling listings by revenue GET
Plan: Analytics Plus (included with Growth and Scale), else 403 `plan_limit`. The console shows the same figures on its Sales, Products, Customers and Traffic pages only with it. Access: OAuth scope `store:read`; owner or admin; not write-gated. Paged: `{ items, nextCursor }`, `limit` (default 5, at most 20) and an opaque `cursor`. It pages through the top 20.