---
title: "List add-ons"
method: GET
path: "/openmeter/addons"
tags: ["OpenMeter Product Catalog"]
---

# List add-ons

`GET /openmeter/addons`

List all add-ons.

## Query parameters

- `page` object
  - `size` integer — The number of items to include per page.
  - `number` integer — The page number.
- `sort` string — The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. Multiple sort attributes may be provided via a comma separated list. JSONPath notation may be used to specify a sub-attribute (eg: 'foo.bar desc').
- `filter` ListAddonsParamsFilter — Filter options for listing add-ons.
  - `id` union — Filters on the given ULID field value by exact match. All properties are optional; provide exactly one to specify the comparison.
    - string — ULID (Universally Unique Lexicographically Sortable Identifier).
    - object
      - `eq` string — ULID (Universally Unique Lexicographically Sortable Identifier).
      - `oeq` string, ArrayEncoding.commaDelimited — Returns entities that exact match any of the comma-delimited ULIDs in the filter string.
      - `neq` string — ULID (Universally Unique Lexicographically Sortable Identifier).
  - `key` union — Filters on the given string field value by either exact or fuzzy match. All properties are optional; provide exactly one to specify the comparison.
    - string
    - object
      - `eq` string — Value strictly equals the given string value.
      - `neq` string — Value does not equal the given string value.
      - `contains` string — Value contains the given string value (fuzzy match).
      - `ocontains` string, ArrayEncoding.commaDelimited — Returns entities that fuzzy-match any of the comma-delimited phrases in the filter string.
      - `oeq` string, ArrayEncoding.commaDelimited — Returns entities that exact match any of the comma-delimited phrases in the filter string.
      - `gt` string — Value is greater than the given string value (lexicographic compare).
      - `gte` string — Value is greater than or equal to the given string value (lexicographic compare).
      - `lt` string — Value is less than the given string value (lexicographic compare).
      - `lte` string — Value is less than or equal to the given string value (lexicographic compare).
      - `exists` boolean — When true, the field must be present (non-null); when false, the field must be absent (null).
  - `name` union — Filters on the given string field value by either exact or fuzzy match. All properties are optional; provide exactly one to specify the comparison.
    - string
    - object
      - `eq` string — Value strictly equals the given string value.
      - `neq` string — Value does not equal the given string value.
      - `contains` string — Value contains the given string value (fuzzy match).
      - `ocontains` string, ArrayEncoding.commaDelimited — Returns entities that fuzzy-match any of the comma-delimited phrases in the filter string.
      - `oeq` string, ArrayEncoding.commaDelimited — Returns entities that exact match any of the comma-delimited phrases in the filter string.
      - `gt` string — Value is greater than the given string value (lexicographic compare).
      - `gte` string — Value is greater than or equal to the given string value (lexicographic compare).
      - `lt` string — Value is less than the given string value (lexicographic compare).
      - `lte` string — Value is less than or equal to the given string value (lexicographic compare).
      - `exists` boolean — When true, the field must be present (non-null); when false, the field must be absent (null).
  - `status` union — Filters on the given string field value by exact match. All properties are optional; provide exactly one to specify the comparison.
    - string
    - object
      - `eq` string — Value strictly equals the given string value.
      - `oeq` string, ArrayEncoding.commaDelimited — Returns entities that exact match any of the comma-delimited phrases in the filter string.
      - `neq` string — Value does not equal the given string value.
  - `currency` union — Filters on the given string field value by exact match. All properties are optional; provide exactly one to specify the comparison.
    - string
    - object
      - `eq` string — Value strictly equals the given string value.
      - `oeq` string, ArrayEncoding.commaDelimited — Returns entities that exact match any of the comma-delimited phrases in the filter string.
      - `neq` string — Value does not equal the given string value.

## Response `200`

Page paginated response.

