---
updatedAt: 2026-08-26T01:57:26.000Z
agentTools:
  projectIndex: https://docs.paymongo.com/llms.txt
---

# List inventory items

List inventory items for the authenticated organization and live mode, optionally filtered by warehouse_id/variant_id, cursor-paginated.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "contact": {
      "name": "Payment Channels Team"
    },
    "description": "Inventories API owns per-warehouse stock counts for merchant product\nvariants, the movement ledger behind every stock change, and the hold\nlifecycle used to reserve stock ahead of a sale. Merchants manage\nwarehouses and stock with a secret key; internal PayMongo services open,\nconsume, and release holds and query availability over a server-to-server\nJWT during checkout and order fulfillment.\n",
    "title": "Inventories",
    "version": "2.0.0",
    "summary": "Warehouse stock counts, movement ledger, and reservation holds for merchant inventories.",
    "license": {
      "name": "PayMongo Internal",
      "identifier": "LicenseRef-PayMongo-Internal"
    },
    "x-paymongo-service-slug": "inventories-api",
    "x-paymongo-service-tier": "tier-2",
    "x-paymongo-owner-slack": "#storefront-channel",
    "x-paymongo-repo": "https://github.com/paymongo/inventories-api",
    "x-paymongo-data-classification": "confidential"
  },
  "servers": [
    {
      "url": "https://inventories-api.paymongo.com",
      "description": "Production"
    },
    {
      "url": "https://inventories-api.paymongo-uat.com",
      "description": "UAT"
    },
    {
      "url": "https://inventories-api.paymongo-stg.com",
      "description": "Staging"
    }
  ],
  "tags": [
    {
      "name": "Inventory Items",
      "description": "Per-warehouse stock counters for a product variant: create, list, get, manual adjustments and counts, low stock threshold, and the movement ledger."
    }
  ],
  "paths": {
    "/v1/inventory_items": {
      "get": {
        "description": "List inventory items for the authenticated organization and live mode, optionally filtered by warehouse_id/variant_id, cursor-paginated.",
        "parameters": [
          {
            "description": "Filter by warehouse id",
            "example": "ww_abc123",
            "in": "query",
            "name": "warehouse_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by variant id",
            "example": "prdvar_abc123",
            "in": "query",
            "name": "variant_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Cursor: return results before this item id",
            "example": "invitem_abc123",
            "in": "query",
            "name": "before",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Cursor: return results after this item id",
            "example": "invitem_xyz789",
            "in": "query",
            "name": "after",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Maximum number of results (>= 1)",
            "example": 20,
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResponseRootDTO"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/ItemResponseDTO"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseRootDTO"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseRootDTO"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseRootDTO"
                }
              }
            }
          }
        },
        "security": [
          {
            "BasicAuth": []
          }
        ],
        "summary": "List inventory items",
        "tags": [
          "Inventory Items"
        ],
        "operationId": "list_inventory_items"
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BasicAuth": {
        "type": "http",
        "scheme": "basic",
        "description": "Merchant secret-key authentication. Pass the PayMongo secret key (sk_live_* or sk_test_*) as the Basic Auth username with an empty password."
      }
    },
    "schemas": {
      "ErrorCode": {
        "enum": [
          "invalid_query_parameters",
          "invalid_request_body",
          "parameter_required",
          "not_found",
          "unauthorized",
          "internal_server_error",
          "forbidden",
          "unprocessable_entity",
          "resource_locked"
        ],
        "type": "string",
        "x-enum-varnames": [
          "ErrInvalidQueryParameters",
          "ErrInvalidRequestBody",
          "ErrParameterRequired",
          "ErrNotFound",
          "ErrUnauthorized",
          "ErrInternalServerError",
          "ErrForbidden",
          "ErrValidationError",
          "ErrMovementConflictCode"
        ]
      },
      "ErrorDetail": {
        "description": "Details about a specific error",
        "properties": {
          "code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorCode"
              }
            ],
            "description": "Code is an application-specific error code, expressed as a string value.",
            "example": "invalid_request_body"
          },
          "detail": {
            "description": "Detail is a human-readable explanation specific to this occurrence of the problem.",
            "example": "Explanation of error code for this case",
            "type": "string"
          },
          "source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Source"
              }
            ],
            "description": "Source is an object containing references to the primary source of the error"
          }
        },
        "type": "object"
      },
      "ErrorResponseRootDTO": {
        "description": "Standard error response containing one or more errors",
        "properties": {
          "errors": {
            "description": "Error objects MUST be returned as an array keyed by `errors` in the top level of a JSON:API document.",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ResponseRootDTO": {
        "description": "Standard response containing data and its metadata if any",
        "properties": {
          "data": {},
          "has_more": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Source": {
        "description": "Source of the error, providing context like JSON Pointer or query parameter",
        "properties": {
          "header": {
            "description": "Header indicates the name of a single request header which caused the error.",
            "example": "X-Header-Name",
            "type": "string"
          },
          "parameter": {
            "description": "Parameter indicates which URI query parameter caused the error.",
            "example": "field_name",
            "type": "string"
          },
          "pointer": {
            "description": "Pointer is a \"JSON Pointer\" [RFC6901] to the value in the request document that caused the error.",
            "example": "/data/customers/0/attributes/name",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ItemResponseDTO": {
        "description": "Stock counters for one variant at one warehouse",
        "properties": {
          "available": {
            "example": 90,
            "type": "integer"
          },
          "created_at": {
            "example": 1752000000,
            "type": "integer"
          },
          "held": {
            "example": 10,
            "type": "integer"
          },
          "id": {
            "example": "invitem_abc123",
            "type": "string"
          },
          "livemode": {
            "example": true,
            "type": "boolean"
          },
          "low_stock_threshold": {
            "example": 5,
            "type": "integer"
          },
          "on_hand": {
            "example": 100,
            "type": "integer"
          },
          "updated_at": {
            "example": 1752000000,
            "type": "integer"
          },
          "variant_id": {
            "example": "prdvar_abc123",
            "type": "string"
          },
          "warehouse_id": {
            "example": "ww_abc123",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  }
}
```