---
title: Pricing and Limits
product: workflows
url: /docs/workflows/pricing
type: reference
prerequisites:
  - /docs/workflows
related:
  - /docs/pricing
  - /docs/plans/hobby
  - /docs/functions/usage-and-pricing
  - /docs/fluid-compute
  - /docs/queues/pricing
summary: Learn about pricing and limits on Vercel.
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

# 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](#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. Each plan has an [included allotment](/docs/pricing). See the [Hobby plan limits](/docs/plans/hobby) for included usage.

| Resource | Hobby Included | On-demand Rates |
| --- | --- | --- |
| Workflow Steps | First 50,000 Steps | $2.50 per 100,000 Steps |
| Workflow Storage | First 720 GB-Hours | $0.00069 per GB-Hour |


Functions invoked by Workflows continue to be charged at the [existing compute rates](/docs/functions/usage-and-pricing). We recommend using [Fluid compute](/docs/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](/docs/queues/pricing) for more details.

## Events

Every state transition in a workflow run is persisted as an event. The full list of events is available in the [Workflow SDK documentation](https://workflow-sdk.dev/docs/how-it-works/event-sourcing).

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 retention

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.

## Workflow run limits

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](/docs/functions/limitations) |                                                                                                                                                                                                                      |
| 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                                                  |                                                                                                                                  |

> **💡 Note:** Runs that exceed 2,000 events or 1 GB of total entity storage have slower replay times. To maintain high performance, we recommend [creating child workflows](https://workflow-sdk.dev/docs/foundations/starting-workflows) to break long-running workflows into smaller pieces.

### Vercel platform limits

| Limit                     | Value                                                               | Details                                                                                                                                       |
| ------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Concurrency               | up to 100,000, see [Vercel Functions limits](/docs/functions/limitations) |                                                                                                                                               |
| Queued runs               | No limit, see [Vercel Queues limits](/docs/queues/pricing#limits)   |                                                                                                                                               |
| Schedules/cron            | No limit                                                            |                                                                                                                                               |
| Projects                  | Unlimited                                                           |                                                                                                                                               |
| Real-time connections     | No limit                                                            |                                                                                                                                               |
| Observability retention   | See [Observability](/docs/observability)                            |  |
| Compute resources         | See [Vercel Functions limits](/docs/functions/limitations)          |                                                                                                                                               |
| Maximum total bundle size | 250MB, see [Vercel Functions limits](/docs/functions/limitations)   |                                                                                                                                               |

### Rate 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           |


---

[View full sitemap](/docs/sitemap)
