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

# List products

`GET /v1/sdk/products`

Retrieves a paginated list of products for the authenticated provider. Supports filtering by status, search term, and Managed MCP integration flag.

## Query parameters

- `limit` number
- `offset` number
- `search` string
- `status` 'active' | 'inactive'
- `isManagedMcp` boolean
- `isMcpPay` boolean

## Response `200`

Products retrieved successfully

- object
  - `limit` number — Applied page size (clamped to 1-100)
  - `offset` number — Applied pagination offset
  - `products` SdkProductResponse[]
    - `balance` number, required — Product balance in cents
    - `config` ProductConfigDto
      - `deliveryMethod` string — Delivery method
      - `fulfillmentType` string — Fulfillment type
      - `validityPeriod` number — Validity period in days
    - `createdAt` string, required — Creation timestamp
    - `description` string — Product description
    - `imageUrl` string — URL to the product image
    - `isManagedMcp` boolean, required — Whether this product uses the Managed MCP integration (SolvaPay reverse proxy)
    - `isMcpPay` boolean, required — Deprecated alias of isManagedMcp. Prefer isManagedMcp; still emitted for wire compatibility.
    - `mcp` object — MCP linkage details for MCP-enabled products
    - `metadata` object — Arbitrary key-value metadata
    - `name` string, required — Product name
    - `plans` SdkPlanResponse[] — Plans associated with this product
      - `createdAt` string, required — Creation timestamp
      - `currency` string, required — Currency code (ISO 4217)
      - `currencySymbol` string — Currency symbol
      - `description` string — Plan description
      - `features` object — Plan features
      - `isActive` boolean, required — Whether the plan is active
      - `name` string — Plan name
      - `options` object[], required — Composable pricing options (money as integer minor units)
      - `price` number — Derived headline price in minor units (base or one-time charge)
      - `reference` string, required — Plan reference
      - `requiresPayment` boolean, required — 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
    - `productType` string — Free-form product type
    - `reference` string, required — Product reference
    - `status` string, required — Product status
    - `totalTransactions` number, required — Total number of transactions
    - `updatedAt` string, required — Last update timestamp
  - `total` number — Total number of products matching the filters

## Changes

- **2026-08-14** `aeecbfb5cb3c` — 4 info
  - added the new optional `query` request parameter `isManagedMcp`
  - `query` request parameter `isMcpPay` was deprecated
  - response property `products/items/isMcpPay` deprecated
  - added the required property `products/items/isManagedMcp` to the response with the `200` status
- **2026-08-13** `e356f6586bf2` — 1 info
  - added the optional property `products/items/plans/items/description` to the response with the `200` status
- **2026-08-05** `032545ac8d13` — 2 breaking, 12 warning, 1 info
  - the response property `products/items/plans/items/price` became optional for the status `200`
  - removed the required property `products/items/plans/items/hidden` from the response with the `200` status
  - removed the optional property `products/items/plans/items/billingCycle` from the response with the `200` status
  - removed the optional property `products/items/plans/items/billingModel` from the response with the `200` status
  - …11 more
- **2026-07-30** `8578b7536a9f` — 3 info
  - added the optional property `products/items/plans/items/description` to the response with the `200` status
  - added the optional property `products/items/plans/items/name` to the response with the `200` status
  - added the required property `products/items/plans/items/type` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/solvapay/apis/solvapay-rest-api/changes/v1/sdk/products/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-service-production.skmtc.workers.dev/v1/apis/solvapay/solvapay-rest-api/revisions/d29ab7373802/schema)
