> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.resemble.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.resemble.ai/_mcp/server.

# Billing API

Use the Billing API to discover plans, inspect a team's subscription, manage adjustable product quantities, change plans, and inspect wallet activity.

## Base URL

```text
https://app.resemble.ai/billing/api/v1
```

The Billing API has its own base URL. Do not prefix its routes with the main API's `/api/v2` path.

## Authentication and access

The plan list and plan detail endpoints are public. Every team-specific endpoint requires a standard Resemble API key:

```bash
export RESEMBLE_API_KEY="your_api_key"

curl 'https://app.resemble.ai/billing/api/v1/subscription' \
  -H "Authorization: Bearer $RESEMBLE_API_KEY"
```

For protected requests:

* The API key must belong to an administrator of the current team.
* Customers on custom billing arrangements may not have access to team-specific Billing API endpoints.

Billing API keys are secrets intended for server-to-server integrations. Never put an API key in frontend JavaScript, a mobile app, or another environment where customers can extract it.

## Resources

| Resource     | What you can do                                                                    |
| ------------ | ---------------------------------------------------------------------------------- |
| Plans        | Discover active self-serve plans, products, prices, and quantity rules.            |
| Subscription | Inspect subscription items, adjust supported product quantities, and change plans. |
| Wallet       | Read balances and transactions, export CSV, and configure auto-reload.             |

## Money and quantities

Monetary fields ending in `_cents` are expressed in the smallest US-dollar unit. For example, `5000` cents is `$50.00`. Some responses also include a corresponding `_dollars` field for display.

Product quantities are absolute totals. For example, sending `new_quantity: 5` sets the product's subscription quantity to five; it does not add five to the existing quantity.

## Common responses

| Status                     | Meaning                                                                                                                                                                 |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400 Bad Request`          | The request could not be parsed or a required parameter is malformed.                                                                                                   |
| `401 Unauthorized`         | The Bearer token is missing or invalid.                                                                                                                                 |
| `402 Payment Required`     | The customer must complete additional payment authentication.                                                                                                           |
| `403 Forbidden`            | The key owner is not a team administrator, the Billing API is unavailable for the customer's billing arrangement, or the operation is unavailable for the subscription. |
| `404 Not Found`            | The plan or team-owned billing resource was not found.                                                                                                                  |
| `422 Unprocessable Entity` | The request violates a billing or quantity rule.                                                                                                                        |

Customers on custom billing arrangements may receive:

```json
{
  "error": "Billing API is not available for this team.",
  "error_code": "billing_api_not_available"
}
```

An invalid explicit Bearer token is authoritative: the API returns `401 Unauthorized` rather than falling back to a browser session.

## Next steps

* [Manage subscriptions and product quantities](/platform-management/billing/subscriptions)
* [Manage the wallet and auto-reload](/platform-management/billing/wallet)
* [Browse Billing Plans API reference](/api-reference/billing-plans/list-billing-plans)