Next Restaurant 6.1.0: move your data in, run payroll, and connect other systems Next Inventory 6.2.0: a REST API and webhooks for your other systems Next DB 6.1: Auto-Updating Tables, Printing, Phone Layout and SEO Next Task 6.0.0: a task manager for Joomla Next Inventory 6.1.1: smoother Check Out, no more list limits, and much faster PHP2Shell: Is Your Joomla Site Safe? What to Do Today Introducing Next Boards: Kanban project and task boards for Joomla Building the Future of Joomla Extensions
NextSoftware

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();

All Extensions