Start the trial
const url = 'https://api.sloose.com/billing/trial';const options = {method: 'POST', 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 POST \ --url https://api.sloose.com/billing/trial \ --header 'Authorization: Bearer <token>'Starts the Business trial if the org is eligible. Eligibility is once per org and once per billing account, so a second org on the same account cannot start a second trial. Answers 200 with started: false when it was not eligible — not an error, just an answer.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Not eligible. entitlements is unchanged.
object
Everything the widget needs to know about what this org may do.
object
The org whose subscription governs this one.
The org whose ledger holds the AI credits this one spends.
object
object
object
CRM users allowed to use the widget; null = unlimited.
Production connectors the org may have; null = unlimited. CSV uploads do not count.
Import runs that write at least one row, per period; null = unlimited (fair use). Dry runs never count.
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.
Null = unlimited.
object
object
object
AI credits. Included credits reset each period; purchased ones do not.
object
Included + purchased − reserved
Applies right now regardless of the action.
Example
{ "started": false, "entitlements": { "kind": "production", "plan": { "key": "free" }, "status": "free", "warnings": [ "LIMIT_ROWS" ] }}Trial started.
object
Everything the widget needs to know about what this org may do.
object
The org whose subscription governs this one.
The org whose ledger holds the AI credits this one spends.
object
object
object
CRM users allowed to use the widget; null = unlimited.
Production connectors the org may have; null = unlimited. CSV uploads do not count.
Import runs that write at least one row, per period; null = unlimited (fair use). Dry runs never count.
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.
Null = unlimited.
object
object
object
AI credits. Included credits reset each period; purchased ones do not.
object
Included + purchased − reserved
Applies right now regardless of the action.
Example
{ "started": true, "entitlements": { "kind": "production", "plan": { "key": "free" }, "status": "free", "warnings": [ "LIMIT_ROWS" ] }}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"}This org is a sandbox. Billing is managed on its production org.
object
Example
{ "code": "SANDBOX_ORG"}