---
title: "Get Subscription"
method: GET
path: "/api/v1/subscriptions/{id}"
tags: ["Subscriptions"]
---

# Get Subscription

`GET /api/v1/subscriptions/{id}`

## Path parameters

- `id` string, required

## Response `200`

Successful response

- object
  - `subscription` union, required
    - object
      - `id` string, required
      - `createdAt` integer, required — Epoch milliseconds.
      - `updatedAt` integer, required — Epoch milliseconds.
      - `livemode` boolean, required
      - `startDate` integer, required — Epoch milliseconds.
      - `customerId` string, required
      - `organizationId` string, required
      - `status` 'trialing' | 'active' | 'past_due' | 'unpaid' | 'cancellation_scheduled' | 'incomplete' | 'incomplete_expired' | 'canceled' | 'paused', required
      - `defaultPaymentMethodId` string, nullable, required
      - `backupPaymentMethodId` string, nullable, required
      - `trialEnd` integer, nullable — Epoch milliseconds.
      - `currentBillingPeriodStart` integer, nullable — Epoch milliseconds.
      - `currentBillingPeriodEnd` integer, nullable — Epoch milliseconds.
      - `metadata` Metadata — JSON object
      - `canceledAt` integer, nullable — Epoch milliseconds.
      - `cancelScheduledAt` integer, nullable — Epoch milliseconds.
      - `cancellationReason` string, nullable, required
      - `replacedBySubscriptionId` string, nullable, required
      - `isFreePlan` boolean, nullable, required
      - `priceId` string, nullable, required
      - `runBillingAtPeriodStart` boolean, nullable, required
      - `interval` 'day' | 'week' | 'month' | 'year', required
      - `intervalCount` integer, required — A positive integer
      - `billingCycleAnchorDate` integer, nullable — Epoch milliseconds.
      - `name` string, nullable, required
      - `renews` true, required
      - `current` boolean, required — Whether the subscription is current (statuses "active", "trialing", "past_due", or "cancellation_scheduled")
    - object
      - `id` string, required
      - `createdAt` integer, required — Epoch milliseconds.
      - `updatedAt` integer, required — Epoch milliseconds.
      - `livemode` boolean, required
      - `startDate` integer, required — Epoch milliseconds.
      - `customerId` string, required
      - `organizationId` string, required
      - `status` 'active' | 'canceled' | 'credit_trial', required
      - `defaultPaymentMethodId` string, nullable, required
      - `backupPaymentMethodId` string, nullable, required
      - `trialEnd` unknown, required
      - `currentBillingPeriodStart` unknown, required
      - `currentBillingPeriodEnd` unknown, required
      - `metadata` Metadata — JSON object
      - `canceledAt` integer, nullable — Epoch milliseconds.
      - `cancelScheduledAt` integer, nullable — Epoch milliseconds.
      - `cancellationReason` string, nullable, required
      - `replacedBySubscriptionId` string, nullable, required
      - `isFreePlan` boolean, nullable, required
      - `priceId` string, nullable, required
      - `runBillingAtPeriodStart` boolean, nullable, required
      - `interval` unknown, required
      - `intervalCount` unknown, required
      - `billingCycleAnchorDate` unknown, required
      - `name` string, nullable, required
      - `renews` false, required
      - `current` boolean, required — Whether the subscription is current (statuses "active", "trialing", "past_due", "cancellation_scheduled", or "credit_trial")

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `404` — Not found
- `500` — Internal server error

## Changes

- **2025-10-18** `a1eeb4fac4d6` — 2 breaking, 7 info
  - added `#/components/schemas/StandardSubscriptionRecord, #/components/schemas/NonRenewingSubscriptionRecord` to the `subscription` response property `oneOf` list for the response status `200`
  - the `subscription` response's property type changed from no type to `object` for status `200`
  - added the non-success response with the status `400`
  - added the non-success response with the status `401`
  - …5 more
- **2025-06-25** `0cf7bce0c17d` — 26 breaking, 1 info
  - the `subscription` response's property type changed from `object` to no type for status `200`
  - removed the required property `subscription/backupPaymentMethodId` from the response with the `200` status
  - removed the required property `subscription/billingCycleAnchorDate` from the response with the `200` status
  - removed the required property `subscription/cancelScheduledAt` from the response with the `200` status
  - …23 more
- **2025-04-28** `00982324965d` — 2 info
  - added the required property `subscription/createdByCommit` to the response with the `200` status
  - added the required property `subscription/updatedByCommit` to the response with the `200` status
- **2025-04-10** `c33de7567de2` — 1 info
  - added the required property `subscription/startDate` to the response with the `200` status
- **2025-04-01** `e0e6f027f01b` — 1 breaking
  - the response property `subscription/priceId` became nullable for the status `200`

[Full history](https://skmtc.dev/flowglad/apis/flowglad-api/changes/api/v1/subscriptions/:id/get.md)

---

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