---
seo:
  description: >-
    Persistent personal computers for agents. A machine is the core resource: a
    durable computer that can be stopped and started without losing its files.
sidebar:
  label: Overview
title: Raster API
---
Persistent personal computers for agents. A `machine` is the core resource: a durable computer that can be stopped and started without losing its files.

**Authentication.** Every request carries an organization API key as `Authorization: Bearer sk_...`. Create one in the dashboard; the secret is shown once.

**Errors.** Every non-2xx response is the same envelope: `{ error: { code, message, request_id, details?, quota? } }`. Switch on `code`, which is a closed set; `message` is written for a person and may be reworded.

**Repeating a request.** Any unsafe request accepts an `Idempotency-Key` header, and that is what makes retrying one safe: a repeat replays the first response instead of creating a second machine. Reusing a key with a different body is a `conflict`.

**Lists.** Every list is cursor-paginated and answers `{ data, next_cursor, has_more }`. A cursor is opaque; pass back what the last page returned and never construct one.

<ApiOverview source="api" />

## Machines

The core resource. Creating one boots a computer; stopping it keeps the disk and deleting it destroys it. Forking copies a disk into a second machine that owes the first nothing afterwards.

<ApiTagOperations source="api" tag="machines" />

## Images

The server-owned catalog of base disk images a machine boots from. `machines.create` accepts any id listed here and uses the image marked `default` when a request names none. Deprecated images stay listed, with `deprecated_at` set, because existing machines still reference them.

<ApiTagOperations source="api" tag="images" />

## Computer control

Driving a machine the way a person would: its screen, pointer, keyboard, clipboard, terminals, files and browser. Every coordinate is in the pixel space of the machine's current display, and one outside it is rejected rather than clamped.

<ApiTagOperations source="api" tag="computer-control" />

## Sessions and input

A connection to a machine, and the single input lease that hangs off it. At most one session may send input at a time, which is what makes human takeover safe rather than interleaved.

<ApiTagOperations source="api" tag="sessions-and-input" />

## Snapshots

Captured disks. A capture holds files, installed software and browser profile data, and holds no RAM and no live process state. Captures of one machine form a chain and only the newest can be deleted.

<ApiTagOperations source="api" tag="snapshots" />

## Templates

Named starting states. A template is a snapshot with a name and an organization behind it, so a team can agree on what its standard box is.

<ApiTagOperations source="api" tag="templates" />

## Published ports

Publishing a guest port at its own https hostname. Private by default; the credential is in the response that creates it and nowhere else.

<ApiTagOperations source="api" tag="published-ports" />

## Secrets

Values delivered into tmpfs inside a machine. A stored value is never returned - there is no read route here and no field one could travel in - and a snapshot, fork or template does not carry it.

<ApiTagOperations source="api" tag="secrets" />

## Usage

The metered record behind a bill: raw records for a period, and the same records bucketed for charting. This is the source of truth, not the provider's copy.

<ApiTagOperations source="api" tag="usage" />

## Plans

The server-owned catalog of plans, entitlements and rates. No price, allowance or weight is hardcoded in any client, so an older SDK can display a newer catalog.

<ApiTagOperations source="api" tag="plans" />
