# Railway

Official pricing: https://railway.com/pricing  
Category: agent-sandbox · Isolation: vm

## Pricing regimes (raw)

- **Sandboxes (VM rates)** (resource): $0.069444/vCPU-h, $0.069444/GiB-h
- **Services (container rates, always-on or serverless service)** (resource): $0.027792/vCPU-h, $0.013896/GiB-h
- **Cloud Agents (VM rates, fixed size, beta)** (resource): $0.069444/vCPU-h, $0.069444/GiB-h [beta]

## Features

Yes: snapshots, fork/clone, pause/resume, persistent disk, volumes, idle auto-stop, ≥24 h sessions, custom image (Docker or snapshot), start from your own snapshot, full VM (own kernel), Docker inside, root, browser, preinstalled agents, SSH, HTTPS preview URLs, custom domains, raw TCP inbound, open internet, static egress IP, private networking, BYOC, SOC 2, HIPAA, SSO, Python, Node.js, live fork (no pause), webhooks, scheduled runs (cron), audit logs, EU data residency, spend limits, MCP server, snapshots on demand, agent harness API, gVisor or VM (no shared kernel), inbound access rules, firewall inside (nftables), extra volumes

No: memory snapshots, your own Docker/OCI image, nested virtualization, desktop GUI, computer-use API, code interpreter, browser + desktop control, anti-bot stealth, CAPTCHA solving, residential IPs, public IPv4, egress allowlist, self-hosting, open source, GPU, arm64, Windows, macOS, GPU desktop, HTTP method/path egress rules, wake on request, live resize, memory fork, automatic snapshots, hosted agent API (their own agent), secret proxy, secret proxy for any API, shared volumes

Unknown: everything else. Evidence (source + quote) per feature: https://battleships.dev/data/providers/railway.json → feature_evidence

## Caveats

- Sandbox RAM is billed on memory in use including page cache and keeps billing while idle-waiting. The engine's ram_util should be close to 1 for realistic agent workloads, even though the basis is 'active'.
- The pricing page claims sandboxes are never billed for time spent waiting; the docs say memory remains billable while waiting. Card follows the docs.
- Idle timeout destroys (does not pause) sandboxes: up to 30 min of RAM billed per forgotten sandbox by default, unbounded if the timeout is 0. Not modelled as min_billed_seconds.
- Sandbox checkpoint storage price is not published (snapshot_gib_month null). Checkpoint count is capped at the plan sandbox limit (10/50/100 per environment).
- Sandbox disk size is not documented. Services get 100 GB ephemeral storage (Hobby+), not billed. Volumes are $0.15/GB-month on used bytes but are services-only and cannot attach to sandboxes.
- Concurrency limits are per environment. Container-service mode concurrency is not bounded by the sandbox caps.
- Container-service mode is not a sandbox: non-privileged containers without VM isolation or the sandbox API, at 2.5x/5x lower rates. It is no longer opt-in 'alt' (an always-on Railway service is a legitimate dev box/app host); it is marked product_class 'paas' so sandbox-style presets show it as a different kind of product. SSH works: 'railway ssh' opens a shell in a service container over real SSH (ssh.railway.com, scp/sftp and local port forwarding supported, no VS Code Remote-SSH) (docs.railway.com/cli/ssh, verified 2026-09-28).
- Committed spend tiers give no rate discount; they are fee-as-credit minimums that unlock features. Their concurrency/size limits beyond Pro are unknown (null). Feature grouping per docs.railway.com/pricing/committed-spend; railway.com/pricing groups them differently (log history at $2k not $1k; cloud regions at $5k) - verified 2026-09-28.
- Free plan $1/month credit is modelled as the Free plan's included_usd, not as free.monthly_credit. The Trial gives $5 one-time (30-day expiry).
- BYOC appears on the pricing page's Enterprise list but is not described in the docs.
- Static outbound IPs (Pro services) have no published price. There is no dedicated inbound public IPv4.
- Storage buckets are $0.015/GB-month with free ops and free bucket egress (not modelled). Free plan is capped at 10 GB-month (counts against the $1 credit), Trial at 50 GB-month.
- Legacy GCP pricing (egress $0.10/GB, disk $0.25/GB) is historical. The Metal migration also raised measured CPU.
- No performance benchmarks: the computesdk cold-start runs never succeeded for Railway.
- A free no-account VM (ssh railway.new: 2 vCPU/2 GB, 60 min) exists but is not a billing regime for production workloads.
- Category set to agent-sandbox because Railway sells a Sandboxes product (VM rates); Services (containers) remain an opt-in adjacent regime.
- Re-checked 2026-09-28: docs.railway.com/sandboxes, /pricing/plans and /cloud-agents.md still state no sandbox/cloud-agent disk size, disk price or checkpoint storage price (only container Volumes $0.15/GB-month). included_disk_gib and snapshot_gib_month stay null.
- Fresh sandboxes default to US West (us-west2) regardless of the account's preferred region; another region (us-east4, europe-west4, asia-southeast1) must be requested via the SDK/API 'region' option (the CLI has no region flag). Forks/checkpoints/templates stay in the region they were captured in.
- Usage hard limit (Compute) takes all workloads offline, minimum $10 (CLI: 0 or $10-$500,000). Agent Usage (Railway Agent LLM) has a separate, non-removable hard limit defaulting to $5 Hobby / $20 Pro; Railway Agent tokens draw from the same included plan credit as compute.

