RunPod pod billing

Does a stopped RunPod pod still cost money?

Yes, a stopped RunPod pod still costs money if you have storage attached to it. The second you stop a pod, compute billing drops to zero because RunPod releases the GPU back to the host, but volume disk pricing jumps from $0.10/GB/month when running to $0.20/GB/month while stopped.

If you attached a network volume to that pod, that storage continues billing at its standard $0.07/GB/month rate (or $0.05/GB/month once you pass 1 TB). Unless you terminate the pod outright, a stopped instance keeps drawing down your account balance every second.

How RunPod bills a stopped pod vs a running pod

RunPod Pods are billed by the second for compute and storage, with no fees for data ingress or egress. When an instance is actively running, you pay for the GPU and CPU compute, plus each gigabyte of storage allocated to the container disk and the volume disk.

The moment you click stop, RunPod releases the GPU. Compute charges end immediately. However, Pods offer four storage types optimized for different use cases: container disk, volume disk, network volume, and global volume. Each behaves differently when the instance stops.

Container storage is completely wiped on stop, so RunPod does not charge for it while stopped. Volume storage at /workspace stays intact on the host machine so you can pick up where you left off, but RunPod charges twice as much per gigabyte to hold that space on an idle machine. If the host machine itself becomes unavailable, RunPod does not charge you for storage during that downtime.

Network volumes are billed hourly rather than per-second. They sit on network storage independent of any single host, billing the exact same rate whether attached to ten running pods, one stopped pod, or zero pods.

Storage TypeRunning PriceStopped PriceBilling CadenceData on StopData on Terminate
Container disk$0.10/GB/monthNot chargedPer-secondLostLost
Volume disk$0.10/GB/month$0.20/GB/monthPer-secondPreservedLost
Network volume (< 1 TB)$0.07/GB/month$0.07/GB/monthHourlyPreservedPreserved
Network volume (beyond 1 TB)$0.05/GB/month$0.05/GB/monthHourlyPreservedPreserved
Global volume (beta)$0.09/GB/month + IOPS$0.09/GB/month + IOPSUsage-basedPreservedPreserved

If you are comparing cloud providers for batch workloads, you might also want to check How does Vast.ai billing work, and do stopped instances still cost money? to see how host storage handling differs.

Volume disk vs container disk when stopped

Every standard pod comes with two local disk allocations: a container disk and a volume disk. Mixing up where your files live will either wipe your work or inflate your bill.

The container disk is created when a pod launches and is cleared when the pod stops. It holds your operating system environment, root packages, and transient files. Because it is completely erased on every stop or reboot, RunPod does not charge for container disk space while the pod is stopped. You can resize a container disk later through the console if you run short on OS space.

The volume disk mounts by default at /workspace. Data stored in the /workspace directory survives pod stops and restarts, but is deleted when the pod is terminated. To reserve that physical storage on the host while your pod sits idle, RunPod doubles the rate from $0.10/GB/month to $0.20/GB/month.

There is an operational catch here: volume disk size can only be increased, not decreased. If you provision a 200 GB volume disk for a fast fine-tuning job and leave it stopped for a month, you are locked into paying for 200 GB at the stopped rate until you delete the instance.

You can also enable volume disk encryption during pod creation by selecting the Encrypt volume checkbox. This encryption applies only to the volume disk; container disks and network volumes cannot be encrypted.

If you need to change your disk allocation in the Web UI:

  1. Go to the Pods page.
  2. Click the three dots next to your pod and select Edit Pod.
  3. Adjust the disk size and click Save.

Be careful doing this on an active workload. Editing a running pod resets it completely, erasing all data not stored in /workspace or a network volume.

Stopping vs terminating a pod

The difference between stopping and terminating comes down to whether you want to save your environment or stop the billing meter entirely.

# Stop a pod via CLI
runpodctl pod stop $RUNPOD_POD_ID

# Terminate a pod via CLI
runpodctl pod delete $RUNPOD_POD_ID

Stopping a pod releases the GPU and preserves data in /workspace, while container disk data is cleared. You can stop a pod in the Web UI by expanding the pod row on the Pods page and clicking the Stop button (the square icon). If you are automating things via the REST API, send a POST request to https://api.runpod.io/v2/pods/$RUNPOD_POD_ID/action with a JSON payload of {"action":"stop"}.

Starting a stopped pod back up introduces a capacity risk. When resuming a stopped pod, you may be allocated zero GPUs if host capacity has changed in the meantime. If you use the REST API, the start action does not offer a zero-GPU start; it simply fails with a 400 status code and an error stating there are not enough free GPUs on the host.

If you just need to reload a stuck process or PID 1, do not stop the pod. Restart it instead. Restarting a pod reboots the running container on the same machine while keeping its GPU, so restarting cannot leave you with zero GPUs.

Terminating a pod permanently deletes all data not stored in a network volume. Compute billing stops, volume disk billing stops, and local host storage is released. To terminate in the console, stop the pod if it is running, click Terminate (the trash icon), and confirm. Via the REST API, issue a DELETE request to https://api.runpod.io/v2/pods/$RUNPOD_POD_ID. For a broader breakdown of how these lifecycle states feed into hourly costs, see How does RunPod pricing work for Pods and Serverless?.

