Cost Optimization

How to Monitor Upstash Costs and Usage (3 Methods)

John Baker John Baker • Sep 30, 2026 • 13 min read • Updated September 30, 2026
How to Monitor Upstash Costs and Usage (3 Methods)
Summary

Upstash pricing mixes per-request and fixed plans across Redis, QStash, and Vector. Track the bill with Cost Explorer, budgets, Torii, and the Developer API.

Ask about this article

Opens Claude in a new tab to answer, using this article as the source.

Upstash pricing bills pay-as-you-go customers per request, and every product runs its own meter on its own page. Redis counts commands, QStash counts messages, and Vector and Search count requests, so a company’s Upstash cost is several meters added together across databases that different engineers created.

The only spending control in the Upstash console is a budget on each pay-as-you-go Redis database, set one at a time. Nothing in the docs rolls those budgets up into an account-wide limit or alert.

Three methods keep that spend in view, and each one pulls the numbers from a different place. The Upstash console shows cost database by database, Torii puts spend from your finance systems next to each team’s members, and the Upstash Developer API returns each database’s monthly cost to a script.

How Does Upstash Pricing Add Up on Your Bill?

The main Upstash pricing page offers two models: pay per request, or pay a flat price on a Fixed plan sized for steady usage. The table covers Redis, Vector, QStash, Workflow, and Search. Box bills pay-as-you-go by the active CPU hour, and Blob bills for storage and operations, per the Box and Blob pricing pages.

Upstash pricing by product

Product Billed on Pay-as-you-go rate Free tier Fixed plans from
Redis Commands $0.2 per 100K 500K commands a month, 256 MB of data, 10 GB of bandwidth $10 a month
Vector Requests $0.4 per 100K 10K queries and updates a day $60 a month
QStash Messages $1 per 100K 1,000 messages a day $180 a month
Workflow Steps $1 per 100K 1,000 steps a day $180 a month
Search Requests $0.05 per 1K 20K queries a month Not listed

QStash bills every delivery attempt as a message, and the Workflow docs count each context.call as two messages.

Source: Upstash Redis, Vector, QStash, Workflow, and Search pricing pages and the Workflow docs, checked September 2026.

Upstash Redis pricing on pay-as-you-go comes to $0.2 per 100K commands on the Redis pricing page. Writes cost more than that once a database has read regions. The Redis docs count every replicated write as a command, so with one read region 100K writes cost $0.4 instead of $0.2.

Fixed plans swap the per-request meter for a flat monthly price, which runs from $10 for 250 MB to $1,500 for 500 GB (Redis pricing page). Read regions cost extra on that page’s tier table, at $5 to $750 a month each. A Fixed database you never touch still bills, per the pricing FAQ: “For Fixed plans, you are charged pro-rata for the days the database was active, even if you did not use it.”

With auto-upgrade on, the FAQ adds, a database that hits its bandwidth or storage limit moves up to the next tier. In Upstash’s June 2026 pricing comparison, 100 million commands a month cost $200 on pay-as-you-go against a flat $20 on the Fixed 1 GB plan.

The Upstash free tier changed in March 2025, so older guides that quote a daily limit describe a plan that no longer exists. Co-founder Enes Akar announced it on the Upstash blog: “The Free Tier now includes 500K commands per month instead of the previous 10K daily limit.”

What goes into one Upstash Redis pay-as-you-go bill
  1. 1Commands

    $0.2 per 100K, with each write counted again in every read region.

  2. 2Plus storage

    $0.25 per GB past the first 1 GB, summed across replicas and regions.

  3. 3Plus bandwidth

    $0.03 per GB once monthly bandwidth passes 200 GB.

  4. 4Plus the Prod Pack

    $200 a month per database, only if you turn it on.

Source: Upstash Redis pricing page and Redis docs, checked September 2026.

Use the Upstash Console’s Cost Explorer and Usage Tab

Upstash splits its spend views between account screens and each database’s own detail page, so a full monthly check touches both. The table maps each number to its screen.

Which Upstash screen shows which number

Where What it shows
Account > Cost Explorer Monthly Request, Storage, and Cost per database, in US dollars
Database page > Current Month Daily cost for the billing month
Database page > Usage tab Data Size, Throughput, Top Commands Usage, and Change Budget
QStash console > Overview tab Message usage and cost for QStash and Workflow
Account > Payment History Receipts and failed-payment retries
Account > Billing Cards and the billing email
Account > Teams Who holds the Owner, Admin, Dev, and Finance roles

Source: Upstash account, metrics, billing, and QStash docs, checked September 2026.

Upstash Redis database page: where cost and budget live
Part of the pageWhat it shows
Current Month chartDaily cost across this billing month
Daily Request chartRequests per day over the last 5 days
Usage tab chartsData Size, Throughput, and Top Commands Usage
Usage tab, Change BudgetThe monthly budget
Pay-as-you-go databases only

