# List item types

Operation ID: `itemTypes`

Group: Inventory › Item Types

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/itemTypes)

`GET /inventory/item-types`

Read-only: Reads and returns; changes nothing.

Lists item types. Item types are the values itemTypeId accepts when you create an item.

The collection leaves out itemCount, the number of items that use each item type. Read it from GET inventory/item-types/:id or POST inventory/item-types/search.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |

## Query surface

- `id` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `name` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `procurable` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- `stockable` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- `active` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- `lastModifiedDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- Orderable: id, name, active, createdDate, lastModifiedDate
- Selectable: id, name, description, procurable, stockable, active, createdDate, lastModifiedDate
- `page[size]` — Page size
- `page[cursor]` — Opaque continuation cursor

## Response

`200` Success

Under `data`, an array of itemTypesRow:

| Field | Type | Required | Filter | Sort | Description |
| --- | --- | --- | --- | --- | --- |
| `id` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The unique identifier for the item type. Example: `"66aea173-07b8-4c4e-bc4a-5c35dedfdc16"`. |
| `name` | string \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The display name of the item type, for example 'Stocked good'. Two item types cannot share a name. Example: `"Stocked good"`. |
| `description` | string \| null | no | no | no | A free-form description of the item type. Example: `"Physical goods held in a warehouse"`. |
| `procurable` | boolean \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | no | Whether items of this type can appear on purchase documents. Example: `true`. |
| `stockable` | boolean \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | no | Whether items of this type hold stock. Example: `true`. |
| `active` | boolean \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | Whether the item type can be chosen for new items. Example: `true`. |
| `createdDate` | date-time \| null | no | no | yes | The date and time the item type was created, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
| `lastModifiedDate` | date-time \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | The date and time the item type record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Example: `"2026-08-18T09:14:22.517Z"`. |

```json
{
  "data": [
    {
      "id": "66aea173-07b8-4c4e-bc4a-5c35dedfdc16",
      "name": "Stocked good",
      "description": "Physical goods held in a warehouse",
      "procurable": true,
      "stockable": true,
      "active": true,
      "createdDate": "2026-01-15T09:30:00.000Z",
      "lastModifiedDate": "2026-08-18T09:14:22.517Z"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "<nextCursor>"
  }
}
```

## Statuses

- `400` — Invalid request or business failure
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
