OpenAI Containers vs Azure Container Apps Sandboxes
OpenAI Containers are a tool inside OpenAI's model API: the model runs code in a short-lived box with no sudo, and the box is deleted after 20 idle minutes. Azure Container Apps Sandboxes are microVMs in your Azure account that you create, suspend with their memory and resume through an SDK.
The companies and products
OpenAI Containers
OpenAI Containers are the sandboxes OpenAI runs for its own model tools: Code Interpreter, Hosted Shell and the Agents API's hosted sandbox.
This is a different kind of product from boat: a tool inside OpenAI's model API, not a machine you rent. You create a container through the API or let a Responses call make one, and the model runs Python or shell commands in it on a fixed Debian 12 image without sudo, until it expires after 20 minutes without use. It is built for apps that already call OpenAI models and want them to run code, read files and make charts without running any servers.
Azure Container Apps Sandboxes
Azure Container Apps Sandboxes is a service inside Microsoft Azure that gives each agent or user an isolated microVM you create, suspend and resume through an SDK.
It is part of Azure Container Apps, the hyperscaler's serverless container platform, and lives in your Azure subscription as a sandbox group resource. Each sandbox boots from an OCI image or a snapshot, has its own kernel, and can be suspended with its memory and resumed in under a second. It is built for teams already on Azure that want stateful code execution with Azure networking, identity and billing.
Which use cases each one fits
For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “356th cheapest of 367” means 355 of the other 366 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.
| Use case and its workload | OpenAI Containers: price rank | Azure Container Apps Sandboxes: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month A coding agent that installs packages and runs Docker for days loses everything when an OpenAI container expires; Azure keeps its disk, and boat adds SSH, /dev/kvm and a desktop. | 356th of 367, with limits $17,371 a month | 288th of 367, with limits $5,276 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An assistant that lives on its machine all month has to touch an OpenAI container every 20 minutes or lose it; Azure and boat both keep the machine, and boat adds a desktop and SSH. | 341st of 366, with limits $13,140 a month | 302nd of 366, with limits $6,544 a month | 5th cheapest of 366 $657 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month This is the one job OpenAI Containers are built for, but Azure fits it fully too, with short runs that suspend with their memory and resume in under a second. | 194th of 345, with limits $6,000 a month | 34th cheapest of 345 $354 a month | 186th of 345, with limits $2,000 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Azure fits sandboxes for your users with public HTTPS ports and memory suspend; OpenAI containers take no inbound connections, so users cannot open what runs inside. | 361st of 361, with limits $3,780 a month | 22nd cheapest of 361 $2,260 a month | Cheapest of 361 $209 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month | 191st of 360, with limits $30,000 a month | 153rd of 360, with limits $10,740 a month | 34th of 360, with limits $2,000 a month |
| Agent evals 250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month Evals need open internet and a clean machine per run; Azure gives both, while OpenAI's Code Interpreter and Hosted Shell containers start with no outbound access. | 360th of 364, with limits $5,760 a month | 75th cheapest of 364 $1,728 a month | 10th cheapest of 364 $200 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month CI needs Docker, root and open internet; OpenAI documents none of them, Azure has Docker only on images that ship it, and boat also has /dev/kvm for Android builds. | 345th of 377, with limits $1,728 a month | 103rd cheapest of 377 $1,046 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A dev box you SSH into and keep all month fits neither well: OpenAI has no SSH or persistent disk, and Azure gives a shell only through its CLI, SDK or portal. | 362nd of 368, with limits $1,051 a month | 322nd of 368, with limits $262 a month | 18th cheapest of 368 $26 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month OpenAI has a hosted browser for computer use inside the Agents API beta, Azure's sandboxes are headless, and boat streams a full 60fps desktop. | 351st of 369, with limits $5,280 a month | 279th of 369, with limits $1,573 a month | 6th cheapest of 369 $200 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month | 328th of 367, with limits $1,440 a month | 288th of 367, with limits $795 a month | 7th cheapest of 367 $200 a month |
| Scraping & bots (startup scale) 50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month | 328th of 346, with limits $1,755 a month | 284th of 346, with limits $561 a month | 6th cheapest of 346 $90 a month |
| Mass scraping & bots (undetectable) 1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month | 311th of 338, with limits $35,100 a month | 239th of 338, with limits $10,956 a month | 71st of 338, with limits $1,800 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month | 308th of 360, with limits $870 a month | 278th of 360, with limits $517 a month | 2nd cheapest of 360 $200 a month |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month | Can't run it | Can't run it | Can't run it |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it | Can't run it |
Key features
| Feature | OpenAI Containers | Azure Container Apps Sandboxes | boat |
|---|---|---|---|
| What it is | A sandbox tool the model uses inside OpenAI's API | A microVM compute type inside Azure Container Apps, managed through an SDK | A cloud VM you create, keep, stop and reach from outside |
| Isolation | A fully sandboxed virtual machine; hypervisor not named | MicroVM per sandbox with its own kernel | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Root and Docker | Commands do not run with sudo; no Docker documented | Depends on the image: azure-dev ships Docker on systemd; the default ubuntu image has only Buildah | Root, systemd and Docker on every sandbox |
| Nested virtualization | Not documented | Not documented | /dev/kvm for Android emulators and VMs |
| Machine size | 1, 4, 16 or 64 GB of memory; vCPU not published | Tiers from 0.25 cores / 0.5 GB to 4 cores / 8 GB; up to 16 vCPU / 32 GB by API | 4 vCPU / 8 GB by default, up to 16 vCPU / 32 GB |
| Files after the session | Data is discarded when the container expires and cannot be recovered | Suspend with memory and disk; resume in under a second with processes running | Disk saved every minute and on stop; a stopped sandbox costs nothing and comes back |
| Lifetime and idle | Expires after 20 minutes without use | No session cap; auto-suspends after an idle timeout and wakes on traffic | No session cap on paid plans; you set the auto-stop timer |
| Fork | No fork | Snapshot a running sandbox with its memory and create new sandboxes from it | Fork a running sandbox with its disk |
| Inbound access | None; you reach the container only through the API | Public HTTPS routes per published port; shell through the aca CLI, SDK or portal; no SSH | SSH, HTTPS URLs for up to 50 ports, raw TCP |
| Outbound internet | Code Interpreter and Hosted Shell: off until an admin sets a domain allowlist; Agents API sandboxes open by default | Open, with an egress policy that can allow, deny or rewrite requests by host, path and method; VNet integration | Open internet on every plan; no provider-side allowlist |
| Keeping API keys out of the sandbox | domain_secrets: a sidecar adds the real header for approved domains | Group secrets in egress header rules; Copilot and Anthropic tokens are injected into the sandbox at startup | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Coding agents | Agents API (beta) drives a managed Codex harness from outside | Copilot CLI and Claude Code images, run through the exec API | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| Desktop and computer use | Hosted browser for the Agents API computer_use tool | Headless; no desktop or managed browser | 60fps Linux desktop, Chromium and computer-use tools, embeddable stream |
| Regions | US or EU processing for Code Interpreter; Agents API data residency in the US only | 40 Azure regions, 9 of them in the EU | EU only (Germany, Finland, France) |
Every feature Battleships tracks (43)
| Feature | OpenAI Containers | Azure Container Apps Sandboxes | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | No | Yes | Yes |
| Nested virtualization | No | No | Yes |
| Root | No | Yes | Yes |
| Systemd | Not published | Yes | Yes |
| Desktop GUI | Yes | No | Yes |
| Browser | Yes | No | Yes |
| Computer-use API | Yes | No | Yes |
| SSH | No | No | Yes |
| Persistent disk | No | Yes | Yes |
| Pause/resume | No | Yes | Yes |
| Automatic snapshots | No | Yes | Yes |
| Fork/clone | No | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | No | Yes | No |
| Custom image (Docker or snapshot) | No | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | No | Yes | No |
| HTTPS preview URLs | No | Yes | Yes |
| Raw TCP inbound | No | No | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | Yes | Yes |
| Secret proxy for any API | Yes | Yes | Yes |
| Preinstalled agents | No | Yes | Yes |
| Agent harness API | Yes | No | Yes |
| MCP server | No | No | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | No | No |
| Self-hosting | Yes | No | No |
| BYOC | No | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Yes | Yes |
| Usage per sandbox (API) | No | Yes | Yes |
| Audit logs | Not published | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable measurement for either: OpenAI Containers and Azure Container Apps Sandboxes are not in the public CPU benchmark, and OpenAI does not publish the vCPU behind each container size. boat did 26.69 runs per second on the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts. This page makes no speed claim between the two.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. OpenAI Containers and Azure Container Apps Sandboxes have no published run in this suite yet, so there is no like-for-like number to compare.
Pricing in five scenarios
Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.
| Scenario | OpenAI Containers, a month | Azure Container Apps Sandboxes, a month | boat, a month |
|---|---|---|---|
| One coding agent, workdays 4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days | $228 · API pay as you go · with limits | $68 · Pay-as-you-go | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $1,051 · API pay as you go · with limits | $262 · Pay-as-you-go · with limits | $26 · $20/mo |
| 50 agents in parallel 50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside | $11,405 · API pay as you go · with limits | $3,421 · Pay-as-you-go | $317 · $20/mo × 3 seats |
| Sandboxes for your users 2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once | $1,620 · API pay as you go · with limits | $989 · Pay-as-you-go | $200 · $100/mo × 2 seats |
| 1,000 short jobs at once 2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month | $6,000 · API pay as you go · with limits | $2,148 · Pay-as-you-go | $2,000 · $2000/mo · with limits |
OpenAI Containers: OpenAI bills each container session by the minute for the memory size you pick, with a 5-minute minimum, and model tokens are billed on top. There is no plan fee, and the scenarios use the 16 GB size for 8 GB needs since vCPU is not published.
Azure Container Apps Sandboxes: Azure bills per second on the Container Apps Consumption meters for the vCPU and memory of the sandbox's tier while it runs, including idle time before auto-suspend (5 minutes by default). There is no plan fee, and some regions such as West Europe charge more.
Azure Container Apps Sandboxes: Plans start at $20 a month, and the whole fee is usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
OpenAI Containers fit none of the five scenarios as written: no persistent disk, no Docker, no open internet in Code Interpreter and Hosted Shell, and no published vCPU or concurrency cap, so 300 user sandboxes and a 1,000-job burst are unconfirmed. Azure fits four of the five; the always-on agent only gets close with a 3-year commitment, Docker means picking an image like azure-dev, and a default quota of 500 active cores caps a fleet until support raises it. boat fits every scenario but the 1,000-job burst, where its start limits queue the starts.
| Scenario | OpenAI Containers | Azure Container Apps Sandboxes | boat |
|---|---|---|---|
| One coding agent, workdays |
| None that bite | None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel |
| None that bite | None that bite |
| Sandboxes for your users |
| None that bite | None that bite |
| 1,000 short jobs at once |
| None that bite |
|
Which one should you use?
Use OpenAI Containers when
your app already calls OpenAI models and the model only needs to run short pieces of code or shell commands on files you give it.
- Built into the model call. For apps that already call OpenAI models: one tool line in a request gives the model a place to run code.
- Closed network by default. For code that must reach only chosen hosts: Code Interpreter and Hosted Shell have no outbound access until an admin allows domains.
- Your own compute. For teams that want the harness but not the hosting: the Agents API can drive a sandbox on machines you run.
Use Azure Container Apps Sandboxes when
your team already runs on Azure and wants stateful sandboxes that suspend with their memory, wake on traffic, sit behind strict egress rules, or run outside the EU.
- A machine that keeps its state. For stateful jobs that sleep between requests: a sandbox suspends with its memory and resumes in under a second.
- Fine-grained outbound rules. For agents held to set hosts: its egress policy can allow, deny or rewrite each request by host, path and method.
- Inside Azure, in 40 regions. For teams already on Azure: Entra ID, Azure billing and VNets, in 40 regions on six continents.
Where boat fits
If what you are really running is coding agents that work for hours or days, neither option gives them a whole computer. OpenAI Containers are a short-lived tool for the model, and Azure's sandboxes are headless microVMs reached through its CLI. boat gives each agent a full VM with root, Docker, /dev/kvm, SSH and a desktop, with coding agents and a credentials proxy built in.
A whole machine it keeps
On OpenAI an agent has no sudo or Docker, and its files are gone 20 idle minutes later. Azure keeps the disk but has Docker only on some images and no documented /dev/kvm, so Android emulators and nested VMs cannot start.
Reachable and on screen
OpenAI containers take no inbound connections, and Azure has no SSH, raw TCP or desktop, so editors and computer-use agents need workarounds through its exec API and your own display stack. boat has SSH, 50 HTTPS ports, raw TCP and a 60fps desktop.
Agents and keys built in
OpenAI drives only its own Codex harness, and Azure runs agent images through raw exec with tokens injected into the sandbox, where a prompt-injected agent can read them. boat preinstalls seven agents and keeps real keys in a proxy outside.
Use boat when your agents need a whole computer for real work: root, Docker, /dev/kvm, SSH, a desktop and a disk that stays, with coding agents and a credentials proxy built in. Compare it one to one: boat vs OpenAI Containers and boat vs Azure Container Apps Sandboxes.
Questions people ask
Is OpenAI Containers cheaper than Azure Container Apps Sandboxes?
Not in the scenarios on this page: one coding agent on workdays comes to $228 a month on OpenAI and $68 on Azure, and 50 agents in parallel come to $11,405 versus $3,421. OpenAI also bills model tokens on top. boat comes to $20 and $317 for the same two.
Which is faster?
Neither has a comparable CPU measurement, and OpenAI does not publish the vCPU behind its container sizes, so no speed claim can be made between them. boat did 26.69 runs per second on the same public benchmark at 4 vCPU / 8 GB.
Can OpenAI Containers or Azure sandboxes run Docker?
OpenAI's docs say hosted shell commands do not run with sudo, and no Docker support is documented. On Azure, the azure-dev image ships Docker on systemd, while the default ubuntu image has only Buildah. boat runs Docker on every sandbox and also exposes /dev/kvm.
How long does a sandbox last on each?
An OpenAI container expires after 20 minutes without use, and its data is discarded. An Azure sandbox has no session cap; it suspends when idle with its memory and disk and wakes on traffic. boat has no session cap on paid plans and keeps the disk when a sandbox stops.
Can I SSH into either?
No. OpenAI containers are reached only through the API, and Azure gives an interactive shell through the aca CLI, the SDK or the portal. Every boat sandbox has SSH, HTTPS URLs for up to 50 ports and raw TCP.
Is boat SOC 2 compliant?
SOC 2 is in progress. We're open about where we stand: live status at status.ascii.dev and our data retention policy at docs.boat.dev/data-retention.
Try boat
Install the CLI, then run boat new.
7-day free trial
More comparisons
- boat vs OpenAI Containers
- boat vs Azure Container Apps Sandboxes
- E2B vs OpenAI Containers
- Daytona vs OpenAI Containers
- Modal vs OpenAI Containers
- Vercel Sandbox vs OpenAI Containers
- Cloudflare Sandbox vs OpenAI Containers
- Blaxel vs OpenAI Containers
- Runloop vs OpenAI Containers
- Tensorlake vs OpenAI Containers
- Morph Cloud vs OpenAI Containers
- CodeSandbox SDK vs OpenAI Containers