> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# `GET /api/v1/products`

> `GET /api/v1/products`

### Query parameters

<ParamField query="limit" type="integer (int32)">
  Maximum number of results to return (default: 50).
</ParamField>

<ParamField query="offset" type="integer (int32)">
  Number of results to skip (default: 0). Ignored when `after` cursor is set.
</ParamField>

<ParamField query="after" type="string">
  Cursor for keyset pagination (opaque token from `next_cursor`).
</ParamField>

<ParamField query="status" type="string">
  Filter by product status (draft, active, archived).
</ParamField>

<ParamField query="product_type" type="string">
  Filter by product type (simple, digital, bundle, subscription, service).
</ParamField>

<ParamField query="search" type="string">
  Full-text search across name and description.
</ParamField>

<ParamField query="category" type="string">
  Filter by category.
</ParamField>

<ParamField query="min_price" type="string">
  Minimum price filter.
</ParamField>

<ParamField query="max_price" type="string">
  Maximum price filter.
</ParamField>

<ParamField query="in_stock" type="boolean">
  Filter by stock availability.
</ParamField>

### Responses

<ResponseField name="200" type="ProductListResponse">
  List of products
</ResponseField>

<ResponseField name="400" type="ErrorBody">
  Invalid filter parameter
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://api.stateset.com/api/v1/products' \
    --header 'Authorization: Bearer YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "has_more": true,
    "limit": 1,
    "next_cursor": null,
    "offset": 1,
    "products": [
      {
        "created_at": "2026-07-24T12:00:00Z",
        "description": "string",
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "name": "string",
        "product_type": "string",
        "slug": "string",
        "status": "string",
        "updated_at": "2026-07-24T12:00:00Z"
      }
    ],
    "total": 1
  }
  ```
</ResponseExample>
