---
title: "Retrieve a statement"
method: GET
path: "/api/space/billing_statement"
tags: ["Space Billing"]
---

# Retrieve a statement

`GET /api/space/billing_statement`

Returns one month's statement as JSON: the totals for the month, company-wide usage by
kind, and usage per project. Filter the breakdown with `kind` and `project`.
`/api/space/billing_statement.json` returns the same response. For the
same statement as a file, use
[Download a statement as CSV](/docs/apis/rest/space/billing/get-billing-statement-csv)
or [Download a statement as PDF](/docs/apis/rest/space/billing/get-billing-statement-pdf).

The statement is computed on request from the usage reporting pipeline, so the
response is `502` when that pipeline is unavailable.

#### Permissions

Authenticate with a [Personal access token](/docs/apis/authorization#personal-access-tokens) whose holder is an owner or admin of the space. A project API token is not accepted on this endpoint, and a Personal access token has no scopes: the holder's role in the space is the whole authorization decision.

## Query parameters

- `month` string, required
- `kind` string[]
- `project` Uuid[]

## Response `200`

The request has succeeded.

- SpaceBillingStatement — One month's statement: the totals, company-wide usage by kind, and usage per project. Statements are computed on request from the usage reporting pipeline.
  - `type` 'billing_statement', required — The object type. Always `billing_statement`.
  - `month` string, required — The calendar month the statement covers, as `YYYY-MM`.
  - `summary` SpaceBillingStatementSummary, required — The totals for the month.
    - `usage_in_microdollars` integer, required — Usage charges in microdollars.
    - `usage_in_dollars` number, double, required — Usage charges in US dollars.
    - `carrier_fees_in_microdollars` integer, required — Carrier fees in microdollars.
    - `carrier_fees_in_dollars` number, double, required — Carrier fees in US dollars.
    - `taxes_in_microdollars` integer, required — Taxes in microdollars.
    - `taxes_in_dollars` number, double, required — Taxes in US dollars.
    - `adjustments` SpaceAmountByKind[], required — The balance adjustments recorded in the month, one entry per adjustment kind.
      - `kind` string, required — A stable code for the kind of usage or adjustment.
      - `description` string, required — A description of the kind.
      - `amount_in_microdollars` integer, required — The amount in microdollars.
      - `amount_in_dollars` number, double, required — The same amount in US dollars.
  - `usage_by_kind` SpaceAmountByKind[], required — Company-wide usage broken down by kind.
    - `kind` string, required — A stable code for the kind of usage or adjustment.
    - `description` string, required — A description of the kind.
    - `amount_in_microdollars` integer, required — The amount in microdollars.
    - `amount_in_dollars` number, double, required — The same amount in US dollars.
  - `projects` SpaceProjectUsage[], required — Usage per project, each with its own breakdown by kind.
    - `id` string, uuid, required — Universal Unique Identifier.
    - `name` string, nullable, required — The name of the project. Can be `null`.
    - `amount_in_microdollars` integer, required — The project's total in microdollars.
    - `amount_in_dollars` number, double, required — The same total in US dollars.
    - `usage_by_kind` SpaceAmountByKind[], required — The project's usage broken down by kind.
      - `kind` string, required — A stable code for the kind of usage or adjustment.
      - `description` string, required — A description of the kind.
      - `amount_in_microdollars` integer, required — The amount in microdollars.
      - `amount_in_dollars` number, double, required — The same amount in US dollars.

## Other responses

- `401` — The credential is missing, unknown, or revoked; its holder is not a member of the space in the subdomain; the member is not an owner or admin; or billing for this space is not managed in the space itself, which is the case for a space purchased through a cloud marketplace and for a suspended or deactivated space. A space deactivated for nonpayment keeps the billing endpoints so that its outstanding balance can be settled. The body is the plain text `Unauthorized`. An unverified space instead receives the JSON body `{"message": "Please validate a phone number to access your account."}` on every endpoint under `/api/space`.
- `422` — `month` is not formatted `YYYY-MM` (`invalid_month`), is before the month the space was created (`month_precedes_space_creation`), or is after the current month (`month_is_in_the_future`).
- `500` — An internal server error occurred.
- `502` — An upstream billing or usage reporting service was unavailable. The body is empty; retry later.

## Changes

> 161 revisions in range; 3 could not be searched.

- **2026-09-15** `45bac4fd93ab` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/signalwire/apis/signalwire-rest-api/changes/api/space/billing_statement/get.md)

---

[API](https://skmtc.dev/signalwire/apis/signalwire-rest-api.md) · [All operations](https://skmtc.dev/signalwire/apis/signalwire-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/signalwire/apis/signalwire-rest-api/revisions/20ee0f568ece?raw)
