---
title: "List a creator's checkout-link subscriptions"
method: GET
path: "/creators/{creatorUserUuid}/checkout-links/subscriptions"
---

# List a creator's checkout-link subscriptions

`GET /creators/{creatorUserUuid}/checkout-links/subscriptions`

List the specified creator's checkout-link product subscriptions, most recent first, with cursor-based pagination. Defaults to `status=active` (renewing); pass `status=cancelled` for active subscriptions scheduled to cancel at the period end (`cancelAtPeriodEnd=true` — their resource `status` stays `active` until they expire), `status=expired` for ended ones, or `status=all`. Filter by `checkoutLinkUuid` or `fanUuid` to narrow the list.

<Info>
  **Polling for real-time updates? Use a webhook instead.**

  If you are calling this endpoint on a schedule to detect new activity, subscribe to the `checkout_link.subscription.activated`, `checkout_link.subscription.deactivated`, `checkout_link.subscription.cancel_at_period_end_changed` webhook events instead — you'll get pushed updates in real time without polling. See the [webhook documentation](https://api.fanvue.com/docs/checkout/subscriptions).
</Info>

## Path parameters

- `creatorUserUuid` string, uuid, required

## Query parameters

- `limit` integer — Number of results to return (default 20, max 100).
- `cursor` string — Cursor for pagination, as returned in a previous page's `nextCursor`.
- `status` 'active' | 'cancelled' | 'expired' | 'all' — Filter (default `active`). `active` returns renewing subscriptions; `cancelled` returns active subscriptions scheduled to cancel at the period end (`cancelAtPeriodEnd=true` — their resource `status` is still `active`); `expired` returns ended subscriptions.
- `checkoutLinkUuid` string, uuid — Filter to subscriptions purchased through this checkout link.
- `fanUuid` string, uuid — Filter to subscriptions held by this fan.

## Headers

- `X-Fanvue-API-Version` string, required

## Response `200`

List of checkout-link subscriptions

- object
  - `data` object[], required
    - `uuid` string, required — Fanvue's unique subscription identifier.
    - `status` 'active' | 'expired', required — Access state of the subscription, matching the `checkout_link.subscription.*` webhooks: `active` means the fan currently has access (including subscriptions scheduled to cancel at the period end — check `cancelAtPeriodEnd`), `expired` means access has ended. Revoke access only on `expired`.
    - `cancelAtPeriodEnd` boolean, required — True when the subscription is set to end (not renew) at `expiresAt`.
    - `cancelledBy` 'fan' | 'creator' | 'admin', nullable, required — Who initiated a pending cancellation: the subscriber themselves (`fan`), the creator (dashboard or this API), or Fanvue support (`admin`). Null when the subscription is not cancelled, or for older cancellations made before the actor was recorded. Only `creator` cancellations can be reversed via the uncancel endpoint.
    - `expiresAt` string, date-time, required — End of the current paid period: the next renewal date, or when access ends.
    - `createdAt` string, date-time, required — When the subscription started.
    - `clientReferenceId` string, nullable, required — The merchant-supplied reference passed at checkout via `?client_reference_id=`, inherited from the initial payment.
    - `checkoutLink` object, nullable, required — The checkout link the subscription was purchased through, if known.
      - `uuid` string, required — UUID of the checkout link the fan converted on.
      - `name` string, required — Name of the checkout link / offer.
    - `purchaser` object, required
      - `uuid` string, required — UUID of the subscribing Fanvue user.
      - `email` string, nullable, required — Email of the subscribing Fanvue user.
    - `price` object, nullable, required — The recurring price the subscription renews at.
      - `amount` number, required — Recurring price, in minor units.
      - `currency` string, required — ISO currency code of the amount.
      - `cycleLength` number, nullable, required — Length of the billing cycle, in `cycleUnit`s.
      - `cycleUnit` 'day' | 'week' | 'month' | 'year', nullable, required — Unit of the billing cycle, matching the checkout-link price schema.
    - `metadata` object, required — Arbitrary merchant metadata passed at checkout via `?metadata[key]=value`, inherited from the initial payment.
  - `nextCursor` string, nullable, required — Cursor for the next page, or null if none.

## Other responses

- `400` — Bad Request - API version not supported OR validation failed OR invalid UUID
- `401` — Unauthorized Response
- `403` — Unauthorized Response
- `410` — API version no longer supported (sunset)
- `429` — Too many requests - rate limit exceeded

## Changes

- **2026-09-10** `4d08f36ad6c8` — 1 info
  - removed the pattern `^\d+$` from the `query` request parameter `cursor`
- **2026-08-30** `dce5621fe589` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/fanvue/apis/fanvue-api/changes/creators/:creatorUserUuid/checkout-links/subscriptions/get.md)

---

[API](https://skmtc.dev/fanvue/apis/fanvue-api.md) · [All operations](https://skmtc.dev/fanvue/apis/fanvue-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fanvue/apis/fanvue-api/revisions/431868e8a264?raw)
