Upstash Pricing in 2026: What You Actually Pay for Serverless Redis
As of July 2026, Upstash Redis is free up to 256 MB and 500K commands per month; pay-as-you-go bills $0.20 per 100K commands plus $0.25/GB stored, and fixed plans run $10 to $1,500/month. Because Upstash charges per command, not per server, request volume sets your bill, not data size. Above ~5M commands/month a flat $10 fixed plan usually beats pay-as-you-go.
Updated on October 4, 2026

On this page
As of July 2026, Upstash Redis is free up to 256 MB and 500,000 commands per month. Past that, pay-as-you-go bills $0.20 per 100,000 commands plus $0.25 per GB stored, and fixed plans run from $10/month (250 MB) to $1,500/month (500 GB). The one thing that trips up every first bill: Upstash charges per command, not per server, so your cost is set by request volume, not by how much data you store. Above roughly 5 million commands a month, a flat $10 fixed plan usually beats pay-as-you-go.
You pay per command, not per server
Most managed databases bill you for a box: a fixed amount of RAM and CPU that runs whether you touch it or not. Upstash flips that. On pay-as-you-go there is no box. You pay $0.20 for every 100,000 commands your app sends, plus a little for storage, and the meter scales to zero when nobody is using it.
That is great for a side project that sleeps most of the day. It is a trap for a chatty app that fires a dozen Redis calls on every page load. Two apps storing the exact same 200 MB can get bills that differ by 10x, purely because one sends more commands. Store size barely moves the needle. Command count is the needle.
Keep that straight and the rest of the pricing page reads cleanly.
The price ladder (July 2026)
Scroll to see more
| Plan | Base price | Data cap | What you pay per command |
|---|---|---|---|
| Free | $0 | 256 MB, 500K commands/mo | Nothing (until you hit the cap) |
| Pay as you go | $0 | 100 GB | $0.20 per 100K commands + $0.25/GB stored |
| Fixed 250MB | $10/mo | 250 MB | Included, up to 10,000 commands/sec |
| Fixed 1GB | $20/mo | 1 GB | Included, up to 10,000 commands/sec |
| Fixed 5GB | $100/mo | 5 GB | Included |
| Fixed 10GB | $200/mo | 10 GB | Included |
| Fixed 50GB | $400/mo | 50 GB | Included |
| Fixed 100GB | $800/mo | 100 GB | Included |
| Fixed 500GB | $1,500/mo | 500 GB | Included |
Two add-ons matter for a real bill. A read region replica costs $5 to $750 per region depending on your base plan, which Upstash documents as 50% of the base tier price per region, and the Prod Pack (uptime SLA, multi-zone high availability, encryption at rest, SOC-2, Prometheus and Datadog exports) is a flat $200/month per database. On pay-as-you-go, bandwidth is free up to 200 GB/month, then $0.03/GB, which is rarely the line item that hurts.
Every figure here comes straight from Upstash's own Redis pricing page, checked July 2026 and re-verified against that page on October 4, 2026 with every plan price, the per-command rate, storage, bandwidth and both add-on prices unchanged.
A read region doubles every write on pay-as-you-go
Here is the part that breaks the one-number model, and it is the most expensive thing on this page to get wrong. Upstash global databases replicate every write from the primary region out to each read region, and each replicated write counts as its own billable command. Upstash's own worked example: with one primary and one read region, 100,000 writes cost $0.40, not $0.20 (Upstash global database docs, October 2026).
So the two plan types charge for a read region in opposite ways:
Scroll to see more
| Plan type | What a read region costs | What it does to your command count |
|---|---|---|
| Fixed | 50% of the base tier per region ($5 on the $10 plan, $750 on the $1,500 plan) | Nothing. Fixed plans never meter commands. |
| Pay as you go | No monthly fee at all | Every write bills once per region. One read region, 2x write cost. Two, 3x. |
That inverts the usual instinct. On a Fixed plan a read region is a predictable line item you can read straight off the table. On pay-as-you-go it has no sticker price, stays invisible until the invoice arrives, and scales with your write mix: a write-heavy app with two read regions pays three times its apparent write cost, while a read-heavy app barely notices, because reads are served from one replica.
What that means for the bills below: every figure in this piece assumes a single-region database. If you run global on pay-as-you-go, count writes separately from reads, multiply the writes by (1 + read regions), and price the commands off that number. Global is available on the free tier too, capped at one read region.
Three real 30-day bills
Numbers, not adjectives. Here is what three common setups actually cost.
A. Hobby rate limiter. A small Next.js app doing rate limiting and a bit of caching: 400,000 commands and 50 MB of data in the month. That fits the free tier, so the bill is $0. One honest caveat: the popular sliding-window rate limiter runs 3 to 5 Redis commands per check, so 500,000 free commands is really about 100,000 to 165,000 real rate-limit checks, not 500,000 requests. Developers hit exactly this question about whether the free tier survives real rate limiting on r/nextjs. Size your free tier on checks, not visitors.
B. Production sessions and cache. A live SaaS storing sessions and hot cache: 25 million commands, 200 MB of data. On pay-as-you-go that is 25,000,000 / 100,000 x $0.20 = $50 in commands, plus $0 storage (under the 1 GB free allowance), so about $50/month. Move the same workload to the Fixed 250MB plan and it is a flat $10/month, because 200 MB fits and 10,000 commands/sec covers 25 million a month with room to spare. Same app, 5x cheaper, just by picking the right plan.
C. Busier app, more data. 60 million commands, 3 GB of data. Pay-as-you-go: 60,000,000 / 100,000 x $0.20 = $120 in commands, plus (3 - 1 free) x $0.25 = $0.50 storage, so $120.50/month. The Fixed 5GB plan holds 3 GB for a flat $100/month, cheaper and predictable. Add the Prod Pack for a real SLA and it is $300/month, which is worth it only when downtime costs you revenue.
The crossover nobody prints: 5 million commands
Here is the lever the pricing page does not spell out. The Fixed 250MB plan is $10 flat with no per-command charge. On pay-as-you-go, $10 buys you $10 / $0.20 x 100,000 = 5,000,000 commands. So the moment your steady traffic crosses about 5 million commands a month, and your data still fits in 250 MB, the flat $10 plan is cheaper than metered billing. For the 1 GB fixed plan at $20, the breakeven is 10 million commands.
This is the same scale-to-zero logic we walked through in the Neon pricing teardown: usage billing is a gift while you are idle and a tax once you are busy. Most people leave a project on pay-as-you-go because that is the default, and quietly overpay once it gets popular. Check your monthly command count. If it is north of 5 million and your keyspace is small, switch to Fixed and stop the bleed.
Command amplification: your framework sets the bill
Because you pay per command, the real driver is how many commands your code sends per user request. It is the same idea as being billed per unit of work rather than per server, the way Cloudflare Workers bills CPU time. On pay-as-you-go it works out to a clean effective rate:
Scroll to see more
| Commands per request | Effective cost per 1M requests |
|---|---|
| 1 (a single GET) | $2.00 |
| 3 (fixed-window rate limit plus a read) | $6.00 |
| 5 (sliding-window rate limit) | $10.00 |
A million requests can cost you $2 or $10 for the exact same traffic, decided entirely by how chatty your Redis code is. That is why two identical-looking apps get different bills. Those rates are for a single-region database; add a read region and every write in the mix bills twice.
Cheaper levers
- Above ~5M commands/month with small data, switch pay-as-you-go to Fixed 250MB ($10 flat). This is the single biggest saving and the one most people miss.
- Cut commands per request. One SETEX beats a SET followed by an EXPIRE (two commands become one). Cache truly hot values in-process so repeat reads never touch Redis at all. Note that Upstash bills each command even inside a pipeline, so pipelining saves latency, not command count; the saving comes from sending fewer commands.
- Pick a cheaper rate-limit algorithm. Fixed-window uses fewer commands per check than sliding-window. If your budget is tight and approximate limits are acceptable, fixed-window is the frugal choice.
- Set TTLs. Expiring keys keeps your data under the free 256 MB or the next fixed tier so you do not jump a plan you did not need.
- Optimize commands before bandwidth. With 200 GB free on pay-as-you-go, egress is rarely the problem. Spend your effort on command count.
When Upstash wins, and when a server is cheaper
Upstash wins when your traffic is spiky and idle a lot: serverless functions, edge routes, a
Vercel app, a side project that sleeps overnight. A fixed-size Redis server would bill for all those idle hours; Upstash bills $0 when nobody is calling it.
Upstash loses when your workload runs flat out, 24/7, at millions of commands per hour. There, per-command billing keeps climbing while a fixed server with unmetered operations stays flat, so a server-based option can be cheaper. Redis Cloud's server-based plans are the usual comparison point; check their current rates before you commit. And note that Vercel KV no longer exists: Vercel retired it and moved existing stores to Upstash Redis in December 2024, and Redis on Vercel is now a Marketplace integration where Upstash is one provider among several (Vercel Redis docs, October 2026). Buying Redis from inside Vercel is not automatically a different engine or a cheaper invoice, so check which provider you are actually provisioning.
Price the commands first, and on a global database count your writes separately, because each read region bills them again. The plan almost always follows from that one count.
Correction, October 4, 2026: this piece previously told you that what matters for your bill is "the total number of commands, not the mix of reads versus writes", and the FAQ answered "no" to whether Upstash charges differently for the two. That holds per command and fails per write on a global database. Upstash replicates every write to each read region and bills each replication as a separate command, so with one read region 100,000 writes cost $0.40 rather than $0.20. The error under-counted write-heavy global bills, which is the direction that steers you onto the wrong plan. The section above now states the mechanism and what a read region costs on each plan type. Also corrected: this piece said "Vercel KV runs on Upstash under the hood" in the present tense. Vercel KV is no longer available, Vercel migrated existing stores to Upstash Redis in December 2024, and Redis on Vercel is now a Marketplace choice of provider. No plan price, per-command rate or worked bill on this page changed.
Math check: at $0.20 per 100K commands, $10 of pay-as-you-go equals 5 million commands, which is exactly the flat Fixed 250MB plan. Cross that line and the meter is costing you money for nothing.
Written by
Camille ForsterFrequently asked questions
Is Upstash free?
Yes. Upstash Redis has a permanent free tier at $0/month covering up to 256 MB of data and 500,000 commands per month, with 10 GB of bandwidth. Past those limits you move to pay-as-you-go or a fixed plan (figures as of July 2026).
How does Upstash pricing work?
On pay-as-you-go you pay $0.20 per 100,000 commands plus $0.25 per GB stored (first 1 GB free), and bandwidth is free to 200 GB then $0.03/GB. Alternatively, fixed plans charge a flat monthly base ($10 for 250 MB up to $1,500 for 500 GB) with commands included.
When should I switch from pay-as-you-go to a fixed plan?
Around 5 million commands a month. The Fixed 250MB plan is $10 flat, and $10 of pay-as-you-go buys exactly 5 million commands. Above that, if your data still fits in 250 MB, the flat plan is cheaper. For the 1 GB fixed plan at $20, the breakeven is about 10 million commands.
Why is my Upstash bill higher than expected?
Command amplification. Upstash bills per command, not per request, and features like sliding-window rate limiting fire 3 to 5 Redis commands per check. A page that makes several Redis calls multiplies your command count, so traffic that looks modest can generate millions of billable commands.
Does Upstash charge differently for reads and writes?
Per command, no: reads and writes are the same $0.20 per 100,000 commands on pay-as-you-go. But on a global database the mix does matter, because Upstash replicates every write to each read region and bills each replication as its own command. With one primary and one read region, 100,000 writes cost $0.40 while 100,000 reads still cost $0.20. On a single-region database the mix is irrelevant, and on Fixed plans commands are never metered at all.
Is Upstash cheaper than Redis Cloud?
It depends on throughput. For spiky, low-idle or serverless workloads, Upstash's scale-to-zero per-command model is usually cheaper because you pay nothing while idle. For steady, high-throughput workloads running around the clock, a server-based option like Redis Cloud with unmetered operations can be cheaper. Compare your monthly command volume against a flat server price.
What is the Upstash Prod Pack?
The Prod Pack is a flat $200/month per database add-on that adds an uptime SLA, multi-zone high availability, encryption at rest, SOC-2 compliance, and Prometheus and Datadog exports. It is worth it for revenue-critical production databases and usually overkill for hobby projects.
Related reading
Neon Pricing in 2026: What Serverless Postgres Costs
Neon bills Postgres by the CU-hour with scale-to-zero. Here is the 2026 rate card, the always-on trap that 5x-es your bill, three worked 30-day bills, and the crossover versus a fixed instance.
Cloudflare Workers pricing in 2026: the real bill when you pay for CPU, not wall-clock time
Cloudflare Workers bills CPU time, not duration, which inverts everything you know from AWS Lambda. Here is the 2026 pricing, three worked monthly bills, what the $5 platform minimum actually covers across KV and Durable Objects, and the 3-millisecond breakpoint that decides your cost.
Render Pricing in 2026: What a Real Monthly Bill Actually Looks Like
Render's advertised prices hide the real bill. In 2026 your cost is three stacked layers: a workspace plan, per-service compute, and metered usage. A solo production app starts near $13/mo (not $7), a small team app around $115/mo. Here is the arithmetic, with three worked 30-day bills.


