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

# API versions

> Pin your requests to a dated API version so changes to the API never break your integration.

The Experimental API is versioned with dates. Pin a version when you want a stable API contract; official SDKs send the version they were generated against automatically.

```bash theme={null}
curl https://api.whop.com/api/v1/plans \
  -H "Authorization: Bearer $WHOP_API_KEY" \
  -H "Api-Version-Date: 2026-06-09"
```

| You send                       | You get                                   |
| ------------------------------ | ----------------------------------------- |
| `Api-Version-Date: 2026-06-09` | The API as it worked on that date         |
| No header                      | The original `2025-01-01` behavior        |
| An unknown date                | A `400` error with the supported versions |

<Note>
  **If you don't pass an `Api-Version-Date`, the stable API model is used.** Requests without the header are served by the pre-versioning behavior, so existing integrations keep working unchanged. Pin a dated version to opt into the latest API.
</Note>

New endpoints and new optional fields are added to every version automatically. Breaking changes create a new dated version and are listed below.

## Changelog

<Update label="2026-07-01" description="Business referral earnings resources" tags={["Latest"]}>
  Business referral earnings now identify the polymorphic resource that generated the earning.

  * `receipt` is replaced by `resource`.
  * `access_pass` is replaced by `product`.
  * Receipt-backed earnings return `resource.object: "receipt"` with receipt payment details.
  * The `resource` field can support additional earning resources in future versions without reusing receipt-specific fields.
  * Older pinned versions continue to return `receipt` and `access_pass`.
</Update>

<Update label="2026-06-20" description="Business referrals resource">
  Business referral volume and earnings are now reported as reconciling groups.

  * `processing_volume`, `total_earnings`, `pending_payout`, and `completed_payout` are replaced by nested `volume_usd` and `earnings_usd` objects.
  * Earnings rename `base_amount`/`amount` to `transaction_amount_usd`/`commission_amount_usd` and express `payout_percentage` as a fraction.
  * Older pinned versions continue to return the previous flat shape.
</Update>

<Update label="2026-06-09" description="Plans resource">
  Plans now use the Account model consistently.

  * Request parameters and request bodies use `account_id` instead of `company_id`.
  * Plan responses return `account` instead of `company`.
  * Older pinned versions continue to accept `company_id` and return `company`.
</Update>

<Update label="2026-06-08" description="Users resource">
  User access requests now use the Account model consistently.

  * Request parameters and request bodies use `account_id` instead of `company_id`.
  * Response shapes are unchanged.
  * Older pinned versions continue to accept `company_id`.
</Update>

<Update label="2025-01-01" description="Original version">
  The original Experimental API behavior before dated versioning existed.

  Requests without `Api-Version-Date` use this version so existing integrations keep working.
</Update>