Source: Upstash metrics and billing docs, checked September 2026. Illustration of the page layout, not a screenshot.

1. Open Account > Cost Explorer

From the console’s left menu, select Account > Cost Explorer and pick a month to see its Request, Storage, and Cost figures. It gives the monthly Upstash cost of your databases on one screen, and the Cost Explorer docs note that current-month values can lag by up to an hour.

2. Check each database’s plan on the database list

The database list shows each database’s region and plan, which is one of free, pay-as-you-go, fixed, or enterprise. Flag the pay-as-you-go databases for step 5.

3. Read the Current Month chart on the database page

Open a database to reach its detail page, where the Current Month chart plots its daily cost across the billing month. The Daily Request chart covers the last five days (Upstash metrics docs), so use it to spot a recent jump rather than a monthly trend.

4. Find what drives commands on the Usage tab

The Usage tab holds the detailed charts, including Data Size, Throughput, and a Top Commands Usage graph with the exact command history. Per Upstash’s troubleshooting guide, the console itself sends SCAN, GET, TTL, and EXISTS commands, which add to the database’s command count.

5. Set a budget with Change Budget

Older Upstash copy described a built-in monthly ceiling for pay-as-you-go, which the current docs have dropped. The Upstash comparison docs now read: “By default, there is no monthly price ceiling on a pay-as-you-go database, but you can set a budget to cap your costs.”

To set one, open the database’s Usage tab and click Change Budget under the cost metric. The budget exists only on pay-as-you-go, and Upstash emails at 70% and 90% of it (Redis pricing docs).

At the cap, the same docs say the database is rate limited and the total cost stays within the budget. After a mid-month switch from Fixed, the budget tracks just the pay-as-you-go spending.

6. Check QStash and Workflow on the Overview tab

QStash and Workflow message usage and cost appear in the Overview tab of the QStash console. Upstash documents no budget screen or alert emails for QStash in the console, and no budget at all for Vector or Search. A QStash budget, if set, shows up in the Developer API instead.

7. Download receipts from Payment History

Receipts are under Account > Payment History, where you can download each one and retry a failed payment. Cards and the billing email are managed on Account > Billing.

8. Review team roles and personal databases

The Finance role on Account > Teams can manage payment methods only, not databases or users. Personal accounts stay outside every team. As Upstash’s teams docs put it, “The databases in your personal account are not shared with anyone.”

A database on an engineer’s personal account and card counts as shadow IT, meaning software run without IT’s review, and no team screen in the console lists it.

Use Torii to Track Upstash Spend Across Teams

Upstash spend is split across teams, each with its own members, and across whichever cards pay the bills. Torii’s SaaS management platform puts the two back together, reading members, roles, status, and license counts through the Upstash connector and taking the charges from your card, expense, and ERP feeds.

1. Sign up for Torii

Start with the free two-week proof of concept, which sets up the account your Upstash teams connect to.

2. Connect each Upstash team and your spend sources

In Upstash, create a Read Only key under Account > Developer API. Copy the team’s Team ID, the value after teamid= in the address bar of its Settings page. Then switch to Torii’s Integrations page and enter the email of the Upstash account that created the key, the key itself, and the Team ID, following the Upstash integration help article.

Each connection syncs one team (see the Upstash integration page), so connect Upstash once per team. Only accounts created directly with Upstash can connect, not ones opened through Vercel or Fly.io.

Next, connect the finance system that pays Upstash: an expense tool, a card program like Ramp or Brex, or an ERP like NetSuite. For a charge that doesn’t clearly name Upstash, add a Match rule under Expenses > Matching rules so Torii assigns it to the app.

3. View Upstash spend and members in Torii

On the Upstash application page, the Expenses tab shows the 12-month total and each charge’s data source, and Torii tracks the app’s month-over-month spend. The member list shows each person’s role and status, and an invite nobody accepted appears as Invited with an inactive license. That status is the one inactive-seat signal this connector supplies, refreshed on Torii’s daily integration sync.

Upstash prices requests and plans rather than seats, so open the Cost Allocation tab, choose Configure, and pick top-down allocation by expenses. Torii spreads the Upstash spend across its current users with access and derives a cost per user for IT chargebacks.

Torii SaaS visibility page showing the SaaS Portfolio dashboard with tiles for all apps, sanctioned apps, and apps without owners
Torii's portfolio view, where Upstash sits alongside your other apps.
Upstash spend for finance, team seats for IT:

Torii ties Upstash charges from your finance feeds to the members and roles it reads from each Upstash team you connect. Finance sees one total and its monthly trend, and IT sees who holds a seat in every connected team, including invites still marked Invited. Book a Torii demo to see it on your own Upstash spend.

Use the Upstash Developer API

