
Netlify Deployment, Regions & Data Residency 2026
Netlify runs functions in 12 self-serve regions plus 2 EU by request, with Edge Functions on Deno. Each function runs in one region; region choice needs Pro.
Netlify Deployment & Regions verdict
Netlify runs serverless functions in 12 self-serve AWS regions, plus 2 support-assisted EU regions in Paris and Milan.
With Edge Functions on Deno's global network. New sites default to cmh in Ohio.
Pin each function to the self-serve region nearest its database, and reach for dub, lhr or fra for EU residency, requesting cdg or mxp from support if you need Paris or Milan. One thing Netlify will not do for you is cross-region failover, so design that into the app rather than relying on the platform. Keep regulated PHI off Edge Functions, which fall outside HIPAA hosting.
- Free and Starter sites are locked to cmh in Ohio. Choosing a function region requires Pro or Enterprise.
- Functions run in exactly one region with no automatic cross-region failover, so cross-region HA is your responsibility. The Paris and Milan EU regions are support-assisted only, not self-serve.
- Edge Functions run on Deno's global network, not the AWS function regions, and are excluded from HIPAA-compliant hosting.
- Self-serve regions
- 12
- Support-assisted EU
- 2
- Default region
- cmh (Ohio)
- Regions per function
- 1
- Auto failover
- None
This page covers where Netlify functions run and how residency works. Performance and pricing live on their own pages.
Pick your Netlify region and deployment
14 regions across 5 continents · nearest failover iad · residency: dub, lhr, fra +2
Pin a function to cmh in netlify.toml (Pro/Enterprise); each function runs in exactly one region.
[functions."process-orders"]
region = "cmh"
memory = "2gb"
[functions]
directory = "netlify/functions"
node_bundler = "esbuild"Netlify runs each function in exactly one region with no automatic cross-region failover; the nearest region above is a redundancy hint you implement, not platform failover. Region selection needs Pro or Enterprise.
Real Netlify regions and deployment commands. Confirm residency guarantees against your contract.
Deploy Netlify: configuration and CLI
Commit netlify.toml to your repo root. [build] is global across deploy contexts; [functions] sets the functions directory and bundler; a per-function [functions."name"] block pins its region (Pro/Enterprise) and memory; [[redirects]] and [[headers]] are global; [[edge_functions]] maps an edge function to a path.
[build]
command = "next build"
publish = ".next"
[build.environment]
NODE_VERSION = "20"
[functions]
directory = "netlify/functions"
node_bundler = "esbuild"
# Pin a single function near its database (Pro/Enterprise only).
[functions."process-orders"]
region = "dub"
memory = "2gb"
[[edge_functions]]
path = "/personalize/*"
function = "personalize"
[[redirects]]
from = "/api/*"
to = "https://api.example.com/:splat"
status = 200
force = true
[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
Content-Security-Policy = "frame-ancestors 'none'"
[context.deploy-preview]
command = "next build"Install and authenticate the CLI, link the repo, then deploy. `netlify deploy` ships to a draft URL for review; add `--prod` to publish to the live site. Set function-scoped environment variables per deploy context without committing secrets.
# Install and authenticate
npm install -g netlify-cli
netlify login
# Link the local repo to a Netlify site (continuous deployment)
netlify init
# Build locally and deploy a draft for review
netlify build
netlify deploy --dir=.next --functions=netlify/functions
# Publish to the live production URL
netlify deploy --prod
# Function-scoped env var, production context only (kept out of source)
netlify env:set API_KEY s3cr3t --scope functions --context productionOverride the site-level region per function in code. Functions run in exactly one region with no automatic geo-routing, so place data-bound functions near their database; an Edge Function exports a config with the path it should run on, executing at the location closest to each user.
// netlify/functions/process-orders.mts (Serverless Function)
import type { Config } from '@netlify/functions';
export default async (req: Request) => {
// ...handler logic close to the EU database
return new Response('ok');
};
// Run this one function in Dublin (overrides the site UI region).
export const config: Config = {
path: '/api/orders',
region: 'dub',
};
// netlify/edge-functions/personalize.ts (Edge Function, Deno runtime)
import type { Config } from '@netlify/edge-functions';
export default async () => new Response('hi from the edge');
export const config: Config = { path: '/personalize/*', cache: 'manual' };Function regions and locations
| Region code | Location | Availability | Default |
|---|---|---|---|
| cmh | US East (Ohio) | Self-serve | Yes |
| iad | US East (N. Virginia) | Self-serve | No |
| pdx | US West (Oregon) | Self-serve | No |
| sfo | US West (N. California) | Self-serve | No |
| yul | Canada (Central) | Self-serve | No |
| gru | South America (Sao Paulo) | Self-serve | No |
| dub | EU (Ireland) | Self-serve | No |
| lhr | EU (London) | Self-serve | No |
| fra | EU (Frankfurt) | Self-serve | No |
| nrt | Asia Pacific (Tokyo) | Self-serve | No |
| sin | Asia Pacific (Singapore) | Self-serve | No |
| syd | Asia Pacific (Sydney) | Self-serve | No |
| cdg | EU (Paris) | Support-assisted | No |
| mxp | EU (Milan) | Support-assisted | No |
Region reach by plan
| Plan / scope | Region reach | Failover | Config |
|---|---|---|---|
| Free / Starter | cmh (Ohio) only | None (single region) | Default; region change not available |
| Pro | 12 self-serve regions | None automatic | Site UI or per-function in code |
| Enterprise | 12 self-serve + cdg, mxp | None automatic | Support-assisted for cdg/mxp; credit-based memory/vCPU |
| Per-function override | Any allowed region | Place near the relevant datastore | config.region in function code |
| Single-region functions | Exactly one region | No same-function geo-routing | Architectural constraint |
| Edge Functions | Deno global network | Runs at closest location | Deployed everywhere by default |
Netlify data residency and compliance
| Data type / control | EU / residency option | Notes |
|---|---|---|
| Function execution | dub, lhr, fra, cdg, mxp | Pin per function for in-region processing |
| Edge Functions | Deno global network | Not supported under HIPAA-compliant hosting |
| Compliance audits | SOC 2 Type 2, ISO 27001/27018, PCI DSS v4 | Plus HIPAA, GDPR, CCPA |
| Transfer framework | EU-US DPF + Swiss-US DPF | Certified for transatlantic data transfer |
| Data Processing Agreement | Incorporated by reference | Downloadable; part of terms and conditions |
What to verify before you commit to Netlify
- Free and Starter sites cannot choose a function region, they are locked to cmh (Ohio); region selection needs a Pro or Enterprise plan
- Each function runs in exactly one region with no automatic cross-region failover, so high availability across regions must be handled in your architecture, not by the platform
- Edge Functions are explicitly not part of Netlify's HIPAA-compliant hosting offering, so regulated PHI workloads cannot use them
- The Paris (cdg) and Milan (mxp) EU regions are support-assisted only, not self-serve, so plan lead time if you need them for residency
Netlify Deployment & Regions FAQ
Which regions can Netlify functions run in?
Twelve self-serve regions. cmh in Ohio is the default. The others are iad, pdx, sfo, yul, gru, dub, lhr, fra, nrt, sin, syd, mapping to the US, Canada, Sao Paulo and the main EU and APAC cities. Two more, cdg in Paris and mxp in Milan, come through support-assisted setup. Edge Functions run separately on Deno's global network.
Can I change a function's region, and on which plan?
Region selection requires a Pro or Enterprise plan, since Free and Starter sites are locked to cmh in Ohio. You set the region at the site level in the UI, or override it per function in code through the function's config.region. Each function runs in exactly one region, so place data-bound functions near their database.
Does Netlify support EU data residency for GDPR?
Yes. Pin functions to dub in Ireland, lhr in London or fra in Frankfurt self-serve, or request cdg in Paris or mxp in Milan from support. Netlify commits to GDPR and CCPA, provides a downloadable DPA in its terms, and holds EU-US and Swiss-US Data Privacy Framework certification. Edge Functions, though, are not covered by HIPAA-compliant hosting.
How does Netlify handle regional failover?
It doesn't, automatically. Each function runs in exactly one region, and the same function cannot deploy to several regions for geo-routing, so cross-region high availability has to be designed into your application. The CDN layer and Edge Functions are globally distributed, but serverless function execution stays single-region.
How do I deploy and pin a region with Netlify?
Configure builds, redirects, headers, per-function regions in netlify.toml, for example [functions."name"] region = "dub". Then deploy with the Netlify CLI: netlify deploy for a draft URL, netlify deploy --prod to publish. You can also override a region in function code with export const config = { region: 'dub' }.
Sources & verification
| Source | What was checked | Last checked |
|---|---|---|
| Netlify Official | Official product page | July 10, 2026 |
| Netlify Developer docs | Configure Builds File Based Configuration | July 10, 2026 |
| Netlify Developer docs | CLI Guides Get Started With CLI | July 10, 2026 |
| Netlify Developer docs | Functions Configuration | July 10, 2026 |
| Netlify Developer docs | Edge Functions Overview | July 10, 2026 |
| Netlify Developer docs | Limits and quotas | July 10, 2026 |
| Netlify Gdpr Ccpa | GDPR Ccpa | July 10, 2026 |
Every fact on this Netlify page is tied to a named source and a verification date. Freshness-sensitive figures trace to the sources above; verify against the vendor before relying on them.
Explore Netlify
Every page on Netlify in one place, you are on regions & deployment.
Snapshot, score and verdict
You are here
Latency, throughput, uptime and behaviour under scale
Every tier and the entry price
Compared and ranked vs peers
Price and feature change history
Browse the full Cloud Hosting category
