The org's credit balance and the credit it was granted
Billing (billing_enabled) is on for a new org from the start of
its trial, at signup or once its signup is approved; an existing org has it off
until an operator switches it on (polsd admin set-billing).
While it is off, usage is metered and shown but not charged, nothing is
refused or stopped for lack of credit, and the org’s monthly
sandbox-hours quota (monthly_sandbox_hours on /v1/org) caps
its usage instead. Once it is on, the org pays
its usage from credit: each hour’s priced usage (/v1/usage) is taken from its
credit once the hour is over, from the credit that expires first,
prepaid credit last. available_eur is that credit, less any debt
and the usage not yet taken from it, so it falls while sandboxes
run. At zero, running sandboxes are stopped (their disks are kept)
and none can start (402 insufficient_credit) until it is positive
again; disk above the free allowance keeps costing, and what the
credit cannot pay becomes debt, taken first from the next credit.
/v1/balanceAuthorizationBearer token · headerrequiredOrg-scoped API key, pols_....
The balance.
billing_enabledbooleanrequiredWhether billing is switched on for the org. Only then is usage taken from the credit, are starts refused without credit, are running sandboxes stopped at zero and do the trial limits apply; until then the monthly sandbox-hours quota applies instead.
trialbooleanrequiredThe org has never been granted subscription or prepaid credit.
While billing is on, a trial org runs one small or default
sandbox at a time with 20 GiB of disk, and all trial orgs
together reserve at most 8 GiB of host memory, overcommitted
like the hosts' (12 GiB at the default --memory-overcommit of
1.5; trial_credit.limits.total_memory_gib is the configured
value).
available_eurstringrequiredcredit_eur less debt_eur and unsettled_eur, except that
credit that expired since settled_to still pays for the
unsettled usage of the hours before it expired; VAT included,
decimal string with 4 places, negative when in debt. While
billing is on, the org's sandboxes can start only while it is
positive.
credit_eurstringrequiredWhat the lots that have not expired hold. While billing is off no lot expires; a lot whose expiry date has passed is forfeited when billing is switched back on, unless it is an untouched trial, which restarts.
debt_eurstringrequiredUsage no credit could pay for, taken first from the next credit.
unsettled_eurstringrequiredUsage since settled_to, not yet taken from the credit; 0 while billing is off.
settled_tostring<date-time> | nullrequiredThe hour up to which usage was taken from the credit; null while billing is off.
lotsCreditLot[]requiredEvery lot the org was granted, oldest first.
Show propertiesHide properties
CreditLotidstringrequiredkindstringrequiredtrialsubscriptionprepaidamount_eurstringrequiredGranted, VAT included; decimal string with 4 places.
remaining_eurstringrequiredWhat is left of it; 0 once it expired.
granted_atstring<date-time>requiredexpires_atstring<date-time> | nullrequiredWhen what is left of it is forfeited, if billing is on by then; null for never.
trial_creditTrialCredit | nullrequiredThe org's trial credit and what became of it; null if it was never granted one.
Show propertiesHide properties
stateTrialStaterequirednot_started: billing is off for the org and nothing was taken
from the trial credit; the trial starts once billing is switched
on. active: usage is taken from it. used_up: usage took all of
it. expired: what was left of it was forfeited.
not_startedactiveused_upexpiredlot_idstringrequiredamount_eurstringrequiredGranted, VAT included; decimal string with 4 places.
used_eurstringrequiredWhat usage took from it, the usage not yet taken from the credit (unsettled_eur) included.
remaining_eurstringrequiredWhat is left to use; 0 once it is used up or expired.
forfeited_eurstringrequiredWhat was left of it when it expired; 0 otherwise.
granted_atstring<date-time>requiredexpires_atstring<date-time> | nullrequiredWhen what is left of it is forfeited; null while the trial has not started, or if it never expires.
days_leftinteger | nullrequiredDays until it expires, rounded up; null unless the trial is active, expires and billing is on.
limitsTrialLimits | nullrequiredThe trial limits, which apply to the org while billing is on; null once it was granted subscription or prepaid credit, which ends them.
Show propertiesHide properties
max_runningintegerrequiredSandboxes the org may run at a time.
sizesSize[]requiredThe sizes its sandboxes may have.
disk_gibinteger<int64>requiredThe disk the org may hold; its running sandboxes stop above it.
total_memory_gibintegerrequiredThe RAM all trial orgs' sandboxes together may reserve at once
(429 trial_capacity beyond it), as configured: 8 GiB of host
memory, overcommitted like the hosts' (12 GiB at the default
--memory-overcommit of 1.5).
nullnullRate limited (rate_limited): too many requests or failed
authentications from this address, too many requests or
lifecycle calls for this org, or too many of its exec, file,
computer and CDP calls in progress at once. Retry after
Retry-After seconds.
errorobjectrequiredShow propertiesHide properties
codestringrequiredStable machine-readable code: bad_request (400),
unauthorized (401), insufficient_credit (402, no
credit left to start a sandbox), forbidden (403),
quota_exceeded (403), trial_limit (403, beyond what a
trial org may run), not_found (404), conflict (409),
billing_details_required (409, save the billing details
before topping up), topup_not_available (409, the org
cannot top up as it would be taxed; the message says why),
desktop_controlled (409, a person viewing the desktop has
taken control of it, see control), rate_limited (429,
see Retry-After), trial_capacity
(429, all trial capacity in use; retry after
Retry-After), host_capacity (429, the host is short of
memory right now, so nothing new starts there; retry after
Retry-After), internal (500),
runtime_error (502, the sandbox host failed),
payment_provider_error (502, Mollie could not be
reached or refused a payment),
unavailable (503, the feature is not configured on this
deployment), waking (503, the sandbox is still waking
from standby or booting; retry), timeout (504, or 408 when a request
body stalls).
messagestringrequiredcontrolDesktopControlWho has control of a sandbox's desktop. In an error, it is present
only with code desktop_controlled.
Show propertiesHide properties
heldbooleanrequiredSomeone viewing the desktop has taken control of it.
holderstringOnly when held; their name as the desktop's viewers see it, their user's name or else their API key's.
sincestring<date-time>Only when held; when they took control.
expires_atstring<date-time>Only when held; when control lapses unless they use the desktop before.
Error.
errorobjectrequiredShow propertiesHide properties
codestringrequiredStable machine-readable code: bad_request (400),
unauthorized (401), insufficient_credit (402, no
credit left to start a sandbox), forbidden (403),
quota_exceeded (403), trial_limit (403, beyond what a
trial org may run), not_found (404), conflict (409),
billing_details_required (409, save the billing details
before topping up), topup_not_available (409, the org
cannot top up as it would be taxed; the message says why),
desktop_controlled (409, a person viewing the desktop has
taken control of it, see control), rate_limited (429,
see Retry-After), trial_capacity
(429, all trial capacity in use; retry after
Retry-After), host_capacity (429, the host is short of
memory right now, so nothing new starts there; retry after
Retry-After), internal (500),
runtime_error (502, the sandbox host failed),
payment_provider_error (502, Mollie could not be
reached or refused a payment),
unavailable (503, the feature is not configured on this
deployment), waking (503, the sandbox is still waking
from standby or booting; retry), timeout (504, or 408 when a request
body stalls).
messagestringrequiredcontrolDesktopControlWho has control of a sandbox's desktop. In an error, it is present
only with code desktop_controlled.
Show propertiesHide properties
heldbooleanrequiredSomeone viewing the desktop has taken control of it.
holderstringOnly when held; their name as the desktop's viewers see it, their user's name or else their API key's.
sincestring<date-time>Only when held; when they took control.
expires_atstring<date-time>Only when held; when control lapses unless they use the desktop before.