Conceptual

Environment Variables

Learn how to use Vercel Environment Variables, which are key-value pairs configured outside your source code that change depending on the environment.
Table of Contents

Environment Variables are key-value pairs configured outside your source code so that each value can change depending on the Environment.

Your source code can read these values to change behavior during the Build Step or during Function execution.

All values are encrypted at rest and visible to any user that has access to the Project. It is safe to use both non-sensitive and sensitive data, such as tokens.

Changes to Environment Variables are not applied to previous deployments, they only apply to new deployments.

Developers on all plans can use a total of 64KB in Environments Variables per-Deployment on Vercel. This limit is for all variables combined, and so no single variable can be larger than 64KB. The total size includes any variables configured through the dashboard or the CLI.

With support for 64KB of Environment Variables, you can add large values for authentication tokens, JWTs, or certificates.

Deployments using the following runtimes can support the larger 64KB environment:

  • Node.js
  • Python
  • Ruby
  • Go
  • Java: java11 and java8.al2
  • .NET

In addition, the PHP Community Runtime also supports the 64KB environment.

Vercel also provides support for custom runtimes, through the Build Output API. For information on creating custom runtime support, see the following guides:

While Vercel allows Environment Variables up to a total of 64KB in size, Edge Functions and Edge Middleware are limited to 5KB per Environment Variable.

For each Environment Variable, you can select one or more Environments to apply the Variable to:

EnvironmentDescription
ProductionWhen selected, the Environment Variable will be applied to your next Production Deployment. To create a Production Deployment, push a commit to the Production Branch (usually main) or run vercel --prod.
PreviewThe Environment Variable is applied to your next Preview Deployment. Preview Deployments are created when you push to a branch that is not the Production Branch or run vercel.
DevelopmentThe Environment Variable is used when running your project locally with vercel dev or your preferred development command. To download Development Environment Variables, run vercel env pull.

You need Vercel CLI version 22.0.0 or higher to use the features described in this section.

Preview Environment Variables are applied to deployments from any Git branch that does not match the Production Branch. When you add a Preview Environment Variable, you can choose to apply to all Preview branches or you can select a specific branch.

When you push to a branch, a combination of Preview Environment Variables and branch-specific variables (if any) will be used. Any branch-specific variables will override other Preview Environment Variables variables with the same name. This means you don't need to replicate all your existing Preview Environment Variables for each branch – you only need to add the values you wish to override.

Adding an Environment Variable to the staging branch.
Adding an Environment Variable to the staging branch.

You need Vercel CLI version 21.0.1 or higher to use the features described in this section.

Environment variables for local development are defined in the .env.local file. This is a plain text file that contains key=value pairs of environment variables, that you can manually create in your project's root directory to define sepcific variables.

You can use the vercel env pull command to automatically create and populate the .env file (which serves the same purpose as .env.local) with the environment variables from your Vercel project:

vercel env pull
Downloading Development Environment Variables for Project my-lovely-project
✅ Created .env file [510ms]

This command creates a .env file in your project's current directory with the environment variables from your Vercel project's Development environment.

If you're using vercel dev, there's no need to run vercel env pull, as vercel dev automatically downloads the Development Environment Variables into memory. For more information on the vercel env command, see the CLI docs.

For more information, see Environment variables for local development.

Integrations can automatically add Environment Variables to your Project Settings. In that case, the Integration that added the Variable will be displayed:

An Environment Variable added by the MongoDB Integration.
An Environment Variable added by the MongoDB Integration.
Last updated on September 13, 2024