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

# List products

`GET /v1/products`

## Request

- Base URL: `https://api.pricetrack.dev`
- URL: `https://api.pricetrack.dev/v1/products`
- Auth: HTTP bearer

Paginated, optionally filtered by full-text query or category.

## Query parameters

- `q` string
- `category` string
- `page` integer
- `limit` integer

## Response `200`

Product list

- object
  - `data` Product[], required
    - `slug` string, required
    - `name` string, required
    - `description` string, nullable
    - `websiteUrl` string, uri, nullable
    - `pricingUrl` string, uri, nullable
    - `logoUrl` string, uri, nullable
    - `verified` boolean, required
    - `category` object, nullable
      - `slug` string
      - `name` string
    - `plans` Plan[], required
      - `name` string, required
      - `billingPeriod` 'monthly' | 'yearly' | 'one_time' | 'usage_based' | 'custom', required
      - `priceAmount` number, nullable
      - `currency` string, required
      - `priceDisplay` string, nullable
      - `isFree` boolean, required
      - `isCustom` boolean, required
      - `features` Feature[]
        - `name` string
        - `value` string, nullable
        - `category` string, nullable
  - `pagination` Pagination, required
    - `page` integer, required
    - `limit` integer, required
    - `total` integer, required
    - `totalPages` integer, required

## Other responses

- `401`: Missing or invalid API key
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/pricetrack/apis/pricetrack-api.md) · [All operations](https://skmtc.dev/pricetrack/apis/pricetrack-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pricetrack/apis/pricetrack-api/revisions/589cd6882212?raw)
