Pricing

Pay only for what you use with per-request pricing.
Or choose a Fixed plan for consistent usage with a flat price.

Free

$0

-

Perfect for prototypes and hobby projects.

Steps per Day

1,000

Pay as You Go

$1

per 100K steps

For use cases with bursting traffic.

Steps per Day

Unlimited

$180/ month

-

For businesses with consistent high-capacity loads and predictable costs.

Steps per Day

1M

Prod Pack

Recommended for production use
  • Uptime SLA
  • Encryption at Rest
  • SOC-2
  • Prometheus
  • Datadog
+$200/month

Enterprise

For businesses with advanced needs.

  • Everything in Prod Pack
  • 100M+ steps daily
  • Unlimited bandwidth
  • Professional support with SLA
  • Dedicated resources for isolation
  • SAML SSO
Learn More

Compare Plans

Plans that scale to all sizes.

Free
-
Capacity
Max Steps per Day1,000
50GB
Max Steps per Workflow Run1,000
10
Max Message Size1MB
Max Sleep Duration7 days
Max HTTP Response Duration15 minutes
Max DLQ Retention3 days
Max Logs Retention3 days
Uptime SLA
Price
Monthly priceFree
Message priceFree
Start Now

FAQ

  • A step is the execution of a single workflow step in your workflow.
  • From a billing perspective, each executed step is counted as one billed step.
  • If a step execution fails and is retried, each retry is counted as an additional billed step.
  • Different step types consume a different number of billed steps:
    • context.run, context.sleep, context.sleepUntil, and context.waitForEvent generate ONE billed step.
    • context.call and context.invoke generate TWO billed steps.
    • When steps are executed in parallel, each step generates ONE extra billed step.

  • These are soft limits and apply only if you consistently exceed your quota.
  • Short or occasional spikes will not immediately block step executions.
  • If usage continues to exceed the limit, we will contact you to discuss an upgrade:
    • Fixed 1M → Fixed 10M
    • Fixed 10M → Custom Enterprise plan
  • If we are unable to reach you and limits are still exceeded over time, workflow runs may start failing with quota errors.

Workflow is built on top of QStash. When the daily steps limit is reached:

  • QStash starts returning errors for step execution.
  • The Workflow SDK throttles execution and retries after a short delay.
  • If the retry limit is reached, the workflow run fails.
  • Failed runs are recorded in the DLQ (Dead Letter Queue).

  • There is no requests-per-second (RPS) limit for Workflow execution APIs.
  • APIs used for logs, messages, and other management features do have RPS limits. When exceeded, the API returns a 429 Too Many Requests error.
  • Since Workflow execution does not have an RPS limit, QStash enforces a Max Concurrent Steps limit:

    • Workflow accepts all step executions.
    • If usage is too high, execution is slowed down by limiting how many steps run in parallel.
    • Additional steps are queued and executed later.

    See “Max Concurrent Steps” in the pricing table for details.

  • When a workflow run is triggered, if the request body exceeds the size limit, the API returns an HTTP 412 error.
  • The Workflow SDK logs the error, marks the workflow run as failed, and records it in the DLQ (Dead Letter Queue).
  • Between steps, the Workflow SDK makes calls to QStash. Responses from context.run, context.call, and context.invoke are also subject to the max message size limit.
  • If these responses exceed the limit, the workflow run fails and is recorded in the DLQ.

Upstash Workflow pricing — all plans

Plan overview
PlanPriceSteps per dayMax message sizeMax parallelism
Free$0/month1,0001 MB10
Pay as You Go$1 per 100K stepsUnlimited10 MB100
Fixed 1M$180/month1M50 MB200
Fixed 10M$420/month10M50 MB1,000
EnterpriseCustomUnlimitedCustomCustom
Fixed plans — all tiers
TierMonthly priceSteps per dayMax bandwidthMax message sizeDLQ retentionMax HTTP response durationMax parallelism
Fixed 1M$180/month1M1 TB50 MB30 days6 hours200
Fixed 10M$420/month10M5 TB50 MB3 months12 hours1,000

Pay as You Go — pricing details

  • Step price: $1 per 100K steps
  • Steps per day: Unlimited
  • Bandwidth: Free up to 50 GB/month. Beyond that, $0.05 per GB.
  • Max message size: 10 MB
  • Max delay: 1 year
  • Max HTTP response duration: 2 hours
  • DLQ retention: 7 days
  • Active schedules: 1,000 (Free up to 1,000. Beyond that, $0.01 per active schedule.)
  • Parallelism: 100

Full machine-readable pricing is available at /pricing/workflow.md.