---
title: "List invoices"
method: GET
path: "/billing/invoices"
tags: ["billing"]
---

# List invoices

`GET /billing/invoices`

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

Successful response.

- InvoiceList — A page of invoice items.
  - `data` InvoiceSummary[], required
    - `cost` integer, required
    - `createdAt` string, date-time, required
    - `credits` integer, required
    - `currency` string, required
    - `id` string, required
    - `method` string, required
    - `receiptURL` string, nullable — Receipt/invoice download URL from the payment provider. Persisted at webhook time when available, otherwise fetched lazily on first access.
    - `remainingCredits` integer, required
    - `state` 'cancelled' | 'pending' | 'paid', required
    - `type` 'credit_purchase' | 'usage_summary' | 'credit_grant' | 'subscription_charge' | 'trial_charge' | 'auto_reload', required
  - `page` Page, required — Cursor-pagination metadata.
    - `hasMore` boolean, required — Whether another page is available.
    - `nextCursor` string, nullable, required — Cursor for the next page, or null on the last page.

## Other responses

- `401` — Missing or invalid access token.
- `403` — The token lacks the required scope or access to the resource.
- `404` — The resource does not exist or is not visible to the caller.
- `422` — The request body or parameters are invalid.
- `429` — Rate limit exceeded. Retry after the indicated delay.
- `502` — The upstream data service returned an error.

---

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