Each Redis database’s cost for the current month comes back from a single Developer API call, so a platform team can build a daily cost sheet. Teams that already track OpenAI spend in a script can add Upstash to the same scheduled job.

1. Create a Read Only Developer API key

Go to Account > Developer API, click Create API Key, choose Read Only and an expiry, and copy the key, which is shown once. Calls use HTTP Basic auth with your account email and the key, and they work only for accounts created directly with Upstash.

2. List every database with its plan and budget

Call GET /v2/redis/databases to list every database with its database_id, database_name, type, and budget fields. The type field holds the payment plan (free, payg, pro, or paid), and budget holds the allocated monthly budget, which caps spend on payg databases alone.

3. Pull each database’s monthly cost

Pass each database_id from the list to GET /v2/redis/stats/{id} to get its current figures. The API reference describes total_monthly_billing as the total cost in the current month, and the response carries dailybilling plus monthly request, bandwidth, and storage totals.

The QStash stats endpoint, GET /qstash/stats/{id}, returns a total_monthly_billing field of its own. GET /qstash/user/{id} returns the QStash budget, where 0 means no limit, and GET /vector/index/stats and GET /search/stats each return a current billing field (paths as written in the API reference).

5. Reconcile against Cost Explorer and receipts

Each month, reconcile the sheet’s Redis rows against Cost Explorer and its full total against the receipts in Payment History. The API reference documents no invoice, payment-history, or Cost Explorer endpoint. Keep the script read-only, because the PATCH update-budget endpoints for Redis and QStash change live caps.

Daily Upstash cost sheet built from the Developer API
ColumnWhere the value comes from
Databasedatabase_name (from API)
Plantype (from API)
Budgetbudget (from API)
Cost this monthtotal_monthly_billing (from API)
Requests this monthtotal_monthly_requests (from API)

Source: Upstash Developer API reference, list databases and get database stats, checked September 2026.

For developers
# Read-only calls. Needs curl and jq.
export UPSTASH_EMAIL="you@example.com"
export UPSTASH_API_KEY="your-read-only-api-key"
API="https://api.upstash.com/v2"

# 1. Every Redis database with its plan and budget
curl -s -u "$UPSTASH_EMAIL:$UPSTASH_API_KEY" "$API/redis/databases" \
  | jq '.[] | {database_id, database_name, type, budget}'

# 2. This month's cost and usage totals for one database
curl -s -u "$UPSTASH_EMAIL:$UPSTASH_API_KEY" \
  "$API/redis/stats/your-database-id" \
  | jq '{total_monthly_billing, total_monthly_requests, total_monthly_bandwidth, total_monthly_storage}'

# 3. One stats file per database, for a daily cost sheet
DATABASE_IDS="first-database-id second-database-id"
for id in $DATABASE_IDS; do
  curl -s -u "$UPSTASH_EMAIL:$UPSTASH_API_KEY" \
    "$API/redis/stats/$id" > "stats-$id.json"
done

As with monitoring Supabase costs, the right Upstash method depends on who owns the bill. Finance and IT paying for Upstash across several teams and cards get one view of spend and seats from Torii. A platform team can script the Developer API into a daily cost sheet, and an engineer with a few Redis databases can work from the console.

Frequently Asked Questions

Open the Cost Explorer under Account in the Upstash console for monthly requests, storage, and cost per database, then check each database's Usage tab for its command charts and budget. QStash and Workflow costs sit in the QStash console's Overview tab. Torii adds one view of Upstash spend built from your card and expense data.

Upstash bills each product separately, per request on pay-as-you-go or at a flat monthly price on a Fixed plan. The pricing pages list pay-as-you-go Redis at $0.2 per 100K commands, Vector at $0.4 per 100K requests, and QStash at $1 per 100K messages, while Fixed plans for Redis start at $10 a month.

The Redis free tier includes 500K commands a month, 256 MB of data, and 10 GB of monthly bandwidth, per the Redis pricing page. Upstash moved to that monthly allowance in March 2025, replacing the old limit of 10K commands a day, so any guide that still quotes a daily cap predates the change.

Not by default. The Upstash docs say a pay-as-you-go database has no monthly price ceiling, but you can set a budget on each Redis database from its Usage tab. Upstash emails at 70% and 90% of that budget, and at the cap the database is rate limited so the month's cost stays within it.

At high, steady volume a Fixed plan can cost far less. In Upstash's June 2026 pricing comparison, 100 million commands a month cost $200 on pay-as-you-go against a flat $20 on the Fixed 1 GB plan. Fixed plans bill pro-rata for every day a database is active, even if nobody uses it.

Upstash shows cost on its account screens and database pages, and databases in a personal account aren't shared with anyone. Torii picks up Upstash charges from your card, expense, and ERP feeds and ties them to the members and roles it reads from each connected Upstash team. From there it can spread that spend across those users as a cost per user.