6 min read


This reference covers a list of all the limits and limitations that apply on Vercel.
Table of Contents

To prevent abuse of our platform, we apply the following limits to all accounts.

Deployments Created per Day1006000Custom
Serverless Functions Created per DeploymentFramework-dependent*
Proxied Request Timeout (Seconds)303030
Deployments Created from CLI per Week20002000Custom
Vercel Projects Connected per Git Repository 360Custom
Routes created per Deployment10241024Custom
Build Time per Deployment(Minutes)454545
Concurrent Builds112Custom
Disk Size (GB)2323Custom
Cron Jobs2*40100
Fast Data Transfer100 GB1 TB
Fast Origin TransferUp to 10 GBUp to 100 GB
Function Execution100 GB-Hrs1000 GB-Hrs
Edge Function Execution Units500,0001,000,000
Edge Middleware Invocations1,000,0001,000,000
Build Execution100 Hrs400 Hrs
Image Optimization Source Images1000 Images5000 Images
Remote Cache downloads10GB10GB
Remote Cache uploads100GB1TB

For Teams on the Pro plan, you can pay for additional usage as you go.

If your project will exceed these limits on Pro and you need advanced security and privacy features, contact Vercel Sales to discuss Enterprise.

These limits reflect our improved infrastructure pricing. Changes begin during the June 25 and July 2024 billing cycle. The Hobby tier remains free.

For members of our Pro plan, we offer a pay-as-you-go model for additional usage, giving you greater flexibility and control over your usage. The typical monthly usage guidelines above are still applicable, while extra usage will be automatically charged at the following rates:

Managed Infrastructure pricing

Function Invocation is the activation of a Vercel Function. It is charged per unique activation of a the function.

First 1,000,0001,000,000 Invocations$0.60

Function Duration is the total execution time of a Serverless Function. It is charged based on the total CPU runtime of a Serverless Function. Longer tasks incur more charges.

First 1,000 GB-Hours1 GB-Hour$0.18

Edge Function Executions occur when a request is made to an Edge Function. They are charged per unique invocation.

First 1,000,0001,000,000 Execution Units$2.00

A source image is the value that is passed to the src prop. A single source image can produce multiple optimized images.

First 5,0001,000 Images$5.00

Edge Config Reads are charged by the volume of data retrieved, and measured in units.

First 1,000,0001,000,000 Reads$3.00

Edge Config Writes, which store new data, incur charges based on the data volume written, and are measured in units.

First 1,000500 Writes$5.00

An event is either an automatically tracked page view or a custom event.

First 25,000 Events100,000 Events$14.00

Web Analytics Plus gives you increased analytics limits, a longer reporting window, and more custom event properties.

First 500,000 Events$20 per 500,000$50.00 / mo

A data point is a single unit of information that represents a measurement of a specific Web Vital metric during a users visit to your website.

First 10,00010,000 Data points$0.65

Relates to the number of projects you enable Speed Insights for.

N/APer additional Project$10.00

A data point is a single unit of information that represents a measurement of a specific metric during a users visit to your website.

250,000 Included1,000,000 Data Events$9.00

Monitoring Activation Fee

Pro add-on

A monthly fee for using Monitoring


Monitoring Custom Retention

Pro add-on

Retention is the length of time that data is stored and queryable in the Monitoring dashboard.

N/A30 DaysN/A

Vercel KV requests represent the number of times data is accessed from Vercel KV.

First 150,000100,000 Requests$0.35

Storage is calculated as the maximum amount of storage used per month for all KV databases for your account.

First 512 MB1 GB$0.25

Database cost is calculated as the maximum number of databases per month for your account, including read replicas.

First DatabasePer 1 Database$1.00

Data transfer is calculated as the amount of data transferred between the functions querying the databases and the KV databases for your account.

First 256 MB1 GB$0.10

Vercel Postgres compute hours represent the amount of time your Vercel Postgres instance is running.

First 100 Hours1 Compute Hour$0.10

Written data is measured by the amount of data changes that are committed from compute resources to storage.

First 256 MB1 GB$0.096

Database cost is calculated as the maximum number of databases per month for your account.

First DatabasePer 1 Database$1.00

Storage is calculated as the maximum amount of storage used per month for all Postgres databases for your account.

First 256 MB Included1 GB$0.12

Data transfer is the volume of data transferred out of your database.

First 256 MB1 GB$0.10

Log drains collect all of your logs using a service specializing in storing app logs.

N/AN/A$10 per 5 GB

To learn more about Managed Infrastructure on the Pro plan, and how to understand your invoices, see understanding my invoice.

To learn how to enable add-ons, see Pro plan add-ons.

See the Pro trial limitations section for information on the limits that apply to Pro trials.

The limit of "Routes created per Deployment" encapsulates several options that can be configured on Vercel:

