---
title: "List billing activity"
method: GET
path: "/api/v1/billing/activity"
tags: ["billing"]
---

# List billing activity

`GET /api/v1/billing/activity`

The unified billing activity ledger — usage (calls, SMS, number ownership), wallet credits, and subscription payments — merged newest-first and cursor-paginated. Each item has a `type` that selects which fields are present. Pagination is Stripe-style: pass `limit` (max page size) and `starting_after` set to the `occurredAt` of the last item you received to fetch the next page (only items strictly older are returned). `hasMore` indicates whether further pages exist.

## Query parameters

- `filter` 'all' | 'usage' | 'payment-credits'
- `limit` integer
- `starting_after` string, date-time

## Headers

- `Authorization` string, required

## Response `200`

One page of activity, newest-first.

- BillingListBillingActivityResponse200
  - `data` ApiV1BillingActivityGetResponsesContentApplicationJsonSchemaDataItems[]
    - `type` 'usage' | 'credit' | 'payment'
    - `occurredAt` string, date-time
    - `balanceAfterCents` integer — Credit-wallet balance in USD cents immediately after this row — a running balance; the newest item equals the current wallet balance. Rows that don't move the wallet carry the balance as of their moment.
    - `amountCents` integer — Credits/payments: amount; usage: see totalCents.
    - `totalCents` integer — Usage rows only — billed amount in USD cents.
    - `fareName` string
    - `number` string, nullable
    - `billedQuantity` integer
    - `attribution` 'wallet' | 'entitlement'
    - `phoneNumberId` string
    - `callId` string, nullable
    - `messageId` string, nullable
    - `kind` 'card' | 'welcome' | 'manual' — Credit rows only.
    - `invoiceId` string, nullable — Stripe invoice id (credit/payment rows); pass to Download an invoice.
    - `reason` string — Payment rows only — Stripe billing reason.
  - `hasMore` boolean — True when more items exist older than the last one returned.

## Other responses

- `400` — Invalid `limit` or `starting_after`.
- `401` — Missing or invalid API key.

---

[API](https://skmtc.net/getdial/apis/rest-api.md) · [All operations](https://skmtc.net/getdial/apis/rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getdial/rest-api/revisions/5f4eb30ac29a/schema)
