Skip to content
sistemo.io beta

FAQ

Short answers, with a link to the page that explains each one properly.

Sandboxes

How long does a sandbox live?

Until you destroy it. There is no idle timeout, no auto-stop and no maximum lifetime. A machine you create runs until you stop it, destroy it, or your balance reaches €0.

This is deliberately different from most sandbox platforms, which kill a sandbox after a fixed timeout you have to keep extending. Here the wallet is the cap: a running machine bills per second, so a forgotten sandbox costs money rather than vanishing. Both failure modes are real — we picked the one you can see coming in GET /v1/billing/balance.

What happens when my balance hits €0?

New machines are refused and running machines are stopped by the spend guard. Disks are not deleted — storage keeps accruing, which is why the balance can go slightly negative. Top up and start them again.

If the balance stays at €0 past the grace window — 3 days on free, 30 days after your first top-up — the reclaimer deletes the account's resources, after warning emails. Both actions are recorded in the Activity log with actor: system:spend_guard or system:reclaimer.

Can I reconnect to a sandbox later?

Yes, but not through the Sandbox() helper — it creates a new machine every time. Keep the machine id and use it:

from sistemo import Client

c = Client()
c.request("POST", f"/v1/machines/{machine_id}/execs",
          {"exec_id": "read-1", "script": "cat /tmp/state.txt", "timeout_sec": 120})

Or GET /v1/machines to find it again. See Machines.

Is something down?

Check status.sistemo.io — it shows the API and the fleet, and any incident in progress. Recent changes are in the Changelog.

Why did my command come back as a 504?

This used to happen to anything over ~10 seconds. Fixed 2026-09-23 — a load balancer timeout and an nginx default were cutting responses short. Calls of 15, 45 and 70 seconds now return normally.

A command that outlives the default 120 s: pass a larger timeout to sb.run() (ceiling 24 hours). See Long-running work.

Why is my command's output truncated?

stdout and stderr are capped at 32 MiB each. If the cap is hit, truncated is true. For bigger files, move the data over the network. See Get files in and out of a sandbox.

Do sandboxes have internet access?

Yes, outbound. That is how pip install and npm install work inside one. Outbound SMTP is blocked so a sandbox cannot be used to send mail. A sandbox cannot reach your other sandboxes, the host, or any cloud metadata service.

Is it really a VM, or a container with a nice name?

A real Firecracker microVM with its own Linux kernel. A guest→host escape has to break out of a virtual machine, not out of a namespace. That is the entire reason to use this for code a model just wrote. See Core concepts.

Limits and capacity

How do I raise my limits?

Your first real top-up moves you from free to payg, which raises all five quota dimensions. Beyond that, ask — per-account overrides exist. GET /v1/quotas always shows your effective limits. See Quotas.

How many sandboxes can I run at once?

However many fit your quota: machines, and also vcpus, memory_mb and storage_gb summed across them. All five are checked independently, so the one that blocks you may not be the one you expected. Quotas explains each.

Do you support GPUs?

No. CPU only.

Which region do you run in?

The EU. There is no region selector today — every machine lands in the same region, which is the point for anyone who needs EU data residency.

Billing

How do I work out what a sandbox will cost?

Per second, from the live rate card at GET /v1/billing/rates. A 1 vCPU / 1 GiB machine is about €0.047/hour while running, plus its disk at the GB-month rate whether it runs or not. There is no minimum and no rounding up to the hour. Usage & billing has worked examples.

Does a stopped machine cost anything?

Storage only. No vCPU, no RAM. Stopping is the right move for a machine you will come back to; destroying is the right move for one you will not, because a stopped machine still occupies quota.

Which machine is spending my money?

GET /v1/billing/usage/by-resource — cost-sorted, and rows survive the resource being deleted. See Billing & usage.

Is there a subscription or a platform fee?

No. Prepaid balance only, and the balance is the spend cap. Invoices are not built yet; Stripe receipts every top-up.

Security and privacy

Do you store the code I run?

No. The Activity log records that an exec happened, its exit code and the timeout — never the script text and never its output. That is enforced by an allow-list in the code with a test that fails the build if it is ever widened.

Is the Activity log tamper-evident?

No, and we do not market it as such. It is an honest record, not a cryptographic one — no signatures, no hash chain. If you need attested audit evidence for a regulator, tell us; it is a design we have and have not built.

What can a read-only API key do?

List and read: machines, volumes, snapshots, images, quotas, billing figures and the Activity feed. It cannot create, run, stop, destroy, or open a terminal. It cannot top up or touch the card on file — those need a dashboard session, not a key of any scope. See Authentication.

A 403 came back with no JSON body. Is my key wrong?

No — that one is not ours. The WAF refuses some default client user-agents before the request reaches the API. Tell them apart by the body: ours is JSON with a code, the WAF's is text/plain saying error code: 1010. Send a real User-Agent. See Errors.

Product

Why is signup invite-only?

Private beta. Everything documented here is built and running; the front door is what is closed. Request an invite.

Something is missing that I need

The gaps are listed rather than hidden — no file API, no GPUs, no region choice, no inbound ports or public URLs. If one of those is what stands between you and using this, say so; it is how the order gets decided.