Skip to content

The catalogue this org can move to

GET
/billing/plans
curl --request GET \
--url https://api.sloose.com/billing/plans \
--header 'Authorization: Bearer <token>'

Every active plan version, cheapest first, with the plan the org is on now.

intervals says which billing periods Checkout can actually sell on this deployment — a plan is purchasable only once its Stripe prices are attached, and Free is never purchasable. A client should offer only what is true here rather than assuming every plan can be bought.

The catalogue, with the current plan called out.

Media typeapplication/json
object
current
required
object
id
required
string
key
required
string | null
Allowed values: free team business enterprise
rank
required
number
plans
required
Array<object>
object
id
required
string
key
required
string | null
Allowed values: free team business enterprise
name
required
string
rank
required

Order, cheapest first.

number
version
required
number
priceMonthlyCents
required
number | null
priceAnnualCents
required
number | null
currency
required
string
collectionMethod
required

send_invoice for a plan billed by invoice rather than card.

string | null
limits
required
object
crm_users_max
required

CRM users allowed to use the widget; null = unlimited.

number | null
connectors_max
required

Production connectors the org may have; null = unlimited. CSV uploads do not count.

number | null
runs_per_month
required

Import runs that write at least one row, per period; null = unlimited (fair use). Dry runs never count.

number | null
rows_per_run
required

The most rows one import set may declare. Checked before anything is written.

number
rows_per_month
required

Server-side runs only. Browser runs are never refused on it.

number
row_overage_per_1000
required

USD per 1,000 rows beyond rows_per_month, server-side runs only; null = not offered.

number | null
modules_max
required

Null = unlimited.

number | null
schedules_max
required
number
history_days
required
number
ai_credits_monthly
required
number
sandbox_orgs
required
number
features
required
object
shared_projects
required
boolean
helper_libraries
required
boolean
server_run
required
boolean
mcp
required
boolean
rollback
required
boolean
scheduled_imports
required
boolean
intervals
required

Whether Checkout can sell this plan at this interval here.

object
month
required
boolean
year
required
boolean
Example
{
"current": {
"key": "free"
},
"plans": [
{
"key": "free"
}
]
}

No bearer, or one that is expired, revoked or no longer resolves to a member.

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}

The bearer’s role is too low, or it was issued for a different org.

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}