Overview
QStash is a push-based queue: instead of workers polling, you publish a message addressed to a URL and QStash calls that URL, retrying on failure and moving undeliverable messages to a dead-letter queue. It adds delays, cron schedules, URL groups for fan-out, FIFO queues, flow control (rate and parallelism), callbacks and deduplication. Because delivery is plain HTTP it works from Vercel, Cloudflare Workers and other serverless hosts.
The free plan allows 1,000 messages a day with 1 MB messages and 10 schedules. Pay as you go costs $1 per 100,000 messages with 50 GB of bandwidth included and no daily cap. Fixed 1M ($180/month) and Fixed 10M ($420/month) plans raise message size, bandwidth, schedule counts and retention.
Upstash Workflow is an SDK on top of QStash for multi-step durable workflows. Each context.run, sleep or waitForEvent is one message, context.call is two, and retries count as new messages, so a workflow run costs several messages.
QStash runs in two independent regions, EU (Frankfurt, the default) and US East, each with its own tokens and billing. There is no self-hosted version beyond a local development server started by the SDK.
Pricing and plans
Free tier
1,000 messages a day, 50 GB bandwidth, 1 MB messages, 7-day max delay, 10 active schedules, 10 queues, 3-day logs and DLQ
At the limit Not stated The vendor does not say what happens at the limit, or we have not found it yet.
| Plan | Price | What you get |
|---|---|---|
| Free | $0 | 1,000 messages/day, 1 MB messages, 15-minute response duration |
| Pay as You Go | $1 per 100K messages | Unlimited messages/day, 10 MB messages, 1-year delay, 2-hour response, 50 GB bandwidth then $0.05/GB |
| Fixed 1M | $180/mo | 1M messages/day, 1 TB bandwidth, 50 MB messages, 10,000 schedules |
| Fixed 10M | $420/mo | 10M messages/day, 5 TB bandwidth, 50,000 schedules |
| Enterprise | Custom | 100M+ messages/day, SAML SSO, dedicated support |
What it does
- Push delivery with retries
- Messages are POSTed to your endpoint and retried on error; failures land in a dead-letter queue.
- Schedules and delays
- Cron schedules and per-message delays up to 7 days on Free and 1 year on pay as you go.
- Queues and flow control
- FIFO queues plus rate-per-second and parallelism limits so your endpoint is not overloaded.
- Fan-out
- URL groups publish one message to many endpoints, billed once per endpoint.
- Upstash Workflow
- Durable multi-step workflows with sleep, waitForEvent and long HTTP calls, billed in QStash messages.
- EU and US regions
- Independent regions in eu-central-1 and us-east-1 with a console migration tool.
Strengths and limitations
Strengths
- Works from edge and serverless runtimes with no worker process
- Pay per message with nothing charged when idle
- EU region is the default
- Delays up to a year and built-in cron
Limitations
- Free plan is capped at 1,000 messages a day and 10 schedules
- Your endpoint must be publicly reachable over HTTP
- HTTP response duration is capped at 15 minutes on Free and 2 hours on pay as you go
- SLA, encryption at rest and the SOC 2 report require the Prod Pack add-on
- Retries and each workflow step are billed as messages
Who it suits
Good for
- Serverless apps that need delayed or retried webhooks
- Cron jobs for apps hosted on Vercel or Cloudflare
- Fan-out of events to several services
Look elsewhere if
- Workloads that must run inside a private network with no public endpoint
- Very high message volumes where a self-run queue costs less
Alternatives to Upstash QStash
| Tool | From | Free option | Stages |
|---|---|---|---|
| Windmill Open-source job orchestrator, workflow engine and internal-tool platform | $10/mo | Free tier | |
| Solid Queue Database-backed Active Job backend for Rails | — | ||
| Hatchet Postgres-backed task queue and durable workflow engine | Usage-based | Free tier | |
| Faktory Language-agnostic background job server | $299/mo | ||
| Cloudflare Queues Managed message queue for Cloudflare Workers | Usage-based | Free tier | |
| Cloudflare Workflows Durable workflow engine on Cloudflare Workers | Usage-based | Free tier |
Questions
Is QStash free?
Yes. The free plan allows 1,000 messages a day, 10 active schedules and 1 MB messages.
How much does QStash cost?
Pay as you go is $1 per 100,000 messages with 50 GB of bandwidth included; fixed plans are $180 and $420 a month.
Are QStash retries billed?
According to the pricing FAQ, each delivery attempt, including a retry, counts as one message.
Does QStash have an EU region?
Yes. QStash runs in an EU region (eu-central-1), which is the default, and a separate US East region.
What is the difference between QStash and Upstash Workflow?
QStash delivers single messages; Upstash Workflow is an SDK built on QStash for multi-step durable workflows, billed by the QStash messages each step uses.
Sources read for this page