Get Inventory Aging Report
GET/api/inventory-aging
Paginated inventory aging report.
inventory:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Two views:
view=product_summary— one row per product aggregated across its FIFO layers, enriched with listings, sales velocity (7/14/30/90 days), days of supply, channel sales, margin, bracket-scopedaged_value(dollars in the active bracket, or 181+ days when no bracket filter is set), an estimated 90-dayholding_cost_90d, a rule-basedsuggested_action, and the recordedactionstate.view=fifo_detail— raw cost layers (one row per layer) with age bracket, layer date, source document and value.
Sorting (product summary): pass sort_by + sort_dir; sorting runs server-side over the full filtered dataset. Allowed sorts: sku, total_quantity, avg_unit_cost, total_value, aged_value, max_days_old, holding_cost, velocity_30d.
Action scope (product summary): action_scope partitions rows by their recorded action state; metrics and distribution deliberately ignore it so totals keep counting accepted/resolved stock.
All other filters apply identically to this endpoint, the metrics, the distribution and the CSV export. sales_period governs every sales-window filter (has_sales, channel sold-on / no-sales-on, margin).
Request
Responses
- 200
- 401
- 403
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.