---
title: "List features"
method: GET
path: "/api/v1/features"
tags: ["Features"]
---

# List features

`GET /api/v1/features`

## Query parameters

- `statuses` FeatureStatus[]
- `product_id` string, MeteroidId
- `search` string
- `page` integer
- `per_page` integer

## Response `200`

List of features

- FeatureListResponse
  - `data` Feature[], required
    - `created_at` string, date-time, required
    - `description` string, nullable
    - `entitlement` Entitlement — A raw entitlement row attached to one entity (feature, plan version, add-on, or subscription).
      - `created_at` string, date-time, required
      - `feature_id` string, MeteroidId, required
      - `id` string, MeteroidId, required
      - `updated_at` string, date-time, required
      - `value` union, required
        - BooleanEntitlementValue
          - `enabled` boolean, required
        - MeteredEntitlementValue
          - `enabled` boolean — Per-entitlement kill switch. `false` means disabled.
          - `limit` string, decimal, nullable — Cap on usage. Null means unlimited.
          - `overage_behavior` union, required — What happens past the limit.
            - BlockOverageBehavior — Deny access once usage reaches the limit. Meteroid does not enforce this — your integration must check and act.
              - …
            - AllowOverageBehavior — Keep serving usage past the limit; overage is billed or handled out-of-band.
          - `reset_period` union
            - BillingCycleResetPeriod — Resets each time your subscription renews — anchored to your billing cycle.
            - CalendarResetPeriod — Resets on calendar boundaries (e.g. the 1st of every month) — not tied to subscription start date.
              - …
            - FixedWindowResetPeriod — Resets at regular intervals — anchored to your subscription's exact activation time.
              - …
            - SlidingWindowResetPeriod — Always ends at now — e.g. 30 days means the last 30 days, old usage drops off automatically.
              - …
            - NeverResetPeriod — Never resets — counts all usage since the subscription was activated.
          - `warning_threshold_pct` integer, nullable — Percentage of the Cap at which a warning triggers (0–100).
    - `feature_type` union, required
      - BooleanFeatureType
      - MeteredFeatureType
        - `metric_id` string, MeteroidId, required
    - `id` string, MeteroidId, required
    - `name` string, required
    - `product` union
      - ExistingProductRef
        - `id` string, MeteroidId, required
      - NewProductRef
        - `fee_structure` union, required
          - RateFeeStructure
          - SlotFeeStructure
            - `downgrade_policy` 'REMOVE_AT_END_OF_PERIOD', required
            - `slot_unit_name` string, required
            - `upgrade_policy` 'PRORATED', required
          - CapacityFeeStructure
            - `metric_id` string, MeteroidId, required
          - UsageFeeStructure
            - `metric_id` string, MeteroidId, required
            - `model` 'PER_UNIT' | 'TIERED' | 'VOLUME' | 'PACKAGE' | 'MATRIX', required
          - ExtraRecurringFeeStructure
            - `billing_type` 'ADVANCE' | 'ARREARS', required
          - OneTimeFeeStructure
        - `fee_type` 'RATE' | 'SLOT' | 'CAPACITY' | 'USAGE' | 'EXTRA_RECURRING' | 'ONE_TIME', required
        - `name` string, required
    - `status` 'ACTIVE' | 'DISABLED' | 'ARCHIVED', required — Lifecycle status of a feature.
  - `pagination_meta` PaginationResponse, required
    - `page` integer, required
    - `per_page` integer, required
    - `total_items` integer, required
    - `total_pages` integer, required

## Other responses

- `401` — Unauthorized
- `429` — Too many requests

## Changes

- **2026-05-28** (v1) `ed86d893d43e` — 2 breaking, 4 info
  - added `#/components/schemas/BooleanEntitlementValue, #/components/schemas/MeteredEntitlementValue` to the `data/items/entitlement/oneOf[#/components/schemas/Entitlement]/value` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/BooleanFeatureType, #/components/schemas/MeteredFeatureType` to the `data/items/feature_type` response property `oneOf` list for the response status `200`
  - added discriminator to `data/items/entitlement/oneOf[#/components/schemas/Entitlement]/value` response property for the response status `200`
  - added discriminator to `data/items/feature_type` response property for the response status `200`
  - …2 more
- **2026-05-23** (v1) `ac42ddd7b4b4` — 4 breaking, 3 info
  - added `#/components/schemas/ExistingProductRef, #/components/schemas/NewProductRef` to the `data/items/product/oneOf[#/components/schemas/ProductRef]/` response property `oneOf` list for the response status `200`
  - the `data/items/product/oneOf[#/components/schemas/ProductRef]/` response's property type/format changed from `object`/`` to ``/`` for status `200`
  - removed the required property `data/items/product/oneOf[#/components/schemas/ProductRef]/id` from the response with the `200` status
  - removed the required property `data/items/product/oneOf[#/components/schemas/ProductRef]/name` from the response with the `200` status
  - …3 more
- …earlier changes not shown

[Full history](https://skmtc.dev/meteroid-oss/apis/meteroid/changes/api/v1/features/get.md)

---

[API](https://skmtc.dev/meteroid-oss/apis/meteroid.md) · [All operations](https://skmtc.dev/meteroid-oss/apis/meteroid/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/meteroid-oss/meteroid/revisions/ed86d893d43e/schema)
