Catalog API2026-11Preview

Inventory levels

How many of a variant you can sell right now: the seller's stock in China, plus anything you keep in our warehouse.

Levels change when we read a listing again or your shelf moves. Subscribe to product.out_of_stock rather than polling.

The Inventory level object

variant, product, skustring
What it counts.
seller_in_stockboolean
Whether the seller can sell it, as of checked_at.
seller_countinteger|null
The seller's own count, when the listing shows one.
warehouse_on_handinteger
Units you own on our shelf, checked and photographed. Orders ship from these first.
availableinteger
What your store shows: your shelf plus the seller's count, capped at 100, since we buy on demand. 0 when the seller is out and your shelf is empty, or the product is paused.
checked_atstring
When we last read the listing.
inventory_level
{
  "variant": "var_41hz",
  "product": "prd_8f2k",
  "sku": "5187209554",
  "seller_in_stock": true,
  "seller_count": 812,
  "warehouse_on_hand": 24,
  "available": 124,
  "checked_at": "2026-11-04T09:12:40Z"
}

List inventory levels

GET/v1/inventory_levels

Every variant you sell, or one product's.

Scopeinventory:read

Query parameters

productstring
Optional. A product id.
availablestring
Optional. zero for the variants your store shows as sold out.
limit, cursor
Pagination
curl "https://www.ninjabuy.com/api/v1/inventory_levels?product=prd_8f2k" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{
  "data": [
    {
      "variant": "var_41hz",
      "product": "prd_8f2k",
      "sku": "5187209554",
      "seller_in_stock": true,
      "seller_count": 812,
      "warehouse_on_hand": 24,
      "available": 124,
      "checked_at": "2026-11-04T09:12:40Z"
    },
    {
      "variant": "var_41j0",
      "product": "prd_8f2k",
      "sku": "5187209555",
      "seller_in_stock": false,
      "seller_count": 0,
      "warehouse_on_hand": 0,
      "available": 0,
      "checked_at": "2026-11-04T09:12:40Z"
    }
  ],
  "has_more": false,
  "cursor": null
}

Retrieve a variant's level

GET/v1/inventory_levels/{variant}

One variant, as last read. Reading it does not read the marketplace again.

Scopeinventory:read

Path parameters

variantstringrequired
A variant id.

Errors

StatusTypeWhen
404not-foundNo such variant on this account.
curl "https://www.ninjabuy.com/api/v1/inventory_levels/var_41hz" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{
  "variant": "var_41hz",
  "product": "prd_8f2k",
  "sku": "5187209554",
  "seller_in_stock": true,
  "seller_count": 812,
  "warehouse_on_hand": 24,
  "available": 124,
  "checked_at": "2026-11-04T09:12:40Z"
}