Skip to main content

Containers

The hosted container API requires the operator’s BOAT_API_KEY and durable D1 storage. Without the provider key, endpoints return 501 boat_not_configured. The consumer agent’s optional Cloudflare sandbox is a separate execution backend.
Names contain lowercase letters, numbers and dashes (up to 63 characters). Files use base64 transport with a roughly 2 MB limit; split larger data or use external object storage. Parent traversal (..) is rejected. Commands run synchronously; inspect exit_code, stdout, stderr and status rather than assuming HTTP success means command success. Use runs for command history.

Public ports and shell

Publishing exposes a public HTTPS endpoint. Apply application authentication before exposing private data. containers.shell(id) returns a temporary, credential-bearing desktop URL; handle it as a secret. Start/resume the container before requesting a shell. The current API supports stop/resume and port publication; deletion and port revocation are not exposed. usage_seconds includes completed runtime and the current running interval. Stop idle containers to limit runtime. Billing depends on the configured provider and plan; inspect current billing terms before creating resources. On 502, inspect the provider error, check container status, and avoid blindly retrying commands with side effects. For partial file transfers, verify size and contents before continuing.