The catalogue this org can move to
const url = 'https://api.sloose.com/orgs/org_9f3c/billing/plans';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.sloose.com/orgs/org_9f3c/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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The org id the session was issued for. A token for one org can never read another.
Example
org_9f3cThe org id the session was issued for. A token for one org can never read another.
Responses
Section titled “Responses”The catalogue, with the current plan called out.
object
object
object
Order, cheapest first.
How the plan is sold: charge_automatically, by card through Checkout, for every plan on sale (#1337).
object
CRM users allowed to use the widget; null = unlimited.
Connections the org may hold — a sandbox is a connection like any other; null = unlimited. A file is not one.
Import runs per period, each counted once at the first row it sends to be written, whether or not the CRM takes that row; null = unlimited (fair use). Dry runs never count, and neither does a free retry (Retry failed of a run with failed rows, at most three in a row).
Imports that may be running in the org at once, dry runs aside; null or absent = no limit. A run past it is refused at authorise with LIMIT_RUNS_CONCURRENT.
The most rows one import set may declare. Checked before anything is written.
Server-side runs only. Browser runs are never refused on it.
USD per 1,000 rows beyond rows_per_month, server-side runs only; null = not offered.
object
Whether Checkout can sell this plan at this interval here.
object
Example
{ "current": { "key": "free" }, "plans": [ { "key": "free" } ]}No bearer, or one that is expired, revoked or no longer resolves to a member.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}The bearer’s role is too low, or it was issued for a different org.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}