---
title: "List plans for a product"
method: GET
path: "/v1/sdk/products/{productRef}/plans"
tags: ["Plans"]
---

# List plans for a product

`GET /v1/sdk/products/{productRef}/plans`

## Request

- Base URL: `https://api.solvapay.com`
- URL: `https://api.solvapay.com/v1/sdk/products/{productRef}/plans`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/solvapay/apis/solvapay-rest-api/docs/v1/sdk/products/:productRef/plans/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieves the plans belonging to a product, paginated in-memory. Returns SDK-shaped plans with option money serialized to integer minor units; hidden plans are excluded. The `type` field is derived from each plan's composable options.

## Path parameters

- `productRef` string, required

## Query parameters

- `limit` number
- `offset` number

## Response `200`

Plans retrieved successfully

- object
  - `limit` number
  - `offset` number
  - `plans` Plan[]
    - `accessExpiryDays` number: Access expiry in days
    - `createdAt` string, required: Creation timestamp
    - `currency` string: Currency code (ISO 4217)
    - `currencySymbol` string: Currency symbol (derived from currency)
    - `description` string: Plan description
    - `features` object: Plan features
    - `isActive` boolean, required: Whether the plan is active (derived from status)
    - `maxActiveUsers` number: Maximum number of active users
    - `name` string: Plan name
    - `options` object[], required: Composable pricing options (money as integer minor units)
    - `price` number: Derived headline price in minor units (the base or one-time charge)
    - `reference` string, required: Plan reference
    - `requiresPayment` boolean: Whether payment is required
    - `status` string, required: Plan status
    - `type` 'recurring' | 'one-time' | 'usage-based' | 'hybrid', required: Derived plan type (read from options)
    - `updatedAt` string, required: Last update timestamp
  - `total` number: Total number of plans for the product

## Other responses

- `404`: Product not found

## Changes

- **2026-08-05** `032545ac8d13`: 1 breaking, 12 warning, 1 info
  - removed the required property `plans/items/hidden` from the response with the `200` status
  - removed the optional property `plans/items/billingCycle` from the response with the `200` status
  - removed the optional property `plans/items/billingModel` from the response with the `200` status
  - removed the optional property `plans/items/creditsPerUnit` from the response with the `200` status
  - …10 more
- **2026-07-30** `8578b7536a9f`: 3 breaking, 1 warning
  - the response property `plans/items/currency` became optional for the status `200`
  - the response property `plans/items/price` became optional for the status `200`
  - the response property `plans/items/requiresPayment` became optional for the status `200`
  - removed the optional property `plans/items/taxBehavior` from the response with the `200` status
- **2026-07-17** `bbc2ff2bc849`: 2 info
  - added the optional property `plans/items/taxBehavior` to the response with the `200` status
  - added the required property `plans/items/hidden` to the response with the `200` status
- **2026-07-04** `a30b6aef464d`: 1 info
  - added the optional property `plans/items/pricingOptions` to the response with the `200` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/solvapay/apis/solvapay-rest-api/changes/v1/sdk/products/:productRef/plans/get.md)

---

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