Attach this org as a sandbox
const url = 'https://api.sloose.com/billing/sandbox/attach';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"code":"example"}'};
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/sandbox/attach \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "code": "example" }'Redeems a link code, moving this org onto the production org’s billing account. Only an org that pays nothing of its own — Free or trialing — can become a sandbox; one with a live subscription keeps it.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Examplegenerated
{ "code": "example"}Responses
Section titled “Responses”Attached. The entitlements are the production org’s.
object
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
{ "ok": true, "entitlements": { "kind": "production", "plan": { "key": "free" }, "status": "free", "warnings": [ "LIMIT_ROWS" ] }}code is missing or blank.
object
Examplegenerated
{ "error": "example"}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 production org’s sandbox allowance is already used up.
object
Example
{ "code": "LIMIT_SANDBOX"}The code is unknown, already used, or expired.
object
Example
{ "code": "LINK_INVALID"}Already a sandbox, has a subscription of its own, or already belongs to that billing account.
object
Example
{ "code": "SANDBOX_ORG"}