---
title: "Recent price changes across the catalog"
method: GET
path: "/v1/changes"
tags: ["Changes"]
---

# Recent price changes across the catalog

`GET /v1/changes`

## Request

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

Paginated feed of detected price changes with the same filters as /changes on the website. Mirrors what the public RSS/JSON feeds expose, plus ApiKey auth and rate limiting.

## Query parameters

- `direction` 'all' | 'increase' | 'decrease' | 'new' | 'removed'
- `window` '24h' | '7d' | '30d' | '90d' | 'all'
- `category` string
- `page` integer
- `limit` integer

## Response `200`

Paginated list of price-change events

- object
  - `data` ChangeEvent[]
    - `id` string, uuid
    - `product` object
      - `slug` string
      - `name` string
    - `category` object, nullable
      - `slug` string
      - `name` string
    - `plan` string, nullable
    - `currency` string: ISO 4217 currency code, default USD.
    - `oldPrice` number, nullable
    - `newPrice` number, nullable
    - `changeType` 'increase' | 'decrease' | 'new_plan' | 'removed_plan' | 'restructure'
    - `changePercentage` number, nullable
    - `detectedAt` string, date-time
  - `pagination` object
    - `page` integer
    - `limit` integer
    - `total` integer
    - `totalPages` integer
  - `filters` object
    - `direction` string
    - `window` string
    - `category` string, nullable

## 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)