- AddonPagePaginatedResponse — Page paginated response.
  - `data` Addon[], required
    - `id` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).
    - `name` string, required — Display name of the resource. Between 1 and 256 characters.
    - `description` string — Optional description of the resource. Maximum 1024 characters.
    - `labels` Labels — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `created_at` string, date-time, required — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `updated_at` string, date-time, required — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `deleted_at` string, date-time — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `key` string, required — A key is a unique string that is used to identify a resource.
    - `version` integer, required — Version of the add-on. Incremented when the add-on is updated.
    - `instance_type` 'single' | 'multiple', required — The instanceType of the add-on. - `single`: Can be added to a subscription only once. - `multiple`: Can be added to a subscription more than once.
    - `currency` string, required — Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. Custom three-letter currency codes are also supported for convenience.
    - `effective_from` string, date-time — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `effective_to` string, date-time — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `status` 'draft' | 'active' | 'archived', required — The status of the add-on defined by the `effective_from` and `effective_to` properties. - `draft`: The add-on has not yet been published and can be edited. - `active`: The add-on is published and available for use. - `archived`: The add-on is no longer available for use.
    - `rate_cards` BillingRateCard[], required — The rate cards of the add-on.
      - `name` string, required — Display name of the resource. Between 1 and 256 characters.
      - `description` string — Optional description of the resource. Maximum 1024 characters.
      - `labels` Labels — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
      - `key` string, required — A key is a unique string that is used to identify a resource.
      - `feature` FeatureReferenceItem — Feature reference.
        - `id` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).
      - `billing_cadence` string, ISO8601 — [ISO 8601 Duration](https://docs.digi.com/resources/documentation/digidocs/90001488-13/reference/r_iso_8601_duration_format.htm) string.
      - `price` union, required — Price.
        - object — Free price.
          - `type` 'free', required — The type of the price.
        - object — Flat price.
          - `type` 'flat', required — The type of the price.
          - `amount` string, required — Numeric represents an arbitrary precision number.
        - object — Unit price. Charges a fixed rate per billing unit. When UnitConfig is present on the rate card, billing units are the converted quantities (e.g. GB instead of bytes).
          - `type` 'unit', required — The type of the price.
          - `amount` string, required — Numeric represents an arbitrary precision number.
        - object — Graduated tiered price. Each tier's rate applies only to the usage within that tier. Pricing can change as cumulative usage crosses tier boundaries. When UnitConfig is present on the rate card, tier boundaries (up_to_amount) are expressed in converted billing units.
          - `type` 'graduated', required — The type of the price.
          - `tiers` BillingPriceTier[], required — The tiers of the graduated price. At least one tier is required.
            - `up_to_amount` string — Numeric represents an arbitrary precision number.
            - `flat_price` BillingPriceFlat — Flat price.
              - …
            - `unit_price` BillingPriceUnit — Unit price. Charges a fixed rate per billing unit. When UnitConfig is present on the rate card, billing units are the converted quantities (e.g. GB instead of bytes).
              - …
        - object — Volume tiered price. The maximum quantity within a period determines the per-unit price for all units in that period. When UnitConfig is present on the rate card, tier boundaries (up_to_amount) are expressed in converted billing units.
          - `type` 'volume', required — The type of the price.
          - `tiers` BillingPriceTier[], required — The tiers of the volume price. At least one tier is required.
            - `up_to_amount` string — Numeric represents an arbitrary precision number.
            - `flat_price` BillingPriceFlat — Flat price.
              - …
            - `unit_price` BillingPriceUnit — Unit price. Charges a fixed rate per billing unit. When UnitConfig is present on the rate card, billing units are the converted quantities (e.g. GB instead of bytes).
              - …
      - `payment_term` 'in_advance' | 'in_arrears' — The payment term of a flat price.
      - `commitments` BillingSpendCommitments — Spend commitments for a rate card. The customer is committed to spend at least the minimum amount and at most the maximum amount.
        - `minimum_amount` string — Numeric represents an arbitrary precision number.
        - `maximum_amount` string — Numeric represents an arbitrary precision number.
      - `discounts` BillingRateCardDiscounts — Discount configuration for a rate card.
        - `percentage` number — Percentage discount applied to the price (0–100).
        - `usage` string — Numeric represents an arbitrary precision number.
      - `tax_config` BillingRateCardTaxConfig — The tax config of the rate card.
        - `behavior` 'inclusive' | 'exclusive' — Tax behavior. This enum is used to specify whether tax is included in the price or excluded from the price.
        - `code` TaxCodeReferenceItem, required — TaxCode reference.
          - `id` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).
    - `validation_errors` ProductCatalogValidationError[] — List of validation errors.
      - `code` string, required — Machine-readable error code.
      - `message` string, required — Human-readable description of the error.
      - `attributes` object — Additional structured context.
      - `field` string, required — The path to the field.
  - `meta` PaginatedMeta, required — returns the pagination information
    - `page` PageMeta, required — Contains pagination query parameters and the total number of objects returned.
      - `number` number, required
      - `size` number, required
      - `total` number, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden

## Changes

- **2026-05-11** (v3) `9d0042cb3815` — 7 breaking, 2 warning, 2 info
  - for the `query` request parameter `filter`, the type/format of property `currency/anyOf[subschema #2]/oeq` was specialized from `string`/`` to `string`/`ArrayEncoding.commaDelimited`
  - for the `query` request parameter `filter`, the type/format of property `id/anyOf[subschema #2]/oeq` was specialized from `string`/`` to `string`/`ArrayEncoding.commaDelimited`
  - for the `query` request parameter `filter`, the type/format of property `key/anyOf[subschema #2]/ocontains` was specialized from `string`/`` to `string`/`ArrayEncoding.commaDelimited`
  - for the `query` request parameter `filter`, the type/format of property `key/anyOf[subschema #2]/oeq` was specialized from `string`/`` to `string`/`ArrayEncoding.commaDelimited`
  - …7 more

[Change history](https://skmtc.dev/openmeterio/apis/openmeter-api/changes/openmeter/addons/get.md)

---

[API](https://skmtc.dev/openmeterio/apis/openmeter-api.md) · [All operations](https://skmtc.dev/openmeterio/apis/openmeter-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openmeterio/openmeter-api/revisions/64826b7e8711/schema)
