Skip to main content
GET
JavaScript

Authorizations

Authorization
string
header
required

An Account API key, account-scoped JWT, App API key, or user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************.

Headers

Api-Version-Date
string

Pins the request to a dated API version.

Example:

"2026-08-05-1"

Path Parameters

id
string
required

Plan ID, prefixed plan_.

Response

plan retrieved

account
object | null
required

Account that sells this plan; null for standalone invoice plans.

adaptive_pricing_enabled
boolean
required

Whether adaptive pricing is enabled for this plan. Raw setting — does not check processor compatibility or feature flags.

billing_period
number | null
required

Number of days between recurring charges, such as 30 for monthly or 365 for annual. null for one-time plans.

cancel_discount_intervals
number | null
required

Billing intervals the cancellation discount applies to (0 forever, 1 first payment, or a month count). null when none is offered or the actor lacks the plan:basic:read scope.

cancel_discount_percentage
number | null
required

Cancellation discount as a whole-number percentage. null when none is offered or the actor lacks the plan:basic:read scope.

checkout_styling
object | null
required

Plan-level checkout styling (background_color, button_color, font_family, border_style); null inherits the account default.

collect_tax
boolean
required

Whether tax is collected on purchases of this plan, based on the account's tax configuration.

created_at
string
required

When the plan was created, as an ISO 8601 timestamp.

currency
enum<string>
required

Three-letter ISO currency code for this plan's prices.

Available options:
usd,
sgd,
inr,
aud,
brl,
cad,
dkk,
eur,
nok,
gbp,
sek,
chf,
hkd,
huf,
jpy,
mxn,
myr,
pln,
czk,
nzd,
aed,
eth,
ape,
cop,
ron,
thb,
bgn,
idr,
dop,
php,
try,
krw,
twd,
vnd,
pkr,
clp,
uyu,
ars,
zar,
dzd,
tnd,
mad,
kes,
kwd,
jod,
all,
xcd,
amd,
bsd,
bhd,
bob,
bam,
khr,
crc,
xof,
egp,
etb,
gmd,
ghs,
gtq,
gyd,
ils,
jmd,
mop,
mga,
mur,
mdl,
mnt,
nad,
ngn,
mkd,
omr,
pyg,
pen,
qar,
rwf,
sar,
rsd,
lkr,
tzs,
ttd,
uzs,
rub,
btc,
cny,
usdt,
kzt,
awg,
whop_usd,
xau
Example:

"usd"

custom_fields
object[]
required
deletable
boolean | null
required

Whether the plan can be deleted (it has no memberships or waitlist entries). null unless the actor has the plan:basic:read scope on the plan's account.

description
string | null
required

Customer-visible plan description. Maximum 1000 characters. null if no description is set.

expiration_days
number | null
required

Access duration in days for expiration-based plans, such as 365 for a one-year pass. null for plans without an expiration.

formatted_price
string
required

Human-readable price for display (currency + interval), e.g. "$10 / month".

id
string
required

Plan ID, prefixed plan_.

image
object | null
required

Pricing-tier image (url, blurhash) shown on the product page; null when no image is set.

initial_price
number
required

Initial purchase price in plan currency.

internal_notes
string | null
required

Private notes not shown to customers. null unless the actor has the plan:basic:read scope on the plan's account.

invoice
object | null
required

Invoice this plan was generated for; null unless created for an invoice.

member_count
number | null
required

Active memberships through this plan. null unless the actor has the plan:basic:read scope on the plan's account.

metadata
object | null
required

Custom key-value pairs stored on the plan. Included in webhook payloads for payment and membership events. Maximum 50 keys, 100 characters per key, 500 characters per value.

offer_cancel_discount
boolean | null
required

Whether a cancellation discount is offered. null unless the actor has the plan:basic:read scope on the plan's account.

payment_method_configuration
object | null
required

Payment method configuration (enabled, disabled, include_platform_defaults); null when plan uses default settings.

plan_type
enum<string>
required

Billing model for this plan.

Available options:
renewal,
one_time
Example:

"renewal"

product
object | null
required

Product this plan belongs to; null for standalone plans.

purchase_url
string
required

URL where customers can purchase this plan directly.

release_method
enum<string>
required

Sales method for this plan.

Available options:
buy_now,
waitlist
Example:

"buy_now"

renewal_price
number
required

Recurring price charged every billing period.

split_pay_required_payments
number | null
required

Installment payments required before the subscription pauses. Must be greater than 1. null if split pay is not configured.

stock
number | null
required

Units available for purchase. null unless the actor has the plan:basic:read scope on the plan's account.

strike_through_initial_price
number | null
required

Original initial price shown with a strikethrough, in the plan's currency. null when no strikethrough is set.

strike_through_renewal_price
number | null
required

Original renewal price shown with a strikethrough, in the plan's currency. null when no strikethrough is set.

tax_type
enum<string>
required

How tax is handled for this plan, including whether tax is included in the price, added at checkout, or not configured.

Available options:
inclusive,
exclusive,
unspecified
Example:

"inclusive"

three_ds_level
enum<string> | null
required

3D Secure behavior for this plan; null inherits the account default.

Available options:
mandate_challenge,
frictionless,
null
Example:

"mandate_challenge"

title
string | null
required

Plan display name shown to customers. Maximum 30 characters. null if no title has been set.

trial_period_days
number | null
required

Free trial days before the first renewal charge. null if no trial is configured or the user has already used a trial for this plan.

unlimited_stock
boolean
required

Whether the plan has unlimited stock. When true, the stock field is ignored; waitlist plans always report true.

updated_at
string
required

When the plan was last updated, as an ISO 8601 timestamp.

visibility
enum<string>
required

Controls where this plan can be seen. When hidden, the plan is reachable only by its direct link.

Available options:
visible,
hidden,
archived,
quick_link
Example:

"visible"