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

# API reference

> The Glasswarp Platform API — real-time vision and native input on Windows.

Every endpoint below is generated from the live OpenAPI spec and comes with an
interactive request builder. The SDK wraps these same endpoints — see
[Install the SDK](/get-started/install-sdk).

## Base URL

```
https://signal.glasswarp.com
```

## Authentication

All `/v1/*` endpoints require a bearer token:

```bash theme={null}
Authorization: Bearer gw_live_sk_...
```

Create and scope keys in [Console → API Keys](https://www.glasswarp.com/console/keys).
Keys can reach any rig you own that has API access enabled.

## Conventions

* **JSON** request and response bodies (observe returns JPEG as base64 plus
  metadata).
* **Sessions meter usage** — always end them (`POST /v1/sessions/{id}/end`).
* **Rate limits** apply per key; handle `429` with backoff. Input limits count
  **each event** in a batch (not each HTTP call) — a 10-event batch consumes 10
  of the input quota.
* **Some errors mean stop, not retry.** Three are worth handling explicitly:

| Status | `code` | What happened | What to do |
| - | - | - | - |
| `410` | `aborted_by_owner` | The rig owner killed the session mid-batch. The body reports `executed` and `aborted` counts — only `executed` events reached the machine. | Stop. The session is gone; do not retry or start a new one without the human. |
| `409` | `rig_busy` | That rig already has an active session (one per rig, every tier). `active_session_id` names it. | Wait for the idle auto-end (\~15 min) or end it in the Console. |
| `402` | `concurrent_limit` | Your plan's concurrent-session cap is reached (Free 1 / Builder 3 / Growth 10). This is a **per-account** limit and is separate from `rig_busy`; the tier cap only buys parallelism across **different** rigs. | End a session, wait for the \~15 min idle auto-end, or upgrade. |
| `503` | `capture_recovering` | Host screen capture is reacquiring after a display loss, so no frame is trustworthy. | Retry observe for a few seconds. Never act on your last known frame. |

Browse the full endpoint list in the **Endpoints** section of the sidebar —
each has an interactive request builder. Start with `GET /v1/rigs` to list the
machines your key can reach.

<Note>
  Prefer the [Python SDK](/get-started/install-sdk) for auth, retries, and the
  vision/grounding helpers. Use raw REST from any other language.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.