---
title: "List candidate paywall subscriptions"
method: GET
path: "/paywall/subscriptions"
tags: ["Paywall"]
---

# List candidate paywall subscriptions

`GET /paywall/subscriptions`

## Request

- Base URL: `https://api.cavuno.com/v1`
- URL: `https://api.cavuno.com/v1/paywall/subscriptions`
- Auth: HTTP bearer

Read-only list of candidate access subscriptions (grants) for the Board. Filter by product status and kind (`recurring` | `lifetime`). Requires `billing.read`. Never exposes Stripe customer, subscription, or checkout identifiers. There is no cancel endpoint — the ordinary UI does not provide one.

## Query parameters

- `cursor` string
- `limit` integer
- `status` 'pending' | 'active' | 'trialing' | 'expired' | 'past_due' | 'unpaid' | 'incomplete' | 'incomplete_expired' | 'canceled'
- `kind` 'recurring' | 'lifetime'

## Response `200`

Paginated candidate paywall subscriptions.

- object
  - `object` 'list', required
  - `url` string, required
  - `hasMore` boolean, required
  - `nextCursor` string, nullable, required
  - `data` CandidatePaywallSubscription[], required
    - `id` string, required: Cavuno candidate access grant ID.
    - `object` 'candidate_paywall_subscription', required
    - `candidateId` string, required: Board user / Candidate Cavuno ID (boardUsers id).
    - `email` string, required
    - `displayName` string, required
    - `kind` 'recurring' | 'lifetime', required
    - `offerKey` 'daily' | 'weekly' | 'monthly' | 'quarterly' | 'yearly' | 'lifetime', required: One of: daily, weekly, monthly, quarterly, yearly, lifetime.
    - `status` 'pending' | 'active' | 'trialing' | 'expired' | 'past_due' | 'unpaid' | 'incomplete' | 'incomplete_expired' | 'canceled', required
    - `amountCents` integer, required
    - `currency` string, required: ISO 4217 currency code, lowercase (e.g. usd).
    - `currentPeriodStart` string, date-time, nullable, required: ISO-8601 or null.
    - `currentPeriodEnd` string, date-time, nullable, required: ISO-8601 or null.
    - `cancelAtPeriodEnd` boolean, required
    - `activatedAt` string, date-time, nullable, required: ISO-8601 or null.
    - `canceledAt` string, date-time, nullable, required: ISO-8601 or null.
    - `createdAt` string, date-time, required: ISO-8601 creation time.

## Other responses

- `default`: An error. Every non-2xx response uses the same envelope; see the Errors section of the introduction.

## Changes

- **2026-10-19** `c34152c38176`: 1 info
  - added the optional property `error/upgrade` to the response with the `default` status

[Operation history](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/changes/paywall/subscriptions/get.md)

---

[API](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api.md) · [All operations](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/revisions/d5974dabff14?raw)
