PrepaidAIDocsv1
StatusConsole
GET/api/v1/plan

Retrieve plan

The plan, its status and expiry, and the plan minutes left.

1 min read
GET
curl https://app.prepaid.ai/api/v1/plan \  -H "Authorization: Bearer $PREPAID_API_KEY"
Response · 200
{  "workspaceId": "3f6c1e70-9a4d-4a58-b6a2-2f0f0f9d1c11",  "plan": {    "code": "standard",    "name": "Standard",    "status": "active",    "expiresAt": "2026-11-20T00:00:00.000Z",    "daysLeft": 21,    "validityDays": 30,    "includedMinutesTotal": 350,    "includedMinutesLeft": 210,    "callsAtOnce": 5,    "numbersAllowed": 3  }}

The workspace’s plan. plan is null when it has never bought one.

planobject | nullalways present
null on a workspace with no plan, with a note saying so.
plan.codestringalways present
lite, standard or pro.
plan.namestringalways present
The plan’s name.
plan.statusstringalways present
active, grace or lapsed.
plan.expiresAtstringalways present
When the validity window ends.
plan.daysLeftintegeralways present
Whole days until expiresAt, never below 0.
plan.validityDaysintegeralways present
Length of the validity window.
plan.includedMinutesTotalintegeralways present
Plan minutes in this cycle.
plan.includedMinutesLeftintegeralways present
Plan minutes not yet used, rounded down.
plan.callsAtOnceintegeralways present
Simultaneous calls the plan allows.
plan.numbersAllowedintegeralways present
Phone numbers the plan allows.
Response — no plan yet
{  "workspaceId": "3f6c1e70-9a4d-4a58-b6a2-2f0f0f9d1c11",  "plan": null,  "note": "No plan yet. Building the AI and talking to it in the browser is free; a plan puts it on a phone number."}