---
title: "Get Subscription"
method: GET
path: "/billing/subscription"
tags: ["billing"]
---

# Get Subscription

`GET /billing/subscription`

## Request

- Base URL: `https://api.getathly.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getathly.com/billing/subscription`
- Auth: HTTP bearer

This pair's subscription, or ``null``.

``null`` is a real answer rather than a 404: it is the state a
fully-cancelled athlete lands in, and the screen has something to say about
it.

## Query parameters

- `athlete_slug` string, required

## Response `200`

Successful Response

- SubscriptionResponse: ``null`` is a real answer, not a 404. A pair with no subscription is the roster's upsell state and the fully-cancelled athlete's landing place, so the screen renders it rather than erroring on it.
  - `subscription` SubscriptionRead: One mirror row, as the manage screen needs it. Deliberately absent: ``stripe_customer_id``. The screen never needs it, and handing a browser a Stripe customer handle invites a client that thinks it can talk to Stripe directly.
    - `athlete_slug` string, required
    - `status` string, required
    - `entitled` boolean, required
    - `cancel_at_period_end` boolean
    - `current_period_end` string, date-time, nullable
    - `paused_at` string, date-time, nullable
    - `banked_days` integer, nullable
    - `price_cents` integer, nullable
    - `currency` string, nullable
    - `billing_interval` string, nullable
    - `billing_interval_count` integer, nullable
    - `card_brand` string, nullable
    - `card_last4` string, nullable
  - `access_source` 'admin' | 'subscription', nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/getathly/apis/athly-api.md) - [All operations](https://skmtc.dev/getathly/apis/athly-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getathly/apis/athly-api/revisions/6adfdc258d75?raw)
