Outbound IP addresses TrueFoundry uses when it connects to your systems — model endpoints, MCP servers, webhooks, databases, or private APIs. Allowlist them if you restrict inbound access to those systems.
These files are meant for automation. Build your allowlist from them rather than copying addresses by hand. See Connect Private Models and MCP Servers in the TrueFoundry docs for the full guide.
Important
These addresses are shared by every tenant on a control plane. An IP allowlist proves a request came from TrueFoundry, not that it came from your tenant. Keep authentication — an API key, OAuth, or mTLS — on any endpoint you allowlist.
Each control plane has its own list. Use the one that matches your tenant URL:
| Your tenant URL | Control plane | Gateways | Always-latest list |
|---|---|---|---|
<tenant>.truefoundry.cloud |
Global, hosted in Europe (Ireland) | Worldwide | https://truefoundry.github.io/ip-ranges/global.json |
<tenant>.us.truefoundry.cloud |
US | US | https://truefoundry.github.io/ip-ranges/us.json |
The source files are global/ip-ranges.json and us/ip-ranges.json.
Note
The US control plane is being rolled out. us.json currently lists only the control plane. US gateway addresses will be added through releases as they come online, following the 15-day notice.
Replace .json with .txt for one CIDR per line. Each GitHub Release attaches the same lists, so you can pin a version: https://github.com/truefoundry/ip-ranges/releases/download/v2026.10.12/global.json.
Each list has one entry per hostname. nat_ips is every address TrueFoundry can send traffic from for that hostname.
{
"sync_token": "4d074f6e6d95f47e",
"endpoints": [
{
"type": "control_plane",
"hostname": "*.truefoundry.cloud",
"nat_ips": ["203.0.113.10/32"]
},
{
"type": "gateway",
"hostname": "us.gateway.truefoundry.ai",
"nat_ips": ["52.4.51.133/32", "54.204.114.10/32"]
},
{
"type": "gateway",
"airport_code": "orf",
"hostname": "orf.gateway.truefoundry.ai",
"nat_ips": ["52.4.51.133/32", "54.204.114.10/32"]
}
]
}Allowlist two entries:
- The
control_planeentry. The control plane also connects to your services. - The
gatewayentry for the gateway endpoint your tenant sends traffic through:
| Your tenant's gateway endpoint | Gateway entry to allowlist |
|---|---|
gateway.truefoundry.ai (the default) |
gateway.truefoundry.ai, which contains every regional gateway |
| A multi-regional endpoint | That region's hostname below, which already includes its fallback locations |
| Hostname | Gateway locations included |
|---|---|
gateway.truefoundry.ai |
Every regional gateway |
us.gateway.truefoundry.ai |
North Virginia, San Francisco, Dallas, and Toronto |
eu.gateway.truefoundry.ai |
London, Madrid, Gavle, and Doha |
sa.gateway.truefoundry.ai |
Sao Paulo |
au.gateway.truefoundry.ai |
Sydney, Melbourne, and Singapore |
as.gateway.truefoundry.ai |
Mumbai, Singapore, Doha, and Melbourne |
If you pinned a single location such as orf.gateway.truefoundry.ai, use the entry with that airport_code. Cape Town (cpt) is not part of any multi-regional endpoint, so it is only covered by gateway.truefoundry.ai and cpt.gateway.truefoundry.ai.
The gateway endpoint is configured per tenant. See globally distributed SaaS gateway for the locations and how to change it.
# Global control plane, US multi-regional gateway endpoint.
# Use gw=gateway.truefoundry.ai for the default global endpoint,
# and us.json if your tenant is on the US control plane.
curl -s https://truefoundry.github.io/ip-ranges/global.json \
| jq -r --arg gw us.gateway.truefoundry.ai \
'.endpoints[] | select(.type == "control_plane" or .hostname == $gw) | .nat_ips[]' \
| sort -uWarning
TrueFoundry does not notify customers individually when these addresses change. Keeping your allowlist current is your responsibility. Subscribe to releases and automate your allowlist so changes are picked up.
Every change is published as a GitHub Release, and the always-latest lists update with it.
- A new address is announced in a release and starts carrying traffic 15 days after that release. Allowlist it during those 15 days. The lists include it from the release that announces it.
- When an address is removed, a new release is published. Drop it from your allowlist after that release.
To be notified, choose Watch → Custom → Releases on this repository, or subscribe to:
https://github.com/truefoundry/ip-ranges/releases.atom
Run the allowlist command on a schedule — daily is plenty given the 15-day notice — and apply the result to your firewall, security group, or WAF.
Each JSON file has a top-level sync_token, which is also in the .txt header. It is a hash of the endpoint list and changes only when an address or hostname changes. Compare it with the last value you applied to skip work when nothing has changed.
Something wrong or missing? Open an issue or contact TrueFoundry support. For anything security-sensitive, email security@truefoundry.com.