---
title: "List products"
method: GET
path: "/products"
tags: ["Products"]
---

# List products

`GET /products`

## Request

- Base URL: `https://thieve.co/api/v1`
- URL: `https://thieve.co/api/v1/products`
- Auth: API key in header `api-key`

Retrieve a paginated list of Thieve products. Supports filtering by status, category, and search term.

## Query parameters

- `category` string
- `limit` number
- `offset` number
- `search` string
- `sort` 'latest' | 'trending' | 'most-liked' | 'price-low-high' | 'price-high-low'
- `status` 'published' | 'approved' | 'submitted' | 'disapproved'

## Response `200`

Successful response

- object
  - `products` object[], required
    - `categories` string[], required
    - `description` string, nullable, required
    - `id` string, required
    - `images` string[], required
    - `keyFeatures` string[], required
    - `name` string, required
    - `price` object, required
      - `low` number, required
      - `original` number, required
    - `relatedProducts` string[], required
  - `total` number, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `404`: Not found
- `500`: Internal server error

---

[API](https://skmtc.dev/thieve/apis/thieve-api.md) - [All operations](https://skmtc.dev/thieve/apis/thieve-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thieve/apis/thieve-api/revisions/916cb43daaf9?raw)
