> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clipping.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Paid collections

> Charge for access to a collection and let fans subscribe.

A collection can be **paid**: the owner (creator) sets a price, and fans pay to
unlock the gated content. The payment goes to the creator's earnings, minus the
platform fee.

## Set a price (creator)

The collection must be **public**, then set `price_coins` and a `billing_period`:

```bash theme={null}
curl -X PATCH https://api.clipping.cc/v1/collections/col_123 \
  -H "Authorization: Bearer ck_live_…" -H "Content-Type: application/json" \
  -d '{ "visibility": "public", "price_coins": 20, "billing_period": "monthly" }'
```

| `billing_period` | Access                              |
| ---------------- | ----------------------------------- |
| `once`           | lifetime — pay once, keep access    |
| `monthly`        | renews every 30 days (auto-charged) |

`price_coins: 0` makes it free again (a public collection behaves normally, gated
only by the `expose_*` flags from [Collections](/en/guides/collections)).

## Subscribe (fan)

A fan subscribes — this **charges the price immediately** and grants access:

```bash theme={null}
curl -X POST https://api.clipping.cc/v1/collections/col_123/subscribe \
  -H "Authorization: Bearer ck_live_…"
```

```json theme={null}
{ "subscription": { "subscription_id": "sub_…", "status": "active",
                    "billing_period": "monthly", "price_coins": 20,
                    "expires_at": 1719500000 } }
```

Possible errors:

| Status | When                                                     |
| ------ | -------------------------------------------------------- |
| `400`  | collection isn't paid, isn't public, or you're the owner |
| `402`  | insufficient balance to pay the price                    |
| `409`  | you're already subscribed                                |

## See your subscriptions

```bash theme={null}
curl https://api.clipping.cc/v1/collections/subscriptions \
  -H "Authorization: Bearer ck_live_…"
```

For a `once` subscription `expires_at` is null (lifetime); for `monthly` it's the
renewal date. Access to gated content is: **owner, or free collection, or an
active subscription.**
