---
title: "List recurring SMS charges"
description: "What your workspace pays for SMS every month: each number and 10DLC campaign, its monthly price, status, next charge and, for a past-due number, the date it is released. `GET /api/v1/sms/billing/resources`"
url: https://www.unitpost.com/docs/sms/get-sms-billing-resources
section: "SMS API reference"
updated: 2026-10-13
---
# List recurring SMS charges

`GET /api/v1/sms/billing/resources`

What your workspace pays for SMS every month: each number and 10DLC campaign, its monthly price, status, next charge and, for a past-due number, the date it is released. Buying a carrier resource is an SMS quote, then its confirm. Requires the `sms:read` capability.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `limit` | query | integer | no | Max rows to return (default 20, max 100). |
| `after` | query | string | no | Return rows after this id (forward paging). |
| `before` | query | string | no | Return rows before this id (backward paging). |

## Response fields (200)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | string | yes | — |
| `id` | string | yes | — |
| `label` | string | yes | What the charge is for (a local number, a 10DLC campaign, …). |
| `resource_type` | string | yes | — |
| `phone_number` | string \| null | yes | For a number, which one. |
| `country` | string \| null | yes | — |
| `monthly_price_cents` | integer | yes | — |
| `status` | string | yes | — |
| `billing_started_at` | string \| null | yes | — |
| `next_charge_at` | string \| null | yes | — |
| `grace_until` | string \| null | yes | A past-due number is released after this. |
| `billable_to_customer` | boolean | yes | — |
| `created_at` | string | yes | — |

## Responses

| Status | Description |
| --- | --- |
| 200 | Recurring charges. |
| 401 | Missing or invalid API key. |
| 403 | Insufficient scope. |
| 404 | Not found, or SMS is not enabled for this workspace. |
| 422 | A bad `limit`, `after` or `before`, or an unknown query key. |

## Example request

```bash
curl -X GET 'https://www.unitpost.com/api/v1/sms/billing/resources' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'User-Agent: my-app/1.0'
```

## Example response (200)

```json
{
  "object": "list",
  "has_more": false,
  "data": [
    {
      "object": "sms_billable_resource",
      "id": "id_123",
      "label": "string",
      "resource_type": "string",
      "phone_number": "string",
      "country": "string",
      "monthly_price_cents": 0,
      "status": "queued",
      "billing_started_at": "2026-01-01T00:00:00.000Z",
      "next_charge_at": "2026-01-01T00:00:00.000Z",
      "grace_until": "string",
      "billable_to_customer": false,
      "created_at": "2026-01-01T00:00:00.000Z"
    }
  ]
}
```

## Links

- HTML reference (with Node.js, Python, Ruby, PHP, Laravel, Go, Java, Rust, .NET and CLI examples): https://www.unitpost.com/docs/sms/get-sms-billing-resources
- OpenAPI 3.1 (full schemas): https://www.unitpost.com/api/v1/openapi.json
