---
title: "Get User Subscription"
method: GET
path: "/v1/users/me/subscription"
tags: ["Users"]
---

# Get User Subscription

`GET /v1/users/me/subscription`

## Request

- Base URL: `https://api.fettle.sh` (the document declares no server; this is the origin it was published from)
- URL: `https://api.fettle.sh/v1/users/me/subscription`
- Auth: API key in header `Authorization`

Returns the active organization's subscription: plan, status, renewal
dates, billing period, and next-charge amount and currency.

## Headers

- `X-Organization-Id` string, uuid, nullable

## Response `200`

Successful Response

- SubscriptionSummary: Current subscription state for the authenticated user. ``status`` is ``null`` for accounts that never subscribed (free tier). ``renews_at`` is set while the subscription auto-renews; ``expires_at`` is set instead once a cancellation is scheduled for period end. Overrides ``Base``'s ``use_enum_values``: this keeps ``billing_period`` as an actual ``BillingPeriod`` instance instead of a pre-coerced string, so the declared response model stays the contract for what gets serialized. A ``StrEnum`` member serializes to the same JSON value either way.
  - `plan` 'FREE' | 'PLUS' | 'PRO' | 'MAX' | 'ENTERPRISE', required: Subscription tier of an organization; gates feature/usage limits.
  - `status` 'ACTIVE' | 'TRIALING' | 'PAST_DUE' | 'CANCELED' | 'INCOMPLETE' | 'INCOMPLETE_EXPIRED' | 'UNPAID': Lifecycle state of a user's paid subscription. Member name == value (UPPER_SNAKE_CASE) to match the project's enum convention and the persisted DB labels. Polar emits lowercase status strings on the wire; that translation lives in ``SubscriptionService``.
  - `cancel_at_period_end` boolean
  - `renews_at` string, date-time, nullable
  - `expires_at` string, date-time, nullable
  - `trial_ends_at` string, date-time, nullable
  - `billing_period` 'MONTH' | 'YEAR': How often a subscription renews. Polar models monthly and yearly billing as separate products, so the period is part of what a checkout selects. Member name == value to match the project's enum convention and the persisted DB labels.
  - `amount` integer, nullable
  - `currency` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/fettle/apis/fettle-sh.md) · [All operations](https://skmtc.dev/fettle/apis/fettle-sh/llms.txt) · [OpenAPI document](https://skmtc.dev/fettle/apis/fettle-sh/revisions/f32c8a18606f?raw)
