Skip to content
pols.so docs
Esc
↑↓navigate↵open⌘Jpreview

Save a sandbox's disk as a named template

Returns a creating template; poll GET until ready before using it. Failed saves remain visible until cleanup completes. Environment variables (secrets) of the source sandbox are not copied into the template. Answers 403 quota_exceeded when the org already has max_templates templates of its own.

POST/v1/templates
Authorization
AuthorizationBearer token · headerrequired

Org-scoped API key, pols_....

Request body
requiredapplication/json
sandboxstringrequired

Source sandbox ID or name. It must be running or stopped.

nameNamerequired

Lowercase letters, digits and dashes, starting with a letter.

matches ^[a-z][a-z0-9-]{0,62}$
descriptionstring

Free text, without control characters other than tab.

max length 500
Responses
201

The template.

statusTemplateStatusrequired
Allowed:creatingreadyfaileddeleting
disk_gibintegerrequired
min 1
idstringrequired
namestringrequired
descriptionstring | null
systembooleanrequired

Provided by pols.so for every org; cannot be deleted.

source_sandbox_idstring | null
created_atstring<date-time>required
429

Rate 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.

errorobjectrequired
Show properties
codestringrequired

Stable 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), withdrawal_consent_required (409, a consumer orders a top-up or the subscription only with withdrawal_consent), 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).

messagestringrequired
controlDesktopControl

Who has control of a sandbox's desktop. In an error, it is present only with code desktop_controlled.

Show properties
heldbooleanrequired

Someone viewing the desktop has taken control of it.

holderstring

Only 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.

default

Error.

errorobjectrequired
Show properties
codestringrequired

Stable 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), withdrawal_consent_required (409, a consumer orders a top-up or the subscription only with withdrawal_consent), 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).

messagestringrequired
controlDesktopControl

Who has control of a sandbox's desktop. In an error, it is present only with code desktop_controlled.

Show properties
heldbooleanrequired

Someone viewing the desktop has taken control of it.

holderstring

Only 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.

Request
curl -X POST 'https://api.pols.so/v1/templates' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "sandbox": "string",
  "name": "string",
  "description": "string"
}'
Response
{
  "status": "creating",
  "disk_gib": 1,
  "id": "tpl_ubuntu2404",
  "name": "string",
  "description": "string",
  "system": true,
  "source_sandbox_id": "string",
  "created_at": "2019-08-24T14:15:22Z"
}