> ## Documentation Index
> Fetch the complete documentation index at: https://docs.keystoneb2b.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Field reference

> Inventory API response fields and regional semantics.

## Per-SKU object

| Field                 | Type              | Description                                |
| --------------------- | ----------------- | ------------------------------------------ |
| `sku`                 | string            | Product SKU                                |
| `immediate_inventory` | object            | Sellable quantity **right now**, by region |
| `future_inventory`    | object            | Incoming PO quantity by region and ETA     |
| `refreshed_at`        | string (ISO 8601) | When this row was last computed            |

## `immediate_inventory`

| Key      | Meaning                           |
| -------- | --------------------------------- |
| `usa`    | Units sellable now for USD orders |
| `canada` | Units sellable now for CAD orders |

Values reflect warehouse and Shopify availability **after** open orders are allocated. A SKU can show `0` in one region while still having future incoming quantity.

## `future_inventory`

Each region contains an array of ETA lines, sorted by `expected_date` ascending:

```json theme={null}
{ "expected_date": "2026-06-27", "quantity": 50 }
```

| Field           | Meaning                                                                  |
| --------------- | ------------------------------------------------------------------------ |
| `expected_date` | Arrival date (`YYYY-MM-DD`). `null` when no ETA is on file (sorted last) |
| `quantity`      | Uncommitted incoming units expected on that date                         |

Multiple purchase-order lines with the same date in a region are **summed** into one entry.

## Regional mapping

| Order currency | API region key |
| -------------- | -------------- |
| USD            | `usa`          |
| CAD            | `canada`       |

## Data freshness

`refreshed_at` is updated when inventory is recomputed (warehouse syncs, order transforms, and a nightly full refresh). Treat it as a freshness indicator, not a cache TTL — poll at the rate your integration requires.
