On Runtime, one reservation covers every sandbox in the account, on every port. It costs $5 per 30-day month, prorated to funded time. A dedicated IPv6 address is included. (pricing checked 25 October 2026, network products). No NAT gateway to build and no proxy to run. A database, an API provider or a firewall can allow only your account. No other account sends from the address while you hold it.
Reserve it
Terminalruntime ips reserve# 203.0.113.50runtime ips reserve --ipv6TypeScriptimport { Runtime } from "withruntime";const runtime = new Runtime();const ip = await runtime.ips.reserve();console.log(ip.address, ip.funded, ip.fundedUntil);Pythonfrom withruntime import Runtimeruntime = Runtime()ip = runtime.ips.reserve()print(ip["address"], ip["funded"], ip["fundedUntil"])An MCP agent uses runtime_ips with reserve, list and release. Add the
address to your provider's allow-list. Then check it from a sandbox:
Terminalruntime sandboxes run -- curl -sS https://api.ipify.orgWhat it costs and what you get
| Item | Detail |
|---|---|
| Dedicated IPv4 | $5 per 30-day month, prorated to funded time |
| Dedicated IPv6 | Included, with --ipv6 |
| How many | One IPv4 and one IPv6 per account |
| Which sandboxes use it | Every sandbox in the account, on every port |
| Rate | Fixed in the reservation's quote; rateMicros and rateUnit show it |
| Who else sends from it | Nobody, while you hold it |
| After release | It rests for 30 days before any other account can have it |
Funding, and what happens when it lapses
funded shows whether traffic is paid for now. fundedUntil is the last
funded time. It can be in the past. It is null when no meter exists.
If funding expires, because the balance ran out or a key's daily limit blocks the renewal, traffic from your sandboxes stops. The reservation stays yours. Runtime never falls back to a shared address. A partner's firewall never sees you from an address it did not approve. Runtime never charges for the unpaid interval. When renewal is blocked, check the balance, the spending limits, and the key's permissions.
Mistakes and how Runtime handles them
- Releasing before updating allow-lists.
runtime ips release <addressId>sends your sandboxes back to the shared addresses immediately. Remove the address from partners' allow-lists first. The address then rests for 30 days before another account can be given it. - Expecting one address per sandbox. The address belongs to the account, so every sandbox shares it, no matter which key or agent created the sandbox.
- An account without credit. Runtime returns
payment_required(402) until the account adds credit. - None free. Addresses are added as accounts need them. If none is free,
Runtime returns
no_capacity(503). Contact support (errors). - Treating the address as a secret. An allow-list limits who can connect. The service still needs its own password or key. Store that key as a secret the sandbox never sees.
Allow-lists in both directions
A dedicated address controls how the outside world sees your sandboxes. The sandbox's own network rules control where they may connect. Used together, a sandbox can reach only your partner's API, and the partner accepts connections only from your address.
For traffic that must not cross the internet at all, use a WireGuard tunnel instead. It joins your own network to your sandboxes, at the same $5 per 30-day month.
Related
- Dedicated outbound addresses in the networking guide.
- Pricing: what a sandbox costs to run.
- Egress control.
Facts on this page were checked on 26 October 2026.