---
title: "List billing products"
method: GET
path: "/billing/products"
tags: ["billing"]
---

# List billing products

`GET /billing/products`

## Query parameters

- `ids` string[]
- `is_active` boolean — Filter products that are active. Defaults to true if not specified
- `name` string
- `price_usage_type` 'licensed' | 'metered'
- `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe'
- `q` string
- `recurring_charges_only` boolean — Filter to products that have at least one recurring price
- `with_one_time_charges` boolean — Filter products that are one time charges
- `with_prices_only` boolean — Filter products that have prices
- `with_zero_price` boolean — Filter products that have zero price for free subscription type
- `without_linked_to_plan` boolean — Filter products that are not linked to any plan
- `limit` integer — Page limit (default 100)
- `offset` integer — Page offset (default 0)

## Response `200`

OK

- object
  - `data` BillingProductDetailResponseData[], required
    - `account_id` string, required
    - `created_at` string, date-time, required
    - `currency` string, nullable — Deprecated; currencies are associated with prices, not products
    - `environment_id` string, required
    - `external_id` string, required
    - `is_active` boolean, required
    - `name` string, required
    - `price` number, double, required
    - `price_decimal` string, nullable
    - `prices` BillingPriceResponseData[], required
      - `currency` string, required
      - `external_price_id` string, required
      - `id` string, required
      - `interval` 'day' | 'month' | 'one-time' | 'year', required
      - `interval_count` integer, required
      - `nickname` string, nullable
      - `price` integer, required
      - `price_decimal` string, nullable
      - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
      - `scheme` 'per_unit' | 'tiered', required
    - `product_id` string, required
    - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
    - `quantity` number, double, required
    - `subscription_count` integer, required
    - `updated_at` string, date-time, required
  - `params` object, required — Input parameters
    - `ids` string[]
    - `is_active` boolean — Filter products that are active. Defaults to true if not specified
    - `limit` integer — Page limit (default 100)
    - `name` string
    - `offset` integer — Page offset (default 0)
    - `price_usage_type` 'licensed' | 'metered'
    - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe'
    - `q` string
    - `recurring_charges_only` boolean — Filter to products that have at least one recurring price
    - `with_one_time_charges` boolean — Filter products that are one time charges
    - `with_prices_only` boolean — Filter products that have prices
    - `with_zero_price` boolean — Filter products that have zero price for free subscription type
    - `without_linked_to_plan` boolean — Filter products that are not linked to any plan

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Server error

---

[API](https://skmtc.net/schematichq/apis/schematic-api.md) · [All operations](https://skmtc.net/schematichq/apis/schematic-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/schematichq/schematic-api/versions/873fb318b08a/schema)
