# List term change products (/api/products/list-subscription-term-change-products)

`GET https://api.comecero.com/api/v1/products/{product_id}/subscription_term_change_products`

The products a subscriber to this product may switch to on a different subscription plan, for example yearly instead of monthly: the active, not deleted products in the product's `subscription_term_change_product_ids` that have a plan other than this product's. All of them come back on one page; `offset` and `limit` do not apply. Secret, trusted and limited tokens may call it.

## Parameters

- `product_id` (path, required): The product id.
- `expand` (query): Comma-separated child objects to return in full instead of as a URL, for example `customer,payments`. Use dot notation for nested objects (`items.product`), up to four levels deep. A single object takes up to 12 paths; a list takes up to 2, applied to every item. Extra paths are dropped without an error. See [Expanding objects](https://docs.comecero.com/docs/basic-concepts/expanding-objects).
- `show` (query): Comma-separated fields to return; all others are left out. Use dot notation for child fields (`customer.email`). You cannot send `show` and `hide` together (`400`). See [Customizing output](https://docs.comecero.com/docs/basic-concepts/customizing-output).
- `hide` (query): Comma-separated fields to leave out of the response. Use dot notation for child fields (`customer.email`). You cannot send `show` and `hide` together (`400`). See [Customizing output](https://docs.comecero.com/docs/basic-concepts/customizing-output).
- `formatted` (query): When `true`, the object also has a `formatted` child with amounts and dates as display text in the shopper's language and currency (for example `$19.99` or `November 7, 2026`). The default is `false`. See [Localized formatting](https://docs.comecero.com/docs/basic-concepts/localized-formatting).
- `currency` (query): The ISO 4217 currency to price the products in. It must be a currency the account can take payment in, or the request fails with `400`.
- `country` (query): A two-letter ISO country code. Used to guess the shopper's currency when you send no `currency`, `cart_id` or `invoice_id`.
- `cart_id` (query): Price in this cart's currency and exchange rate. Ignored if the token may not read the cart.
- `invoice_id` (query): Price in this invoice's currency and exchange rate. Ignored if the token may not read the invoice.

Responses: 200, 400, 401, 403, 404, 500.

Full schemas: operation `list_subscription_term_change_products` in /openapi.json.