---
title: "Get public catalog"
method: GET
path: "/public/catalog"
tags: ["catalogs"]
---

# Get public catalog

`GET /public/catalog`

## Request

- Base URL: `https://api.schematichq.com`
- URL: `https://api.schematichq.com/public/catalog`
- Auth: API key in header `X-Schematic-Api-Key`

## Response `200`

OK

- object
  - `data` PublicCatalogResponseData, required
    - `add_ons` CatalogPlanResponseData[], required
      - `available_periods` PlanPriceCadence[], required
      - `billing_strategy` 'schematic_managed' | 'provider_managed' | 'no_billing', required
      - `charge_type` 'free' | 'none' | 'one_time' | 'recurring', required
      - `compatible_plan_ids` string[], nullable: For add-ons, the plans this add-on may be purchased with. Null means compatible with every plan.
      - `currency_prices` CatalogCurrencyPricesResponseData[], required
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `monthly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `one_time_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `quarterly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `yearly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
      - `description` string, required
      - `entitlements` CatalogPlanEntitlementResponseData[], required
        - `consumption_rate` number, double, nullable: Credits consumed per unit of usage, for credit-burndown entitlements.
        - `credit_equivalent_limit` integer, nullable: How many units of usage the plan's fixed included credit grants cover (⌊granted credits ÷ consumption rate⌋). Null when there is no fixed grant or the grant scales per license.
        - `credit_icon` string, nullable
        - `credit_id` string, nullable
        - `credit_name` string, nullable
        - `credit_plural_name` string, nullable
        - `credit_singular_name` string, nullable
        - `currency_prices` CatalogCurrencyPricesResponseData[], required
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `monthly_price` CatalogPriceResponseData
            - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
            - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_tiers` CatalogPriceTierResponseData[], required
              - …
            - `scheme` 'per_unit' | 'tiered', required
            - `tiers_mode` 'graduated' | 'volume'
          - `one_time_price` CatalogPriceResponseData
            - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
            - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_tiers` CatalogPriceTierResponseData[], required
              - …
            - `scheme` 'per_unit' | 'tiered', required
            - `tiers_mode` 'graduated' | 'volume'
          - `quarterly_price` CatalogPriceResponseData
            - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
            - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_tiers` CatalogPriceTierResponseData[], required
              - …
            - `scheme` 'per_unit' | 'tiered', required
            - `tiers_mode` 'graduated' | 'volume'
          - `yearly_price` CatalogPriceResponseData
            - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
            - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_tiers` CatalogPriceTierResponseData[], required
              - …
            - `scheme` 'per_unit' | 'tiered', required
            - `tiers_mode` 'graduated' | 'volume'
        - `feature_description` string, required
        - `feature_icon` string, required
        - `feature_id` string, required
        - `feature_name` string, required
        - `feature_plural_name` string, nullable
        - `feature_singular_name` string, nullable
        - `feature_type` 'boolean' | 'event' | 'license' | 'trait', required
        - `id` string, required
        - `license_id` string, nullable
        - `metered_monthly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `metered_quarterly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `metered_yearly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `metric_period` 'all_time' | 'current_day' | 'current_month' | 'current_week'
        - `metric_period_month_reset` 'billing_cycle' | 'first_of_month'
        - `price_behavior` 'credit_burndown' | 'overage' | 'pay_as_you_go' | 'pay_in_advance' | 'tier'
        - `soft_limit` integer, nullable
        - `value_bool` boolean, nullable
        - `value_numeric` integer, nullable
        - `value_type` 'boolean' | 'credit' | 'numeric' | 'trait' | 'unknown' | 'unlimited', required
        - `warning_threshold` integer, nullable: The default warning-tier value, when configured.
      - `icon` string, required
      - `id` string, required
      - `included_credit_grants` CatalogCreditGrantResponseData[], required
        - `company_credit_amount` integer, required: Flat credit amount granted to the company regardless of scaling.
        - `credit_amount` integer, required: Credits granted; for per_license scaling this is the amount per license unit.
        - `credit_icon` string, nullable
        - `credit_id` string, required
        - `credit_name` string, required
        - `credit_plural_name` string, nullable
        - `credit_singular_name` string, nullable
        - `id` string, required
        - `license_id` string, nullable
        - `reset_cadence` 'daily' | 'every_6_months' | 'monthly' | 'quarterly' | 'weekly' | 'yearly'
        - `scaling` 'fixed' | 'per_license', required
        - `visible` boolean, required: Whether the catalog shows this credit on the plan. Display-only: a hidden grant is still granted and priced at checkout.
      - `is_trialable` boolean, required
      - `monthly_price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
      - `name` string, required
      - `one_time_price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
      - `quarterly_price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
      - `trial_days` integer, nullable
      - `yearly_price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
    - `capabilities` CatalogCapabilitiesResponseData, required
      - `badge_visibility` boolean, required: Whether the consumer may hide the 'powered by Schematic' badge (the account's badge-hideable entitlement); false means the badge must be shown.
      - `checkout` boolean, required
    - `credit_bundles` CatalogCreditBundleResponseData[], required
      - `bundle_type` 'fixed', required
      - `compatible_plan_ids` string[], nullable: The plans whose companies may purchase this bundle. Null means compatible with every plan.
      - `credit_icon` string, nullable
      - `credit_id` string, required
      - `credit_name` string, required
      - `credit_plural_name` string, nullable
      - `credit_singular_name` string, nullable
      - `currency_prices` CatalogBundleCurrencyPriceResponseData[], required
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `unit_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
      - `expiry_type` 'duration' | 'end_of_billing_period' | 'end_of_next_billing_period' | 'end_of_trial' | 'no_expiry', required
      - `expiry_unit` 'billing_periods' | 'days', required
      - `expiry_unit_count` integer, nullable
      - `id` string, required
      - `name` string, required
      - `price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
      - `quantity` integer, nullable: Credits granted per purchase; null means the buyer chooses a custom quantity priced via unit_price.
      - `unit_price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
    - `custom_plan_cta` CatalogCustomPlanCTAResponseData
      - `cta_text` string, nullable
      - `cta_url` string, nullable
      - `price_text` string, nullable
    - `default_currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
    - `description` string, nullable
    - `id` string, required
    - `name` string, required
    - `plans` CatalogPlanResponseData[], required
      - `available_periods` PlanPriceCadence[], required
      - `billing_strategy` 'schematic_managed' | 'provider_managed' | 'no_billing', required
      - `charge_type` 'free' | 'none' | 'one_time' | 'recurring', required
      - `compatible_plan_ids` string[], nullable: For add-ons, the plans this add-on may be purchased with. Null means compatible with every plan.
      - `currency_prices` CatalogCurrencyPricesResponseData[], required
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `monthly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `one_time_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `quarterly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `yearly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
      - `description` string, required
      - `entitlements` CatalogPlanEntitlementResponseData[], required
        - `consumption_rate` number, double, nullable: Credits consumed per unit of usage, for credit-burndown entitlements.
        - `credit_equivalent_limit` integer, nullable: How many units of usage the plan's fixed included credit grants cover (⌊granted credits ÷ consumption rate⌋). Null when there is no fixed grant or the grant scales per license.
        - `credit_icon` string, nullable
        - `credit_id` string, nullable
        - `credit_name` string, nullable
        - `credit_plural_name` string, nullable
        - `credit_singular_name` string, nullable
        - `currency_prices` CatalogCurrencyPricesResponseData[], required
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `monthly_price` CatalogPriceResponseData
            - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
            - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_tiers` CatalogPriceTierResponseData[], required
              - …
            - `scheme` 'per_unit' | 'tiered', required
            - `tiers_mode` 'graduated' | 'volume'
          - `one_time_price` CatalogPriceResponseData
            - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
            - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_tiers` CatalogPriceTierResponseData[], required
              - …
            - `scheme` 'per_unit' | 'tiered', required
            - `tiers_mode` 'graduated' | 'volume'
          - `quarterly_price` CatalogPriceResponseData
            - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
            - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_tiers` CatalogPriceTierResponseData[], required
              - …
            - `scheme` 'per_unit' | 'tiered', required
            - `tiers_mode` 'graduated' | 'volume'
          - `yearly_price` CatalogPriceResponseData
            - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
            - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_tiers` CatalogPriceTierResponseData[], required
              - …
            - `scheme` 'per_unit' | 'tiered', required
            - `tiers_mode` 'graduated' | 'volume'
        - `feature_description` string, required
        - `feature_icon` string, required
        - `feature_id` string, required
        - `feature_name` string, required
        - `feature_plural_name` string, nullable
        - `feature_singular_name` string, nullable
        - `feature_type` 'boolean' | 'event' | 'license' | 'trait', required
        - `id` string, required
        - `license_id` string, nullable
        - `metered_monthly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `metered_quarterly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `metered_yearly_price` CatalogPriceResponseData
          - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
          - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_tiers` CatalogPriceTierResponseData[], required
            - `flat_price` integer, nullable
            - `from` integer, required: Lower bound of the tier (inclusive).
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
          - `scheme` 'per_unit' | 'tiered', required
          - `tiers_mode` 'graduated' | 'volume'
        - `metric_period` 'all_time' | 'current_day' | 'current_month' | 'current_week'
        - `metric_period_month_reset` 'billing_cycle' | 'first_of_month'
        - `price_behavior` 'credit_burndown' | 'overage' | 'pay_as_you_go' | 'pay_in_advance' | 'tier'
        - `soft_limit` integer, nullable
        - `value_bool` boolean, nullable
        - `value_numeric` integer, nullable
        - `value_type` 'boolean' | 'credit' | 'numeric' | 'trait' | 'unknown' | 'unlimited', required
        - `warning_threshold` integer, nullable: The default warning-tier value, when configured.
      - `icon` string, required
      - `id` string, required
      - `included_credit_grants` CatalogCreditGrantResponseData[], required
        - `company_credit_amount` integer, required: Flat credit amount granted to the company regardless of scaling.
        - `credit_amount` integer, required: Credits granted; for per_license scaling this is the amount per license unit.
        - `credit_icon` string, nullable
        - `credit_id` string, required
        - `credit_name` string, required
        - `credit_plural_name` string, nullable
        - `credit_singular_name` string, nullable
        - `id` string, required
        - `license_id` string, nullable
        - `reset_cadence` 'daily' | 'every_6_months' | 'monthly' | 'quarterly' | 'weekly' | 'yearly'
        - `scaling` 'fixed' | 'per_license', required
        - `visible` boolean, required: Whether the catalog shows this credit on the plan. Display-only: a hidden grant is still granted and priced at checkout.
      - `is_trialable` boolean, required
      - `monthly_price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
      - `name` string, required
      - `one_time_price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
      - `quarterly_price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
      - `trial_days` integer, nullable
      - `yearly_price` CatalogPriceResponseData
        - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
        - `id` string, required
        - `interval` 'day' | 'month' | 'one-time' | 'year', required
        - `interval_count` integer, required
        - `overage_unit_price_decimal` string, nullable: Per-unit price of the final tier, precomputed for overage display.
        - `package_size` integer, required: Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units.
        - `price` integer, required
        - `price_decimal` string, nullable
        - `price_tiers` CatalogPriceTierResponseData[], required
          - `flat_price` integer, nullable
          - `from` integer, required: Lower bound of the tier (inclusive).
          - `per_unit_price` integer, nullable
          - `per_unit_price_decimal` string, nullable
          - `to` integer, nullable: Upper bound of the tier (inclusive); null means unbounded.
        - `scheme` 'per_unit' | 'tiered', required
        - `tiers_mode` 'graduated' | 'volume'
    - `pricing_model` string, nullable
    - `pricing_url` string, nullable
  - `params` object, required: Input parameters

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `500`: Server error

## Changes

> 230 revisions in range; 1 not diffed.

- **2026-10-26** `6de34297622a`: 2 info
  - added the required property `data/add_ons/items/included_credit_grants/items/visible` to the response with the `200` status
  - added the required property `data/plans/items/included_credit_grants/items/visible` to the response with the `200` status
- **2026-10-21** `78afe1f42857`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/schematichq/apis/schematic-api/changes/public/catalog/get.md)

---

[API](https://skmtc.dev/schematichq/apis/schematic-api.md) - [All operations](https://skmtc.dev/schematichq/apis/schematic-api/llms.txt) - [OpenAPI document](https://skmtc.dev/schematichq/apis/schematic-api/revisions/64cb7e17c236?raw)