What happens when your RunPod balance runs out?

RunPod requires you to have at least one hour of credits for your selected configuration before you can deploy an on-demand pod instance. Accounts also have a default spend limit of $80/hour across all resources, which you can raise by contacting support. RunPod Savings plans are deprecated and can no longer be purchased; existing plans remain active until expiration, but they cover GPU compute costs only while storage is billed at standard rates.

Because stopped pods still bill for /workspace volume disks every second, a stopped pod will gradually drain a prepaid balance down to $0.

What happens next depends entirely on your storage setup:

  • Pods with a network volume are stopped and their data is preserved.
  • Pods without a network volume are automatically terminated, and their data cannot be recovered.

If you rely on a local volume disk and your balance hits zero, your pod is terminated on the spot. Your entire /workspace directory is wiped immediately. If you plan to leave pods idle, keeping a buffer in your account or decoupling your data onto network storage is the only way to prevent unrecoverable data loss.

Network volumes and global volumes for persistent storage

If you want data to survive pod termination, use network storage. RunPod provides two options: Network volumes and Global volumes.

Network volumes exist independently from any individual pod. You can attach a network volume to multiple pods, transfer it between machines, and retain your data even after deleting a pod. They cost $0.07/GB/month for the first 1 TB and $0.05/GB/month beyond 1 TB, billed hourly whether pods are running or stopped.

There are two setup rules to remember:

  • Network volumes must be attached during pod creation and cannot be detached later.
  • When attached, the network volume replaces the standard volume disk at /workspace.

Global volumes are currently in beta. They cost $0.09/GB/month plus IOPS fees. Unlike network volumes, global volume capacity grows automatically with the data you store, so there is no fixed capacity to provision upfront, and the volume persists when a pod is stopped or deleted.

A single pod supports one Global volume and one Network volume at a time. When both use their default mount paths, the network volume mounts at /workspace and the global volume mounts at /workspace-global.

Tracking RunPod storage spend with Costbrake

It is easy to stop a GPU pod on Friday, assume the billing has stopped, and discover on Monday that an oversized volume disk burned through thirty dollars of credit.

Costbrake watches what you spend across 23 cloud, AI and SaaS providers, including RunPod, AWS, Vast.ai, and fal.ai. It checks RunPod billing hourly on the Free plan and every 5 minutes on Pro and Team. RunPod reports these dollars itself per pod and serverless endpoint in hourly buckets that update every few minutes.

When spending diverges from normal patterns, Costbrake sends alerts:

  • Spike alerts when an hour costs more than 3x the 7-day baseline and at least $5 over normal.
  • Budget alerts at 50%, 80%, and 100% of your configured thresholds.
  • Forecast alerts when month-to-date spend plus the pace of the last 72 hours will exceed your monthly budget.
  • New-charge alerts when a service first shows up this month above $1.

Alerts go to email on the Free plan, with Slack, Discord, and signed webhooks available on Pro ($12/month or $120/year), and PagerDuty on Team ($39/month).

Costbrake also includes an opt-in, manual killswitch called brakes. A brake never runs automatically; an admin must click and confirm it in the dashboard. For RunPod, Costbrake offers two brakes: stopping a pod (which releases the GPU, wipes the container disk, and drops compute fees while keeping the volume disk) and scaling a serverless endpoint to zero workers. Costbrake never terminates pods or deletes storage volumes.

You can set up monitoring via read-only credentials at app.costbrake.com/signin or hand the task off to an AI coding agent using the instructions at agent setup. Stored keys are encrypted with AES-256-GCM, and the read-only key only reads your billing history and account ID. If you decide to enable brakes later, Costbrake uses a separate, elevated key. You can read more about setting up emergency controls in What is a cloud killswitch, and should I have one?, or review tier limits on Costbrake pricing.

Questions and answers

Does RunPod charge for container disks when a pod is stopped?

No. The container disk is wiped as soon as a pod stops or reboots, so RunPod only charges the $0.10/GB/month container disk rate while the pod is actively running.

Why does volume storage cost more when a pod is stopped?

Volume disk storage costs $0.10/GB/month while running and $0.20/GB/month while stopped. RunPod charges this higher rate because your files hold reserved physical disk space on the host machine while your pod is not generating compute revenue.

Can I downsize a volume disk to save money while stopped?

No. RunPod allows you to increase volume disk capacity, but volume disk size cannot be decreased. If you need a smaller disk, you must deploy a new pod with lower storage and migrate your files.

Will restarting my RunPod pod risk losing my GPU?

No. Restarting reboots the container on the same physical host and retains the GPU. Only stopping and starting risks losing your GPU allocation if host capacity fills up while the pod is offline.

What happens to my data if my RunPod credits reach zero while stopped?

If your pod relies on a local volume disk, RunPod automatically terminates the pod and permanently wipes your data. If your pod is attached to a network volume, RunPod stops the pod and keeps your network volume data intact.

Sources

Updated