Configuring regions for Vercel Functions

Configuring regions for Vercel Functions

The Vercel platform caches all static content in the CDN by default. This means your users will always get static files like HTML, CSS, and JavaScript served from the region that is closest to them. See the regions page for a full list of our regions.

In a globally distributed application, the physical distance between your function and its data source can impact latency and response times. Therefore, Vercel allows you to specify the region in which your functions execute, ideally close to your data source (such as your database).

Setting your default region

The default Function region is Washington, D.C., USA (iad1) for all new projects.

To change the default regions in the dashboard:

  1. Choose the appropriate project from your dashboard on Vercel
  2. Open Settings in the sidebar
  3. From the left side, select Functions
  4. Use the Function Regions accordion to select your project's default regions:

The Function Regions setting in a Vercel project's dashboard

Project configuration

To change the default region in your vercel.json configuration file, add the region code(s) to the "regions" key:

{
  "$schema": "https://openapi.vercel.sh/vercel.json",
  "regions": ["sfo1"]
}

Additionally, Pro and Enterprise teams can deploy Vercel Functions to multiple regions. See Limits for the number of regions available on each plan.

Enterprise users can also use functionFailoverRegions to specify regions that a Vercel Function should failover to if the default region is out of service.

Per-function configuration

You can override the project-level regions and functionFailoverRegions settings for individual functions using the functions property in your project configuration. This is useful when different functions access different data sources in different regions.

{
  "$schema": "https://openapi.vercel.sh/vercel.json",
  "regions": ["iad1"],
  "functionFailoverRegions": ["cle1"],
  "functions": {
    "api/eu-data.js": {
      "regions": ["cdg1"],
      "functionFailoverRegions": ["lhr1"]
    },
    "api/us-west.js": {
      "regions": ["sfo1"],
      "functionFailoverRegions": ["pdx1"]
    }
  }
}

In this example:

Per-function regions accepts an array of region identifiers. Per-function functionFailoverRegions is Enterprise only and accepts up to 4 region identifiers. When set on a function, these values completely override the corresponding project-level setting for that function.

Vercel CLI

Pass --regions to vercel deploy (or the default vercel command) from your project's root directory with a region value, for example vercel --regions sfo1. The flag requires a region value; running vercel --regions on its own fails with option requires argument: --regions. Learn more about setting regions with the --regions flag in the CLI docs.

Limits

The number of regions your functions can run in depends on your plan:

Plan Function regions
Hobby Single region
Pro 5 regions
Enterprise All regions

Deploying to more regions than your plan allows causes the deployment to fail before the build step.

Vercel deploys Routing Middleware to all regions by default, regardless of your region settings. On the Hobby plan, Routing Middleware runs in fewer regions.

If your functions communicate with external services, choosing regions far from those services increases latency. Select only regions close to your external services.

Available regions

To learn more about the regions that you can set for your Functions, see the region list.

Automatic failover

Vercel Functions have multiple availability zone redundancy by default. Multi-region redundancy is available depending on your runtime.

Node.js runtime failover

Enterprise teams can enable multi-region redundancy for Vercel Functions using Node.js.

To automatically failover to the closest region in the event of an outage:

  1. Select your project from your team's dashboard
  2. Open Settings in the sidebar and select Functions
  3. Enable the Function Failover toggle:

To manually specify the fallback region, you can pass one or more regions to the functionFailoverRegions property in your vercel.json file:

{
  "$schema": "https://openapi.vercel.sh/vercel.json",
  "functionFailoverRegions": ["dub1", "fra1"]
}

You can also set functionFailoverRegions on a per-function basis using the functions property. See per-function configuration above.

The region(s) set in the functionFailoverRegions property must be different from the default region(s) specified in the regions property.

During an automatic failover, Vercel will reroute application traffic to the next closest region, meaning the order of the regions in functionFailoverRegions does not matter. For more information on how failover routing works, see functionFailoverRegions.

You can view your default and failover regions through the deployment summary:

Region failover is supported with Secure Compute. See Region Failover to learn more.

Last updated August 11, 2026.