Skip to main content
Sai runs on a computer. The API calls it a machine and identifies it by machineId.

Kinds

GET /machines returns every computer on your account with its kind and whether it is online. See Machines.

Free accounts

A free account has one pooled Windows cloud computer. It has no entry of its own until Sai first uses it, so /machines lists it under a derived id:
The id is free- followed by your user id. It never changes. You can pass it as machineId, or omit machineId and let the API pick it. The computer starts when the first message arrives. Expect the first request of the day to take about two minutes before events begin. Free accounts have a daily time limit on the computer; the portal shows the remaining time.

Getting a computer

  • Free plan: nothing to do. The pooled computer starts on the first task that needs it.
  • Paid plan, no computer yet: create one with the Create a cloud computer button in the Playground, or in the Sai app. It takes a few minutes. See Create a computer.
If your code or coding agent hits “this account has no computer yet”, send the user to that page; an API key cannot create one.

Picking a computer

machineId is optional on POST /message.
  • Omitted with one computer: the API uses it.
  • Omitted on a free account: the API uses free-{uid}.
  • Omitted with several computers: 400 with machines: [{ machineId, name }] listing the candidates. Pass one of them.
  • Omitted on a paid account with no computer: 400 asking you to create one.
Send a machineId that is not yours and the API answers 403.
Optional machineId and the free-account row in /machines are available from October 1. Against today’s staging, pass machineId on every message.

Waking and restarting

Cloud computers hibernate when idle. POST /message wakes one as part of delivery, so you do not have to call anything first. POST /wake and POST /restart exist for the Sai CLI and are not needed for the loop on this site.