---
title: "List statement periods"
method: GET
path: "/api/space/billing_statements"
tags: ["Space Billing"]
---

# List statement periods

`GET /api/space/billing_statements`

Lists the months a statement is available for, newest first. Each entry carries the
path of that month's statement and the formats it can be downloaded in: a closed month
is available as JSON, CSV, and PDF; the current month as JSON and CSV only.

Statements are identified by calendar month rather than by an id. This list is not
paged.

#### 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.

## Response `200`

The request has succeeded.

- SpaceBillingStatementPeriodListResponse — The months a statement is available for, newest first. This list is not paged.
  - `data` SpaceBillingStatementPeriod[], required — The available months, newest first.
    - `type` 'billing_statement_period', required — The object type. Always `billing_statement_period`.
    - `month` string, required — The calendar month the statement covers, as `YYYY-MM`. Statements are identified by month, not by an id.
    - `uri` string, required — The path of the statement for this month.
    - `formats` SpaceBillingStatementFormat[], required — The formats the statement is available in: `json`, `csv`, and `pdf` for a closed month; `json` and `csv` for the current month.

## 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`.
- `500` — An internal server error occurred.

## 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_statements/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)
