---
title: "This account's plan, renewal state, and whether Pro is on sale"
method: GET
path: "/api/billing"
tags: ["billing"]
---

# This account's plan, renewal state, and whether Pro is on sale

`GET /api/billing`

## Request

- Base URL: `https://app.nerdit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://app.nerdit.ai/api/billing`
- Auth: none declared

Answer from the projection, never from the provider.

Which is what makes this page and the relay agree by construction: they
are reading the same row, so a person is never shown an entitlement the
gateway would refuse a second later.

## Response `200`

Successful Response

- BillingView: The whole of what ``/billing`` renders, straight off the projection.
  - `plan` string, required
  - `status` string, required
  - `hosted_public_entitled` boolean, required
  - `current_period_end` string, date-time, nullable, required
  - `cancel_at_period_end` boolean, required
  - `trial_ends_at` string, date-time, nullable, required
  - `pro_trial_days` integer, required
  - `has_billing_account` boolean, required
  - `pro_available` boolean, required

## Other responses

- `401`: Unauthorized

---

[API](https://skmtc.dev/nerdit/apis/nerdit-cloud-web.md) · [All operations](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/llms.txt) · [OpenAPI document](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/revisions/06e3b44b58be?raw)
