> ## Documentation Index
> Fetch the complete documentation index at: https://docs.simular.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Computers

> Where Sai works, and how the API picks one.

Sai runs on a computer. The API calls it a machine and identifies it by `machineId`.

## Kinds

| `kind` | What it is |
| - | - |
| `cloud` | A Windows computer Simular hosts for you. |
| `own` | A Mac or Windows computer where you installed the Sai desktop app. |

`GET /machines` returns every computer on your account with its `kind` and whether it is `online`. See [Machines](/sai-api/api-reference/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:

```json theme={null}
{
  "machineId": "free-3fA9kQ2xYz",
  "name": "Sai cloud computer (free)",
  "kind": "cloud",
  "online": false
}
```

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](https://platform.simular.ai/playground), or in the Sai app. It takes a few minutes. See [Create a computer](/sai-api/api-reference/machines#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`.

<Note>
  Optional `machineId` and the free-account row in `/machines` are available from October 1. Against today's staging, pass `machineId` on every message.
</Note>

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