---
title: "List plan version entitlements"
method: GET
path: "/api/v1/plan-versions/{plan_version_id}/entitlements"
tags: ["Plans", "Entitlements"]
---

# List plan version entitlements

`GET /api/v1/plan-versions/{plan_version_id}/entitlements`

## Path parameters

- `plan_version_id` string, MeteroidId, required

## Response `200`

Resolved entitlements for this plan version

- ResolvedEntitlementListResponse
  - `data` ResolvedEntitlement[], required
    - `feature` FeatureRef, required
      - `id` string, MeteroidId, required
      - `name` string, required
      - `product` union
        - ExistingProductRef
          - `id` string, MeteroidId, required
        - NewProductRef
          - `fee_structure` union, required
            - RateFeeStructure
            - SlotFeeStructure
              - …
            - CapacityFeeStructure
              - …
            - UsageFeeStructure
              - …
            - ExtraRecurringFeeStructure
              - …
            - OneTimeFeeStructure
          - `fee_type` 'RATE' | 'SLOT' | 'CAPACITY' | 'USAGE' | 'EXTRA_RECURRING' | 'ONE_TIME', required
          - `name` string, required
    - `value` union, required
      - BooleanResolvedEntitlementValue
        - `enabled` boolean, required
      - MeteredResolvedEntitlementValue
        - `enabled` boolean, required
        - `limit` string, decimal, nullable
        - `metric_id` string, MeteroidId, required
        - `reset_period` union, required
          - 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.
            - `interval` integer, required
            - `unit` 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR', required
          - FixedWindowResetPeriod — Resets at regular intervals — anchored to your subscription's exact activation time.
            - `interval` integer, required
            - `unit` 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR', required
          - SlidingWindowResetPeriod — Always ends at now — e.g. 30 days means the last 30 days, old usage drops off automatically.
            - `interval` integer, required
            - `unit` 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR', required
          - NeverResetPeriod — Never resets — counts all usage since the subscription was activated.

## Other responses

- `401` — Unauthorized
- `404` — Plan version not found
- `429` — Too many requests

## Changes

- **2026-06-05** (v1) `a890ac9a23e9` — 1 breaking
  - removed the required property `data/items/origin` from the response with the `200` status
- **2026-06-01** (v1) `07a61fe347a5` — 1 breaking, 1 warning
  - removed the required property `data/items/value/oneOf[#/components/schemas/MeteredResolvedEntitlementValue]/overage_behavior` from the response with the `200` status
  - removed the optional property `data/items/value/oneOf[#/components/schemas/MeteredResolvedEntitlementValue]/warning_threshold_pct` from the response with the `200` status
- **2026-05-28** (v1) `ed86d893d43e` — 5 breaking, 4 info
  - added `#/components/schemas/BooleanResolvedEntitlementValue, #/components/schemas/MeteredResolvedEntitlementValue` to the `data/items/value` response property `oneOf` list for the response status `200`
  - removed the required property `data/items/created_at` from the response with the `200` status
  - removed the required property `data/items/feature_id` from the response with the `200` status
  - removed the required property `data/items/id` from the response with the `200` status
  - …5 more
- …earlier changes not shown

[Full history](https://skmtc.dev/meteroid-oss/apis/meteroid/changes/api/v1/plan-versions/:plan_version_id/entitlements/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.dev/meteroid-oss/apis/meteroid/revisions/caeb4bc5d741?raw)
