---
title: "Get inventory-optimization dashboard payload"
method: GET
path: "/analytics/inventory-optimization"
tags: ["analytics"]
---

# Get inventory-optimization dashboard payload

`GET /analytics/inventory-optimization`

Per-material rollup used by the UC4 dashboard: annual
consumption + spend, months since last movement, monthly
invoiced/spend arrays for the requested year. Aggregates
across every business node the caller can access, or the
subset supplied via `business_node_ids` (comma-separated).
Classification (Fast/Medium/Slow/Dead) stays client-side.

## Query parameters

- `business_node_ids` string
- `year` integer

## Response `200`

OK

- ModelsInventoryOptimizationResponse
  - `items` ModelsInventoryOptimizationItem[]
    - `annual_cons` number
    - `annual_spend` number
    - `current_stock` number
    - `description` string
    - `material_group` string
    - `material_id` string
    - `monthly_invoiced` number[] — MonthlyInvoiced[0] = January, MonthlyInvoiced[11] = December.
    - `monthly_spend` number[]
    - `months_since_last_move` integer
    - `product_group` string
    - `safety_stock` number
    - `unit_cost` number
    - `vendor` string
  - `totals` ModelsInventoryOptimizationTotals
    - `annual_spend` number
    - `current_stock_capital` number
    - `sku_count` integer
  - `year` integer

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error

## Changes

- **2026-09-05** `f24902e24825` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/resourcly/apis/resourcly-api/changes/analytics/inventory-optimization/get.md)

---

[API](https://skmtc.dev/resourcly/apis/resourcly-api.md) · [All operations](https://skmtc.dev/resourcly/apis/resourcly-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/resourcly/resourcly-api/revisions/f24902e24825/schema)
