Skip to main content
GET
/
api
/
v2
/
external-billing
/
subscriptions
List Subscriptions
curl --request GET \
  --url https://api.voiceaiwrapper.app/api/v2/external-billing/subscriptions \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "id": "1",
      "client_id": "42",
      "client_name": "Acme Corp",
      "product_id": "7",
      "product_name": "Pro Plan",
      "status": "active",
      "current_period_start": "2025-01-01T00:00:00",
      "current_period_end": "2025-02-01T00:00:00",
      "created_at": "2025-01-01T00:00:00",
      "updated_at": "2025-01-15T10:00:00"
    }
  ],
  "meta": {
    "total": 1,
    "page": 1,
    "page_size": 20
  }
}
This endpoint requires a PRO plan or above. If your plan does not include the External Billing API, the request returns 403 with error code external_billing_api.

Combining filters

All query parameters are optional and can be used together or individually:
GET /api/v2/external-billing/subscriptions?client_id=<ID>&status=active
GET /api/v2/external-billing/subscriptions?status=past_due
GET /api/v2/external-billing/subscriptions?client_id=<ID>
ParameterOptionalNotes
client_idYesScope to a single client. Omit to return all clients.
statusYesFilter by subscription status.
pageYesDefaults to 1.
page_sizeYesDefaults to 20, max 100.

Subscription statuses

StatusMeaning
activeSubscription is running normally.
past_dueA payment request was not paid by its due date. Client portal and campaigns are blocked.
blockedGrace period expired without payment. Subscription must be canceled and restarted.
canceledSubscription was explicitly canceled. History is preserved.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

client_id
string

Filter subscriptions for a specific client. Accepts a plain integer ID or a base64 GraphQL global ID. Omit to return all clients under the tenant.

Example:

"Q2xpZW50OjEyMw=="

status
enum<string>

Filter by subscription status.

Available options:
active,
past_due,
blocked,
canceled
Example:

"active"

page
integer
default:1

Page number. Default: 1.

Example:

1

page_size
integer
default:20

Results per page. Default: 20. Maximum: 100.

Required range: x <= 100
Example:

20

Response

Subscriptions returned successfully.

data
object[]
meta
object