## How this provider charges


Railway is a usage-metered PaaS with **two separate compute rate cards**: container rates for normal services and **VM rates (2.5x CPU, 5x RAM)** for anything on its VM primitive (Sandboxes, Cloud Agents, the no-account free VM). All usage, container or VM, draws down the same plan credit. The plan fee is a minimum spend that is credited against usage. Committed-spend tiers work the same way at larger sizes.

## Regime table

| # | Regime | When it applies | How billed | Numbers | Source |
|---|---|---|---|---|---|
| 1 | **Sandboxes (VM rates)** | `railway sandbox create` / SDK `sandboxCreate`. The agent-sandbox product, GA 2026-09-17 on every plan. | Per second. CPU is billed on **measured use**. RAM is billed on **memory in use, including OS and filesystem (page) cache**. Egress is metered. Billing runs for the whole sandbox lifetime until destroy or idle timeout. | CPU $0.00001929/vCPU-s = **$0.069444/vCPU-h** (~$50/vCPU-mo). RAM $0.00001929/GB-s = **$0.069444/GB-h** (~$50/GB-mo). Egress $0.05/GB. | https://railway.com/pricing, https://docs.railway.com/pricing/plans#vm-pricing, https://docs.railway.com/sandboxes |
| 1a | Sandbox idle-waiting | The sandbox is alive but waiting on a model or user, until destroy or idle timeout | CPU falls to background use, but **RAM (incl. page cache) keeps billing**. Idle timeout destroys the sandbox; it does not pause it. | Default idle timeout 30 min on Hobby/Pro (1–120 min; 0 = never, so it bills until you destroy it). Trial/Free default 5 min (1–5). | https://docs.railway.com/sandboxes, raw/railway_docs/cli_sandbox.md |
| 1b | Sandbox checkpoints / templates | State kept between sessions (disk snapshot only, boots fresh) | **Storage price not published.** The **number** of checkpoints is capped at the plan's sandbox limit (10/50/100 per environment). Templates are cached ~7 days. | null | https://docs.railway.com/sandboxes |
| 2 | **Services (containers)** | Normal deployments. Can host a DIY code-exec worker, but there is no VM isolation and no Docker-in-Docker. | Per second (docs quote per minute). CPU and RAM are both billed on **measured usage**, not on the configured limit. Builds are free. | CPU $0.00000772/vCPU-s = **$0.027792/vCPU-h** (~$20/mo). RAM $0.00000386/GB-s = **$0.013896/GB-h** (~$10/mo). | https://railway.com/pricing, https://docs.railway.com/pricing/plans |
| 2a | Serverless (app sleep) | A service with Serverless enabled and no outbound packets for 5–10 min | The service is stopped, so compute stops. Volume storage still bills. The first request cold-boots (it may return 502). Any outbound traffic (telemetry, DB pools) prevents sleep. | 5 min inactivity + up to 5 min sampling lag of billed tail | https://docs.railway.com/deployments/serverless.md |
| 3 | **Cloud Agents (VM rates, fixed size)** | Persistent personal agent VM (Priority Boarding beta) | Same VM rates, on measured CPU and memory in use. **No idle timeout**: an agent bills while awake even with no client attached. Sleep stops compute and keeps the disk. The disk price while sleeping is not stated. | Fixed sizes: Trial/Free 2 vCPU/1 GB, Hobby 2/2, Pro and Enterprise 4/4. 25 creations per user per day. | https://docs.railway.com/cloud-agents.md |
| 4 | **Free VM, no account** (`ssh railway.new`) | Anonymous trial VM | Free | 2 vCPU/2 GB for 60 min, then 24 h to claim; 3 boxes per IP per day (docs free-trial.md). Unclaimed VMs are deleted. Post-claim billing is not stated (presumably VM rates on the account's plan). | https://railway.com/changelog/2026-09-25-free-vms-without-an-account |
| 5 | **Plan minimum as credit** | Every account | Pay max(fee, usage). The included amount resets each cycle and does not roll over. | Free $0 with $1/mo credit. Hobby $5 min ($5 credit). Pro $20 min ($20 credit). Invoices under $0.50 (with no credit balance) are marked paid, but the amount is carried as a debit to a future invoice, not forgiven (https://docs.railway.com/pricing/understanding-your-bill). | https://docs.railway.com/pricing/plans |
| 5a | Trial | New accounts | $5 one-time grant, expires after 30 days. Unused trial credit carries over on upgrade. Limited (unverified) trial gets restricted network ports. | Services 2 vCPU/1 GB. Sandboxes max 2/2, 10 concurrent, 5-min idle cap. | https://docs.railway.com/pricing/free-trial.md |
| 5b | Hobby fee waiver | Automatically assessed "active builders" | The $5 fee is waived. You cannot request it. | — | https://docs.railway.com/pricing/plans |
| 6 | **Committed spend** (Pro only) | Monthly minimum commit | Pay max(commit, usage): any shortfall is invoiced as a top-up line. **No rate discount.** Each tier unlocks features. | $1k: 90-day logs, HIPAA BAA (BAA needs a 1-yr term, paid monthly). $2k: SSO, RBAC, 18-mo audit logs. $5k: Slack Connect, critical tickets, **Enterprise resource limits**. $10k: **dedicated instances**. (The railway.com/pricing "Unlock more as you grow" block groups them differently: $1k HIPAA BAAs; $2k log history, RBAC, SSO, audit logs; $5k enterprise support, cloud regions, 48 vCPU/48 GB per replica; $10k dedicated VMs. The docs table is used here.) | https://docs.railway.com/pricing/committed-spend, https://railway.com/pricing |
| 7 | Enterprise | Custom contract | Custom. Dedicated VMs and BYOC are listed on the pricing page. Up to 2,400 vCPU / 2.4 TB per service, 48/48 per replica. The sandbox cap starts at 100 per environment and can be raised. | Price unpublished | https://railway.com/pricing |
| 8 | Volumes | Services only (cannot attach to sandboxes) | Billed on **used bytes**, not provisioned size. 2–3% goes to FS metadata. | $0.15/GB-mo ($0.00000006/GB-s). Caps: Free/Trial 0.5 GB, Hobby 5 GB, Pro 50 GB default (self-serve resize up to 1 TB), Enterprise 5 TB. | https://docs.railway.com/volumes/reference.md |
| 9 | Storage buckets | S3-compatible object storage | GB-month. All ops free. **Bucket egress free**, but uploads *from a service* count as service egress. | $0.015/GB-mo (usage rounded up to whole GB-months). Free plan: capped at 10 GB-mo, and it counts against the $1 credit (not free on top). Trial: capped at 50 GB-mo, counted against trial credits. (Corrected 2026-09-28 from "10/50 GB-mo free".) | https://docs.railway.com/storage-buckets/billing.md |
| 10 | Egress | Services and sandboxes | Per GB. No free allowance. Private-network traffic is free. | $0.05/GB | https://railway.com/pricing |
| 11 | Static outbound IPs | Pro services only (not sandboxes) | Feature included. No per-IP price published. | null | https://docs.railway.com/networking/static-outbound-ips.md |
| 12 | *Legacy GCP pricing (historical)* | Before accounts had 80% of workloads on Railway Metal (migration targeted for 2025-07-04) | Same CPU/RAM rates, higher storage and egress | Egress $0.10/GB → $0.05. Disk $0.25/GB → $0.15. Metal's metrics sampler also raised measured CPU (legacy hardware under-counted). | raw/railway_docs/platform_railway-metal.md |
| 13 | Payment regime change | From March 30, a post-paid card is required and prepay is gone | If you still pay with credits and the balance hits 0, the **subscription is cancelled and all workloads stop**. Hobby cancellation on prepaid credit forfeits the balance. | — | https://docs.railway.com/pricing/plans |

No region multipliers: all regions (us-west2, us-east4, europe-west4, asia-southeast1) have the same price. No per-start fee, no minimum billed duration, no GPU.

## Gotchas
- **VM RAM costs 5x container RAM, and the page cache counts.** A sandbox that `git clone`s and builds a big repo fills the page cache, so billed RAM trends toward the allocation even at low CPU. RAM ends up 80–90% of a sandbox bill.
- **The marketing page and the docs contradict each other.** The pricing page says sandboxes are "never [billed] for the time it spends waiting". The docs say "memory remains billable while a VM waits for work". Trust the docs: waiting is cheap on CPU but not on RAM.
- **Idle timeout destroys; it does not pause.** Every forgotten sandbox bills up to 30 min of resident RAM by default, and it never stops if `idleTimeoutMinutes=0`. Forks don't inherit the timeout.
- **Cloud Agents have no idle timeout.** They bill until you explicitly sleep them.
- **Checkpoint storage has no published price.** The only published limit is on count (10/50/100 per environment).
- Sandbox concurrency is **per environment**, so more environments means more concurrency.
- **Committed spend is not a discount.** It is a minimum that unlocks compliance and dedicated hardware (HIPAA needs $1k/mo plus a 1-yr term).
- Hobby max sandbox is 8 vCPU/8 GB with 50 concurrent. That exactly fits the worked example, so there is no need to pay for Pro.
- The usage "hard limit" takes **all workloads offline**. Agent Usage limits cover only the Railway Agent's LLM spend, not sandboxes.

## Worked example
4 vCPU / 8 GiB, 50 concurrent × 8 h/day × 22 days = **8,800 instance-hours**, 30% CPU, 50 GiB snapshots retained, 100 GiB egress.

| Regime | Compute | Storage | Egress | Plan | **Monthly total** |
|---|---|---|---|---|---|
| 1 Sandboxes, RAM fully resident (8 GiB, typical with page cache) | CPU 4×0.3×0.069444×8800 = $733.33; RAM 8×0.069444×8800 = $4,888.86 | Checkpoints: price unpublished (null). Count cap is 50 on Hobby, so it fits. | $5.00 | Hobby $5 or Pro $20, credited | **≈ $5,627 + checkpoint storage (unknown)** |
| 1 + idle tail (each sandbox left to the 30-min default timeout once a day) | +550 h × 8 GiB × 0.069444 = +$305.55 | same | $5.00 | same | **≈ $5,933** |
| 1 sensitivity: only 4 GiB resident | CPU $733.33 + RAM $2,444.43 | null | $5.00 | same | ≈ $3,183 |
| 2 Services/containers (DIY isolation), 8 GiB resident | CPU 4×0.3×0.027792×8800 = $293.48; RAM 8×0.013896×8800 = $978.28 | 50 GiB as volumes, $7.50 (volumes are per-service state, not snapshots) | $5.00 | Pro $20, credited | **≈ $1,284** |
| 3 Cloud Agents (**can't do 4/8**; nearest Pro 4 vCPU/4 GB) | CPU $733.33 + RAM 4×0.069444×8800 = $2,444.43 | Disk while asleep: price unstated | $5.00 | Pro, credited | **≈ $3,183** (only if slept outside the 8 h, and only 25 creations/user/day) |
| 6 Committed spend $5k (for Enterprise limits) | same as 1 | | | max($5,000, usage) | ≈ $5,627 (commit fully absorbed) |
| 4/5a Free VM / Trial / Free | Not possible: 2/2 max, 10 concurrent | | | | n/a |
| 12 Legacy GCP (historical) | as 2 | volumes at $0.25 = $12.50 | $10.00 | | ≈ $1,294 (no longer offered) |
