Vercel deployment & regions
★★★★★ 4.6 CE

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

Verified today·6 sources checked

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.

How to pick your regions

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.

Honest limits
  • 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
View sources

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

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.

vercel.jsonjson
{
  "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.

REST API (TypeScript)typescript
'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.

cURLbash
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 codeAWS zoneLocationDefault
iad1us-east-1Washington, D.C., USAYes
cle1us-east-2Cleveland, USANo
sfo1us-west-1San Francisco, USANo
pdx1us-west-2Portland, USANo
yul1ca-central-1Montreal, CanadaNo
gru1sa-east-1Sao Paulo, BrazilNo
cdg1eu-west-3Paris, FranceNo
fra1eu-central-1Frankfurt, GermanyNo
lhr1eu-west-2London, United KingdomNo
dub1eu-west-1Dublin, IrelandNo
arn1eu-north-1Stockholm, SwedenNo
dxb1me-central-1Dubai, UAENo
bom1ap-south-1Mumbai, IndiaNo
sin1ap-southeast-1SingaporeNo
hkg1ap-east-1Hong KongNo
hnd1ap-northeast-1Tokyo, JapanNo
kix1ap-northeast-3Osaka, JapanNo
icn1ap-northeast-2Seoul, South KoreaNo
syd1ap-southeast-2Sydney, AustraliaNo
cpt1af-south-1Cape Town, South AfricaNo

Region reach and failover by plan

Plan / scopeRegion reachFailoverConfig
Hobby1 regionAZ failover within region onlyDashboard or vercel.json regions[]
ProUp to 5 regionsAZ failover; no automatic multi-regionDashboard, vercel.json, --regions CLI flag
EnterpriseAll 20 regionsAutomatic multi-region + AZ failoverfunctionFailoverRegions, up to 4 targets
Per-function overrideAny allowed regionDepends on planfunctions property in vercel.json
Routing MiddlewareAll 20 regionsDeployed everywhere by defaultAuto-deployed by Vercel
Failover orderNext-closest regionOrder of functionFailoverRegions does not matterAutomatic

Data residency and storage

Data typeEU storageNotes
Persistent platform dataNot stored in EU permanentlyAzure CosmosDB globally replicated; no EU-only residency option
Static / function-response cacheEphemeral in EU PoPsCDN cache only, not persistent storage
Function executionEU if region is EUPin to cdg1 / fra1 / lhr1 / dub1 / arn1 for EU compute
Infrastructure layerAWS + Azure CosmosDBPlatform primarily on AWS; CosmosDB for global replication
Encryption at restAES-256 platform-wideAll data encrypted regardless of region
BackupsEvery 2 hours, 30-day retentionPlatform-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

Verified by ComparEdgeMethod: Vendor docs, official pages, and selected independent sources
SourceWhat was checkedLast checked
Vercel OfficialOfficial product pageJuly 10, 2026
Vercel Configuring Functions RegionRegion configurationJuly 10, 2026
Vercel Deployments Create A New DeploymentDeployments Create A New DeploymentJuly 10, 2026
Vercel Project ConfigurationProject ConfigurationJuly 10, 2026
Vercel RegionsRegions and residencyJuly 10, 2026
Vercel SecuritySecurity and complianceJuly 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.