
Vercel Deployment, Regions & Data Residency 2026
Vercel runs 20 AWS-backed compute regions behind 126+ CDN points in 51 countries. Compute can sit in the EU, but persistent EU data residency it does not offer.
Vercel Deployment & Regions verdict
Vercel runs on two layers.
A network of 126+ CDN points across 51 countries terminates connections, then routes over a private backbone to the nearest compute region. There are 20 of those regions, each mapped to an AWS region.
Two limits decide the plan. Hard EU data residency is not possible here, so if that is a requirement, the data belongs somewhere other than Vercel. Cross-region function failover is Enterprise-only too. Otherwise the tuning is ordinary. Pin each function to the region nearest its database to cut latency, and for EU compute reach for cdg1 in Paris or fra1 in Frankfurt. AZ-level failover already runs on every plan. Move to Enterprise once you need every region at once, or failover across them.
- Vercel offers no EU-only persistent data residency. EU caching is ephemeral, so teams with hard EU requirements cannot meet them on the current architecture.
- Hobby runs in a single region with no multi-region failover. Routing Middleware still deploys to all 20 regions regardless of that setting.
- Cross-region failover through functionFailoverRegions is Enterprise-only, and every one of the 20 regions is AWS-based. Pro handles failover at the application level instead.
- Compute regions
- 20
- CDN PoPs
- 126+
- Countries
- 51
- EU compute regions
- 5
- EU persistent residency
- No
This page covers where Vercel deploys and how it handles regions. Performance benchmarks and pricing live on their own pages.
Pick your Vercel region and deployment
20 regions across 7 continents · nearest failover cle1 · residency: cdg1, fra1, lhr1 +2
Full vercel.json: pin functions to iad1 with automatic failover to cle1 (Enterprise).
{
"regions": ["iad1"],
"functions": {
"app/api/**/*.ts": {
"regions": ["iad1"],
"functionFailoverRegions": ["cle1"]
}
}
}functionFailoverRegions needs an Enterprise plan; Pro deploys to up to 5 regions without automatic failover. Config keys are from vercel.com/docs project configuration.
Real Vercel regions and deployment commands. Confirm residency guarantees against your contract.
Deploy Vercel: configuration and API
Commit this vercel.json to your repo root. regions sets the default deploy region; the functions block configures per-function runtime, memory (MB), max duration (s) and functionFailoverRegions for automatic failover (Enterprise); crons schedules Serverless Functions. Vercel applies it on every deploy.
{
"regions": ["iad1"],
"functions": {
"app/api/**/*.ts": {
"runtime": "nodejs20.x",
"memory": 1769,
"maxDuration": 60,
"regions": ["iad1"],
"functionFailoverRegions": ["cle1"]
}
},
"crons": [
{ "path": "/api/cron/revalidate", "schedule": "0 * * * *" }
]
}Create a deployment from your own backend or CI with a Bearer token (name is the only required field). gitSource picks the commit and serverlessFunctionRegion sets where functions run. On Pro, deploying functions to more regions than the plan allows returns HTTP 402 until you upgrade to Enterprise.
'use server';
export async function createDeployment() {
const response = await fetch(
'https://api.vercel.com/v13/deployments?teamId=YOUR_TEAM_ID',
{
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.VERCEL_ACCESS_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'my-app',
project: 'my-deployment-project',
target: 'production',
gitSource: {
type: 'github',
repoId: 123456,
ref: 'main',
sha: 'dc36199b2234c6586ebe05ec94078a895c707e29',
},
projectSettings: {
framework: 'nextjs',
buildCommand: 'next build',
installCommand: 'pnpm install',
nodeVersion: '20.x',
serverlessFunctionRegion: 'iad1',
},
}),
},
);
if (!response.ok) throw new Error(`Deploy failed: ${response.status}`);
return response.json();
}The same call from a shell or CI step. Export VERCEL_ACCESS_TOKEN first and replace YOUR_TEAM_ID with your team slug or id.
curl -X POST "https://api.vercel.com/v13/deployments?teamId=YOUR_TEAM_ID" \
-H "Authorization: Bearer $VERCEL_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "my-app",
"target": "production",
"gitSource": { "type": "github", "repoId": 123456, "ref": "main" },
"projectSettings": { "framework": "nextjs", "serverlessFunctionRegion": "iad1" }
}'Vercel regions and locations
| Region code | AWS zone | Location | Default |
|---|---|---|---|
| iad1 | us-east-1 | Washington, D.C., USA | Yes |
| cle1 | us-east-2 | Cleveland, USA | No |
| sfo1 | us-west-1 | San Francisco, USA | No |
| pdx1 | us-west-2 | Portland, USA | No |
| yul1 | ca-central-1 | Montreal, Canada | No |
| gru1 | sa-east-1 | Sao Paulo, Brazil | No |
| cdg1 | eu-west-3 | Paris, France | No |
| fra1 | eu-central-1 | Frankfurt, Germany | No |
| lhr1 | eu-west-2 | London, United Kingdom | No |
| dub1 | eu-west-1 | Dublin, Ireland | No |
| arn1 | eu-north-1 | Stockholm, Sweden | No |
| dxb1 | me-central-1 | Dubai, UAE | No |
| bom1 | ap-south-1 | Mumbai, India | No |
| sin1 | ap-southeast-1 | Singapore | No |
| hkg1 | ap-east-1 | Hong Kong | No |
| hnd1 | ap-northeast-1 | Tokyo, Japan | No |
| kix1 | ap-northeast-3 | Osaka, Japan | No |
| icn1 | ap-northeast-2 | Seoul, South Korea | No |
| syd1 | ap-southeast-2 | Sydney, Australia | No |
| cpt1 | af-south-1 | Cape Town, South Africa | No |
Region reach and failover by plan
| Plan / scope | Region reach | Failover | Config |
|---|---|---|---|
| Hobby | 1 region | AZ failover within region only | Dashboard or vercel.json regions[] |
| Pro | Up to 5 regions | AZ failover; no automatic multi-region | Dashboard, vercel.json, --regions CLI flag |
| Enterprise | All 20 regions | Automatic multi-region + AZ failover | functionFailoverRegions, up to 4 targets |
| Per-function override | Any allowed region | Depends on plan | functions property in vercel.json |
| Routing Middleware | All 20 regions | Deployed everywhere by default | Auto-deployed by Vercel |
| Failover order | Next-closest region | Order of functionFailoverRegions does not matter | Automatic |
Data residency and storage
| Data type | EU storage | Notes |
|---|---|---|
| Persistent platform data | Not stored in EU permanently | Azure CosmosDB globally replicated; no EU-only residency option |
| Static / function-response cache | Ephemeral in EU PoPs | CDN cache only, not persistent storage |
| Function execution | EU if region is EU | Pin to cdg1 / fra1 / lhr1 / dub1 / arn1 for EU compute |
| Infrastructure layer | AWS + Azure CosmosDB | Platform primarily on AWS; CosmosDB for global replication |
| Encryption at rest | AES-256 platform-wide | All data encrypted regardless of region |
| Backups | Every 2 hours, 30-day retention | Platform-wide cadence |
What to verify before you commit to Vercel
- Vercel offers no EU-only persistent data residency; EU caching is ephemeral, so strict GDPR data-residency of persistent user data must live in EU storage outside Vercel's core platform
- Hobby is restricted to a single function region with no multi-region failover, though Routing Middleware still deploys globally
- Automatic multi-region failover (functionFailoverRegions) is Enterprise-only; Pro teams get multi-region deployment but must handle failover at the application level
- All 20 compute regions are AWS-based, so a wide-scale AWS regional outage can affect multiple Vercel regions sharing the same underlying AZ cluster
Vercel Deployment & Regions FAQ
How many regions and PoPs does Vercel operate?
20 compute regions, each mapped to an AWS region, sit behind 126+ CDN points of presence across 51 countries. The points of presence terminate incoming TCP connections and route to the nearest compute region over a private backbone. Coverage runs from the Americas through Europe and the Middle East into Asia, with points in Oceania and Africa too.
What is the default function region and how do I change it?
New projects start in iad1, which is Washington DC on AWS us-east-1, because many external data sources sit on the US East Coast. You can change it three ways. Set it in Project Settings under Functions, add a regions key to vercel.json such as {"regions": ["fra1"]}, or pass --regions on the Vercel CLI. Pro allows up to 5 regions and Enterprise all 20, with per-function overrides.
Does Vercel support EU data residency for GDPR?
Function code can run in the EU. Compute is available in cdg1 in Paris, fra1 in Frankfurt, lhr1 in London, dub1 in Dublin and arn1 in Stockholm. The catch is persistence. Vercel does not permanently store platform data inside EU regions, and its EU caching is ephemeral. Strict GDPR residency of user data therefore means keeping it in EU storage outside Vercel's core platform.
How does Vercel handle regional failover for functions?
AZ-level failover is automatic on every plan. If one availability zone fails, traffic moves to another zone in the same region. Cross-region failover is a separate feature called functionFailoverRegions, and it is Enterprise-only. It accepts up to 4 fallback regions, and during a failover Vercel routes to the next-closest region rather than following the order you listed.
Can I deploy functions to multiple regions on Pro?
Pro teams can deploy to up to 5 regions at once. Enterprise can use all 20, and Hobby is locked to one. Asking for more regions than your plan allows fails before the build even starts. Routing Middleware is the exception. It deploys to all 20 regions automatically on every plan, whatever your function-region settings say.
Sources & verification
| Source | What was checked | Last checked |
|---|---|---|
| Vercel Official | Official product page | July 10, 2026 |
| Vercel Configuring Functions Region | Region configuration | July 10, 2026 |
| Vercel Deployments Create A New Deployment | Deployments Create A New Deployment | July 10, 2026 |
| Vercel Project Configuration | Project Configuration | July 10, 2026 |
| Vercel Regions | Regions and residency | July 10, 2026 |
| Vercel Security | Security and compliance | July 10, 2026 |
Every fact on this Vercel 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 Vercel
Every page on Vercel 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
