---
title: "List features"
method: GET
path: "/openmeter/features"
tags: ["OpenMeter Features"]
---

# List features

`GET /openmeter/features`

List all features.

## 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` ListFeatureParamsFilter — Filter options for listing features.
  - `meter_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 — 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 — Returns entities that fuzzy-match any of the comma-delimited phrases in the filter string.
      - `oeq` string — 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 — Returns entities that fuzzy-match any of the comma-delimited phrases in the filter string.
      - `oeq` string — 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).

## Response `200`

Page paginated response.

- FeaturePagePaginatedResponse — Page paginated response.
  - `data` Feature[], 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.
    - `meter` FeatureMeterReference — Reference to a meter associated with a feature.
      - `id` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).
      - `filters` object — Filters to apply to the dimensions of the meter.
    - `unit_cost` union — Per-unit cost configuration for a feature. Either a fixed manual amount or a dynamic LLM cost lookup.
      - object — A fixed per-unit cost amount.
        - `type` 'manual', required — The type discriminator for manual unit cost.
        - `amount` string, required — Numeric represents an arbitrary precision number.
      - object — LLM cost lookup configuration. Each dimension (provider, model, token type) can be specified as either a static value or a meter group-by property name (mutually exclusive).
        - `type` 'llm', required — The type discriminator for LLM unit cost.
        - `provider_property` string — Meter group-by property that holds the LLM provider. Use this when the meter has a group-by dimension for provider. Mutually exclusive with `provider`.
        - `provider` string — Static LLM provider value (e.g., "openai", "anthropic"). Use this when the feature tracks a single provider. Mutually exclusive with `provider_property`.
        - `model_property` string — Meter group-by property that holds the model ID. Use this when the meter has a group-by dimension for model. Mutually exclusive with `model`.
        - `model` string — Static model ID value (e.g., "gpt-4", "claude-3-5-sonnet"). Use this when the feature tracks a single model. Mutually exclusive with `model_property`.
        - `token_type_property` string — Meter group-by property that holds the token type. Use this when the meter has a group-by dimension for token type. Mutually exclusive with `token_type`.
        - `token_type` 'input' | 'output' | 'cache_read' | 'cache_write' | 'reasoning' | 'request' | 'response' — Token type for LLM cost lookup.
        - `pricing` BillingFeatureLLMUnitCostPricing — Resolved per-token pricing from the LLM cost database.
          - `input_per_token` string, required — Numeric represents an arbitrary precision number.
          - `output_per_token` string, required — Numeric represents an arbitrary precision number.
          - `cache_read_per_token` string — Numeric represents an arbitrary precision number.
          - `reasoning_per_token` string — Numeric represents an arbitrary precision number.
          - `cache_write_per_token` string — Numeric represents an arbitrary precision number.
  - `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

---

[API](https://skmtc.net/openmeterio/apis/openmeter-and-konnect-metering-billing-api.md) · [All operations](https://skmtc.net/openmeterio/apis/openmeter-and-konnect-metering-billing-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openmeterio/openmeter-and-konnect-metering-billing-api/versions/9bca44e2d61d/schema)
