List Items
GET /items
List items
Scope items:read; role permission inventory.view.
Request
GET https://example.com/api/index.php/v1/nextinventory/items?limit=<integer>&offset=<integer>&search=<string>&category_id=<integer>&warehouse_id=<integer>&item_type=<string>&low_stock=<integer>&published=<integer>&ordering=title&direction=<string>
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
limit |
integer |
query |
No | Page size. (min 1) Defaults to 20. |
offset |
integer |
query |
No | Rows to skip. (min 0) Defaults to 0. |
search |
string |
query |
No | |
category_id |
integer |
query |
No | |
warehouse_id |
integer |
query |
No | |
item_type |
string |
query |
No | One of asset, consumable, sellable. |
low_stock |
integer |
query |
No | 1 = only items at or below their threshold One of 0, 1. |
published |
integer |
query |
No | Filter on state. One of 0, 1. |
ordering |
string |
query |
No | |
direction |
string |
query |
No | One of asc, desc. |
Responses
200 — A page of items.
{
"data": [
{
"id": 1,
"title": "string",
"alias": "string",
"item_type": "asset",
"sku": "string",
"barcode": "string",
"serial_number": "string",
"category_id": 1,
"category_title": "string",
"warehouse_id": 1,
"warehouse_title": "string",
"unit_id": 1,
"unit_title": "string",
"unit_code": "string",
"stock_quantity": 1.5,
"unit_price": 1.5,
"low_stock_threshold": 1.5,
"weight": 1.5,
"weight_unit": "string",
"track_weight": true,
"description": "string",
"image": "string",
"state": 1,
"created": "2026-01-01T12:00:00Z",
"modified": "2026-01-01T12:00:00Z"
}
],
"meta": {
"total": 1
}
}
| Field | Type | Meaning |
|---|---|---|
data[].id |
integer |
|
data[].title |
string |
|
data[].alias |
string|null |
|
data[].item_type |
string |
One of asset, consumable, sellable. |
data[].sku |
string|null |
|
data[].barcode |
string|null |
|
data[].serial_number |
string|null |
|
data[].category_id |
integer|null |
|
data[].category_title |
string|null |
|
data[].warehouse_id |
integer|null |
|
data[].warehouse_title |
string|null |
|
data[].unit_id |
integer|null |
|
data[].unit_title |
string|null |
|
data[].unit_code |
string|null |
|
data[].stock_quantity |
number |
|
data[].unit_price |
number |
|
data[].low_stock_threshold |
number |
|
data[].weight |
number|null |
|
data[].weight_unit |
string|null |
|
data[].track_weight |
boolean |
|
data[].description |
string|null |
|
data[].image |
string|null |
Site-relative path of the original image. |
data[].state |
integer |
1 published, 0 unpublished. |
data[].created |
string|null |
(date-time) |
data[].modified |
string|null |
(date-time) |
meta.total |
integer |
Rows matching the filters, across all pages. |
Errors
| Status | Code | When |
|---|---|---|
4 |
A refusal. Common codes: MISSING_TOKEN / INVALID_TOKEN (401); API_DISABLED, ACCOUNT_UNUSABLE, ACCESS_DENIED, TASK_NOT_ALLOWED, MISSING_SCOPE, APP_DISABLED, DEMO_LOCKED, FORBIDDEN (403); NOT_FOUND (404); BAD_REQUEST / INVALID_JSON / INVALID_IDEMPOTENCY_KEY (400, validation and stock rules, with the reason in title); IDEMPOTENCY_IN_PROGRESS (409); PRECONDITION_FAILED (412, the record changed since the If-Match ETag was read); IDEMPOTENCY_KEY_REUSED (422); RATE_LIMITED / TOO_MANY_FAILED_LOGINS (429, with a Retry-After header in seconds); SERVER_ERROR (500). |
Examples
curl
curl -s "https://example.com/api/index.php/v1/nextinventory/items" \
-H "Authorization: Bearer $API_TOKEN"
PHP
<?php
$ch = curl_init('https://example.com/api/index.php/v1/nextinventory/items?limit=<integer>&offset=<integer>&search=<string>&category_id=<integer>&warehouse_id=<integer>&item_type=<string>&low_stock=<integer>&published=<integer>&ordering=title&direction=<string>');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('API_TOKEN'),
],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
JavaScript
const API_TOKEN = process.env.API_TOKEN;
const response = await fetch("https://example.com/api/index.php/v1/nextinventory/items?limit=<integer>&offset=<integer>&search=<string>&category_id=<integer>&warehouse_id=<integer>&item_type=<string>&low_stock=<integer>&published=<integer>&ordering=title&direction=<string>", {
headers: {
"Authorization": `Bearer ${API_TOKEN}`,
},
});
const data = await response.json();