Pricing
Pay only for what you use with per-request pricing.
Or choose a Fixed plan for consistent usage with a flat price.
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+ messages daily
- Unlimited bandwidth
- Professional support with SLA
- Dedicated resources for isolation
- SAML SSO
Compare Plans
Plans that scale to all sizes.
| Free | Usage Based Pricing | Fixed Pricing | Fixed Pricing | Enterprise | |
Free- | Pay as you go$1/ 100K messages | Fixed 1M$180/ month | Fixed 10M$420/ month | Enterprise- | |
Capacity | |||||
|---|---|---|---|---|---|
| Max Messages per Day | 1,000 | Unlimited | 1M | 10M | 100M+ |
| 50GB | 50GB | 1TB | 5TB | Unlimited | |
| Max Message Size | 1MB | 10MB | 50MB | 50MB | Custom |
| Max Number of URL Groups | 1 | 100 | 1000 | 2000 | Custom |
| Max Number of Endpoints per URL Group | 100 | 100 | 1000 | 2000 | Custom |
| Max Delay | 7 days | 1 year | Unlimited | Unlimited | Custom |
| Max HTTP Response Duration | 15 minutes | 2 hours | 6 hours | 12 hours | Custom |
| Max DLQ Retention | 3 days | 7 days | 30 days | 3 months | Custom |
| Max Logs Retention | 3 days | 7 days | 14 days | 14 days | Custom |
| Max Active Schedules | 10 | 1,000 | 10000 | 50000 | Custom |
| Max Queue Count | 10 | 100 | 1000 | 1000 | Custom |
| 2 | 10 | 10 | 10 | Custom | |
| 10 | 100 | 200 | 1000 | Custom | |
Features | |||||
| Uptime SLA | |||||
Security and Privacy | |||||
| Encryption at rest | |||||
| SAML Single Sign-On (SSO) | |||||
Observability | |||||
| Prometheus Integration | |||||
| Datadog Integration | |||||
Support | |||||
| Community Support | |||||
| Email Support | |||||
| Dedicated support and Slack channel | |||||
Price | |||||
| Monthly price | Free | None | $180 | $420 | Custom |
| Message price | Free | $1 per 100K | None | None | Custom |
| Start Now | Start Now | Start Now | Start Now | Learn More | |
FAQ
- Each delivery attempt counts as one message.
- The initial delivery counts as one message.
- In case of retries, each retry is counted as an additional message.
The same rules apply to topics and schedules:
- Publishing to a topic is billed once per subscribed endpoint to the topic.
- Scheduled messages are billed once for each time the schedule triggers.
- In short: one delivery attempt to one endpoint equals one billed message.
- Example: QStash sends a message to your endpoint, but the endpoint returns an error. QStash retries the delivery and it succeeds. Since there were two delivery attempts, the message is billed as 2 messages.
- These are soft limits and apply only if you consistently exceed your quota.
- Short or occasional spikes will NOT immediately block your requests.
- 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, the API may start returning 429 rate limit errors.
The size limit applies to both requests and responses:
Request body:
- If the request body sent to QStash exceeds the limit, the API returns an HTTP
412error. - When using the
/v2/batchendpoint, each request in the batch is checked individually.
Response body:
- If the response from your endpoint exceeds the limit, it is trimmed and stored only for logging and debugging purposes (DLQ/Events).
- If the request body sent to QStash exceeds the limit, the API returns an HTTP
- There is no requests-per-second (RPS) limit for message delivery APIs, such as:
- Publish
- Enqueue
- Batch
- APIs used for observability and management (such as logs and DLQ) do have RPS limits. When exceeded, the API returns a 429 Too Many Requests error.
- Since message delivery APIs do not have an RPS limit, QStash enforces a Max Parallelism limit:
- QStash accepts all message publish requests.
- If the publish rate is too high, QStash slows down delivery by limiting how many messages are sent in parallel.
- Additional messages are queued and delivered later, but they are not lost.
Upstash QStash pricing — all plans
| Plan | Price | Max messages/day | Max bandwidth | Max message size |
|---|---|---|---|---|
| Free | $0/month | 1,000 | 50 GB | 1 MB |
| Pay as You Go | $1 per 100K messages | Unlimited | 50 GB | 10 MB |
| Fixed 1M | $180/month | 1M | 1 TB | 50 MB |
| Fixed 10M | $420/month | 10M | 5 TB | 50 MB |
| Enterprise | Custom | 100M+ | Unlimited | Custom |
| Tier | Monthly price | Messages/day | Bandwidth | Max message size | Max delay | DLQ retention | Max parallelism |
|---|---|---|---|---|---|---|---|
| Fixed 1M | $180/month | 1M | 1 TB | 50 MB | Unlimited | 30 days | 200 |
| Fixed 10M | $420/month | 10M | 5 TB | 50 MB | Unlimited | 3 months | 1,000 |
Pay as You Go — pricing details
- Messages: $1 per 100K messages
- Bandwidth: Free up to 50 GB/month, then $0.05/GB
- Max messages/day: Unlimited
- 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.)
- Max parallelism: 100
Full machine-readable pricing is available at /pricing/qstash.md.