Workflow Pricing and Limits
Vercel bills Workflows usage across three resources:
- Workflow Events: Every state transition in a workflow run is persisted as an event. See Events for more details.
- Workflow Data Written: The amount of data written to managed persistence for workflow state and event logs, including stream data.
- Workflow Data Retained: The amount of data stored per month in managed persistence.
Vercel bills each resource based on usage. Hobby includes monthly allowances for Workflow Events and Workflow Data Written. Workflow Data Retained is not available on Hobby, and Vercel bills Pro usage on demand.
| Resource | Hobby Included | On-demand Rates |
|---|---|---|
| Workflow Events | 50,000 events / month included | $0.02 per 1K events |
| Workflow Data Written | 1 GB | $0.50 per GB |
| Workflow Data Retained | — | $0.50 per GB-month |
You can inspect the amount of Workflow Data Written for a specific workflow run by navigating to the workflow details on the Workflows page in the dashboard. Vercel calculates Workflow Data Retained based on the amount of data written and the retention period. For example, writing 1 GB and having a retention period of 1 month would result in 1 GB-month of retained data.
Functions invoked by Workflows continue to be charged at the existing compute rates. We recommend using Fluid compute with Workflow for reduced costs and higher performance.
Workflow uses Vercel Queues to orchestrate workflow runs. Vercel bills Queues usage at standard rates, see Vercel Queues pricing for more details.
Every state transition in a workflow run is persisted as an event. The full list of events is available in the Workflow SDK documentation.
As an example, a normal step function execution produces three events: step_created, step_started, and step_completed. For every time a step re-tries due to a transient error, a step_retrying event is also created.
Storage for managed persistence is retained based on your team plan:
| Plan | Retention after run completion |
|---|---|
| Hobby | 1 day |
| Pro | 7 days |
| Enterprise | 30 days |
Storage retention is not configurable by default. You can request a custom retention period by contacting support.
The following limits apply to all Workflow runs.
| Limit | Value | Details |
|---|---|---|
| Run creations per second | 1,000 | |
| Events per run | 25,000 limit | |
| Steps per run | 10,000 | |
| Event creations per run per second | 200 | |
| Hook creations per second | 200 | |
| Max payload size | 50 MB | |
| Maximum total entity storage per run | 2 GB | |
| Max workflow replay duration | 240s | |
| Maximum run duration | No limit | |
Maximum sleep duration | No limit | |
| Max runtime of individual step | see Vercel Functions limits | |
| Max stream storage size | Unlimited | |
| Max stream chunk size | 10 MB | |
| Max stream chunks per second per stream | 1,000 | |
| Hook token size | 255 bytes | |
| Workflow name | 255 bytes | |
| Step name | 255 bytes |
| Limit | Value | Details |
|---|---|---|
| Concurrency | up to 100,000, see Vercel Functions limits | |
| Queued runs | No limit, see Vercel Queues limits | |
| Schedules/cron | No limit | |
| Projects | Unlimited | |
| Real-time connections | No limit | |
| Observability retention | See Observability | |
| Compute resources | See Vercel Functions limits | |
| Maximum total bundle size | 250MB, see Vercel Functions limits |
Requests include any event creation or stream write operation, as well as any operation for reading events, stream chunks, metadata, or event data.
For any request made from your deployment, exceeding the rate limit will automatically re-try with backoff. This includes the initial request to start the workflow. If the call to start() does not throw an error, the workflow will eventually start and run to completion or failure.
This means hitting the rate limit will not cause your workflow to fail, but it will slow down the rate at which your workflows run.
| Plan | Requests per minute |
|---|---|
| Hobby | 100,000 |
| Pro | 1,000,000 |
| Enterprise | 5,000,000 |
Was this helpful?