Boat-compatible API
Available when the beta opens. Based on Boat's public documentation; check their current docs. Dated 2026-11-04. Names are used nominatively; this is not a statement about another provider's price or performance. The machine-readable description is boat-compat.openapi.yaml.
If you build against Boat's HTTP API, the sandbox lifecycle calls below also work on Dory (Agent Computers). Everything behind them is the normal service: the same keys, scopes, plan limits, spend caps, rate limits and audit trail apply, and nothing is exempt because the request arrived in Boat's shape.
Switch
- Change the base URL from
https://boat.dev/api/v1tohttps://api.agents.computeengines.com/boat/v1. - Send an Agent Computers API key (
cek_...) in the same header Boat uses:Authorization: Bearer <key>. - Send an
Idempotency-Keyheader on create for safe retries. Boat SDKs expose it asidempotency_key(Python) andidempotencyKey(TypeScript). Without it a retried create may make a second computer.
This surface is optional and may not be enabled for every account. Where it is not, /boat/v1/ returns 404.
What works
| Boat call | Result here |
|---|---|
POST /sandboxes |
Creates a computer and waits until it is ready, then returns 202 with type: "sandbox.created" and status: "ready". |
GET /sandboxes |
Lists your computers with Boat's limit, sort (desc default, asc) and cursor parameters and its pageInfo (nextCursor, hasMore, limit). |
GET /sandboxes/{id} |
Returns one sandbox. |
DELETE /sandboxes/{id} |
Deletes the computer. Returns 202 with an operationId. |
GET /deletion-operations/{operationId} |
Reports in_progress, completed or failed for a delete you started. |
A sandbox id is the computer id. Use it unchanged with the main API.
Sandbox types
Boat type |
Computer size |
|---|---|
small |
2 vCPU, 4 GB |
default (when omitted) |
4 vCPU, 8 GB |
large |
8 vCPU, 16 GB |
xlarge |
16 vCPU, 32 GB |
Sizes above your plan return 403 exactly as they do on the main API. Any other type returns 400 invalid_sandbox_type and lists the supported ones.
Create fields
Supported: type, name, labels (up to 16), env, setupScript, ttlSeconds. ttlSeconds becomes the run timeout and the computer stops when it runs out; null disables the timeout where your plan allows it. environment may be omitted or "base", and noEnv and failFast are accepted. snapshots and monitoring are accepted only as false (automatic snapshots and monitoring are not provided).
Rejected with 400 unsupported_field: from, count above 1, hostedPorts, files, org, teamId, and visibility: "shared".
What differs
- Waiting. Create waits up to 30 seconds for the computer to be ready. If it is not ready in time you get
504 operation_timeoutwitherror.details.operationIdandsandboxId. The computer keeps being created. Repeat the request with the sameIdempotency-Key, orGETthe sandbox. - Idempotency.
Idempotency-Keyis optional on create here (the main API requires it). Without one, each request is treated as new. When you send one, the rules are those of the main API: a retry with the same key and body returns the original sandbox (Idempotent-Replayed: true); the same key with a different body returns409 idempotency_key_reused. Keys are kept 24 hours. - Delete confirmation.
X-Ascii-Confirm-Deletemust equal the exact sandbox id. A missing or wrong value returns400 confirmation_requiredand nothing is deleted. The main API'sCE-Confirm-Deleteheader is not accepted on this surface. - Deleted sandboxes return
404 not_foundonce deletion finishes. - States.
readymeans the computer is running and answering. Paused and stopped computers show asarchived; stopping or deleting showsarchiving. Fields we cannot fill honestly (url,ip,sshEndpoint,desktopUrl) arenull. - Errors. Errors use Boat's envelope (
ok: false,type: "sandbox.error",status,code,message,error,requestId). Statuses follow Boat's table where a match exists;error.details.upstreamCodecarries the main API's error code. Rate limits return429 rate_limitedwithRetry-After. - Rate limits and plan limits are the Agent Computers ones, not Boat's.
What is not supported
Every other Boat call returns 501 not_supported with a message naming the nearest workflow, never a partial success. An unknown path returns 404.
- Fork. Forking a running sandbox is not available. Stop the computer, create a private image from it, then create new computers from that image with the main API.
- Commands and exec (
/commands,/command-history,/processes). Running commands uses a short-lived, computer-scoped access token, which a key on this surface never receives. Mint an access token with the main API and use the SDK,cec exec, or the exec endpoint. - Stop, resume, update, share, usage, recover, files, ports, desktop and SSH-key calls, integrated agents and prompts, snapshots and saved snapshots, environments, repositories, credential profiles, webhooks, organizations, API-key management and account calls. Use the main API equivalents where they exist.
Before you migrate
Replace any parsing of Boat's id format, stdout fields and billing assumptions explicitly, and test create, retry, timeout and delete against your own account before moving production work. Behavior of Boat itself may have changed since the date above.
Dory is in development; these pages describe the planned service and may change. Questions: support@computeengines.com.