---
title: "List Prices"
method: GET
path: "/products/{product_id}/prices"
tags: ["Products::Price"]
---

# List Prices

`GET /products/{product_id}/prices`

## Request

- Base URL: `https://myworkspace.myclickfunnels.com/api/v2`
- URL: `https://myworkspace.myclickfunnels.com/api/v2/products/{product_id}/prices`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://accounts.myclickfunnels.com/oauth/authorize`
    - Token URL: `https://accounts.myclickfunnels.com/oauth/token`
- TypeScript: <https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/docs/products/:product_id/prices/get.ts> (a function with typed inputs; its response is checked against the schema)

List all prices for a given product. This will include all prices for all variants of the product. You can also filter by variant_id to get prices for a specific variant.

## Path parameters

- `product_id` string, required

## Query parameters

- `after` string
- `per_page` integer
- `sort_order` 'asc' | 'desc'
- `sort_property` 'id' | 'updated_at'
- `filter` object
  - `id` string: A comma-separated list of price IDs to filter by.
  - `variant_id` string: A comma-separated list of variant IDs to filter by.
  - `visible` true | false: Filter prices by visibility in the online store.
  - `archived` true | false: Filter prices by archived state.

## Response `200`

OK

- ProductsPriceAttributes[]
  - `id` integer: ID
  - `public_id` string, nullable: Price public ID
  - `variant_id` integer, nullable: Variant
  - `name` string, nullable: Name
  - `amount` string: Amount
  - `cost` string, nullable: Cost
  - `currency` string: Currency
  - `duration` integer, nullable: Amount of payments
  - `interval` string, nullable: Interval
  - `trial_interval` string, nullable: Trial interval
  - `trial_duration` integer, nullable: Trial duration
  - `trial_amount` string: Trial Amount
  - `setup_amount` string, nullable: Setup amount
  - `self_cancel` boolean, nullable: Customer can cancel
  - `self_upgrade` boolean, nullable: Legacy setting with no effect: no checkout, customer portal or API plan change reads it. `GET /products/prices/{price_id}/change_options` lists the upgrades and downgrades the API allows from this price.
  - `self_downgrade` boolean, nullable: Legacy setting with no effect: no checkout, customer portal or API plan change reads it. `GET /products/prices/{price_id}/change_options` lists the upgrades and downgrades the API allows from this price.
  - `self_reactivate` boolean, nullable: Customer can reactivate
  - `interval_count` integer, nullable: Interval count
  - `payment_type` 'one_time' | 'subscription' | 'payment_plan' | 'null', nullable: Defaults to 'one_time' if left blank
  - `visible` boolean, nullable: Visible
  - `compare_at_amount` string, nullable: Compare at amount
  - `key` string, nullable: Key
  - `archived` boolean, nullable: Archived
  - `created_at` string, date-time, nullable: Added
  - `updated_at` string, date-time, nullable: Updated

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `422`: Unprocessable Entity - `per_page` must be a positive integer.

## Changes

- **2026-11-03** `511d88b30aea`: 8 breaking, 1 warning, 5 info
  - the response property `items/duration` became nullable for the status `200`
  - the response property `items/interval` became nullable for the status `200`
  - the response property `items/interval_count` became nullable for the status `200`
  - the response property `items/trial_duration` became nullable for the status `200`
  - …10 more

[Operation history](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/changes/products/:product_id/prices/get.md)

---

[API](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api.md) - [All operations](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/llms.txt) - [OpenAPI document](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/revisions/511d88b30aea?raw)
