---
title: "Get workspace billing"
method: GET
path: "/billing/{workspaceId}"
tags: ["Billing"]
---

# Get workspace billing

`GET /billing/{workspaceId}`

Get the billing state and entitlement for a workspace. When the instance has no billing configured this reports billingEnabled: false and an always-active entitlement.

## Path parameters

- `workspaceId` string, required

## Response `200`

Billing state for the workspace

- WorkspaceBilling
  - `billingEnabled` boolean, required — False when the instance has no billing configured.
  - `entitlement` BillingEntitlement, required
    - `active` boolean, required — Whether the workspace currently has paid-tier access.
    - `reason` 'billing_disabled' | 'founding_free' | 'subscription' | 'trial' | 'expired', required — Why access is granted or denied. `billing_disabled` means the instance is not running billing at all, so everything is unlocked.
  - `foundingFree` boolean, required
  - `trialEndsAt` string, date-time, nullable, required
  - `plan` string, nullable, required — `personal` or `team`.
  - `billingInterval` string, nullable, required — `monthly` or `annual`.
  - `status` string, nullable, required — The provider's subscription status.
  - `seats` number, required
  - `currentPeriodEnd` string, date-time, nullable, required
  - `canceledAt` string, date-time, nullable, required
  - `hasCustomer` boolean, required — Whether a billing customer exists yet. The portal link requires one.

## Other responses

- `401` — Missing or invalid credentials
- `403` — No access to the workspace

## Changes

- **2026-08-24** `08bbb5bedb5d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/billing/:workspaceId/get.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) · [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/usekaneo/kaneo-api/revisions/08bbb5bedb5d/schema)