Note that most frameworks will create Routes automatically for you. For example, Next.js will create a set of Routes corresponding to your use of dynamic routes, redirects, rewrites and custom headers.

The maximum duration of the Build Step is 45 minutes. When the limit is reached, the Build Step will be interrupted and the Deployment will fail.

Every Build is provided with the following resources:

Memory8192 MB8192 MBCustom
Disk space23 GB23 GBCustom

Enterprise customers can purchase enhanced builds with larger memory and storage.

For more information on troubleshooting these, see Build container resources.

The maximum size of the Build's cache is 1 GB. It is retained for one month and it applies at the level of each Build cache key.

Check out the limits and pricing section for more details about the limits of the Monitoring feature on Vercel.

There are two types of logs: build logs and runtime logs. Both have different behaviors when storing logs.

Build logs are stored indefinitely for each deployment.

Runtime logs are stored for 1 hour on Hobby, 1 day on Pro, and for 3 days on Enterprise accounts. To learn more about these log limits, read here.

The maximum number of Environment Variables per environment per Project is 1000. For example, you cannot have more than 1000 Production Environment Variables.

The total size of your Environment Variables, names and values, is limited to 64KB for projects using Node.js, Python, Ruby, Go, Java, and .NET runtimes. This limit is the total allowed for each deployment, and is also the maximum size of any single Environment Variable. For more information, see the Environment Variables documentation.

If you are using System Environment Variables, the framework-specific ones (i.e. those prefixed by the framework name) are exposed only during the Build Step, but not at runtime. However, the non-framework-specific ones are exposed at runtime. Only the Environment Variables that are exposed at runtime are counted towards the size limit.

Domains per Project50Unlimited

The maximum number of files that can be uploaded when creating a CLI Deployment is 15,000 for source files. Deployments that contain more files than the limit will fail at the build step.

Although there is no upper limit for output files created during a build, you can expect longer build times as a result of having many thousands of output files (100,000 or more, for example). If the build time exceeds 45 minutes then the build will fail.

We recommend using Incremental Static Regeneration (ISR) to help reduce build time. Using ISR will allow you pre-render a subset of the total number of pages at build time, giving you faster builds and the ability to generate pages on-demand.

The amount of time (in seconds) that a proxied request (rewrites or routes with an external destination) is allowed to process an HTTP request. The maximum timeout is 30 seconds. If the external server does not reply until the maximum timeout is reached, an error with the message ROUTER_EXTERNAL_TARGET_ERROR will be returned.

Edge Functions and Serverless Functions do not support acting as a WebSocket server.

We recommend third-party solutions to enable realtime communication for Deployments.

Check out the Limits and Pricing section for more details about the limits of Vercel Web Analytics.

Check out the Limits and Pricing doc for more details about the limits of the Speed Insights feature on Vercel.

Check out the Cron Jobs limits section for more information about the limits of Cron Jobs on Vercel.

The limits of Vercel functions are based on the runtime that you use.

For example, different runtimes allow for different bundle sizes, maximum duration, and memory.

​Vercel does not support connecting your Personal Account's Projects to Git repositories owned by Git organizations. You can either switch to an existing Team or create a new one.

The same limitation applies in the Project creation flow when importing an existing Git repository or when cloning a Vercel template to a new Git repository as part of your Git organization.

See the Reserved Environment Variables docs for more information.

Rate limits are hard limits that apply to the platform when performing actions that require a response from our API.

The rate limits table consists of the following four columns:

  • Description - A brief summary of the limit which, where relevant, will advise what type of plan it applies to.
  • Limit - The amount of actions permitted within the amount of time (Duration) specified.
  • Duration - The amount of time (seconds) in which you can perform the specified amount of actions. Once a rate limit is hit, it will be reset after the Duration has expired.
  • Scope - Who the limit applies to: owner refers to the Personal Account Owner or Team Owner, user refers to a Team Member.

Below are five examples that provide further information on how rate limits work.

You are able to delete up to 60 domains every 60 seconds (1 minute). Should you hit the rate limit, you will need to wait another minute before you can delete another domain.

You are able to delete up to 20 teams every 3600 seconds (1 hour). Should you hit the rate limit, you will need to wait another hour before you can delete another team.

You are able to change your username up to 6 times every 604800 seconds (1 week). Should you hit the rate limit, you will need to wait another week before you can change your username again.

You are able to build 32 Deployments every 3600 seconds (1 hour). Should you hit the rate limit, you will need to wait another hour before you can build a deployment again.

Using Next.js or any similar framework to build your deployment is classed as a build. Each Serverless Function is also classed as a build. Hosting static files such as an index.html file is not classed as a build.

You are able to deploy 100 times every 86400 seconds (1 day). Should you hit the rate limit, you will need to wait another day before you can deploy again.

Last updated on July 20, 2024