GET
/api/public/v1/billing/subscriptionRequires x-auth-token
Read a plan
The person's current plan, interval, dates, payment status and any scheduled change or cancellation.
- Identify the member with
x-auth-user(their pagename or your ownexternal_id) alongside your API key. pendingChange: a plan change you scheduled withat_period_end, with the date it takes effect; null when none.scheduledCancellation: a cancellation that takes effect at the end of the paid period; null when none.paidThrough: the paid-through date you reported, or null when Upward works out the dates.accessUntilis the last moment the plan gives access (null on the Free plan).paymentStatus: "failed" after you reported a failed payment (status is thenpast_due; access runs toaccessUntil), otherwise "ok".renewalAssumed: true while Upward is assuming the period renewed because nothing was reported.
Query parameters
This endpoint takes no parameters.
Responses
200OKCurrent plan state.
{
"success": true,
"subscription": {
"memberSlug": "johndoe",
"planKey": "starter",
"planName": "Starter",
"billingMode": "monthly",
"status": "active",
"startedAt": "2026-01-05T10:00:00.000Z",
"renewsAt": "2026-02-05T10:00:00.000Z",
"cancelAtPeriodEnd": false,
"pendingChange": { "planKey": "pro", "planName": "Pro", "billingMode": "monthly", "effectiveAt": "2026-02-05T10:00:00.000Z" },
"scheduledCancellation": null,
"renewalAssumed": false,
"reference": "INV-1042",
"paidThrough": "2026-02-05T10:00:00.000Z",
"paymentStatus": "ok",
"accessUntil": "2026-02-05T10:00:00.000Z"
}
}GET
/api/public/v1/billing/subscriptionKept in this tab only — never stored, and never written into the copied code samples.
ResponseNot sent yet