Cost Optimization

How to Monitor Supabase Costs and Usage (3 Methods)

John Baker John Baker • Sep 29, 2026 • 14 min read • Updated September 29, 2026
How to Monitor Supabase Costs and Usage (3 Methods)
Summary

Track Supabase cost across orgs and projects with the Usage and Billing pages, Torii, and the Management API, plus what the Spend Cap does not cover.

Ask about this article

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

Supabase bills each organization separately, and Supabase’s billing docs confirm that every org carries its own plan, payment method, billing cycle, and invoices. Each project then adds its own compute. A company’s Supabase cost ends up split across several invoices landing in different billing inboxes.

The Pro plan starts at $25 a month on Supabase’s pricing page, but the invoice can land well above that figure. The only usage email Supabase documents arrives after a quota is already exceeded.

Supabase’s own Usage and Billing pages cover one org at a time, and the other two methods reach across orgs. Torii totals Supabase charges from your finance feeds and lists who holds access in each connected org, while the Supabase Management API scripts an inventory of each project’s add-ons.

What Drives Your Supabase Costs?

Supabase pricing has three layers, two charged per organization and one charged per project. The first is a flat plan fee per organization, which Supabase’s pricing page lists from $25 a month on Pro and from $599 a month on Team. The same page caps the Free plan at two active projects, which pause after one week of inactivity.

Compute is the second layer, billed per project by the hour, and a partial hour counts as a full one (Supabase compute docs). Supabase’s billing docs put the consequence plainly: “Each project you launch increases your monthly Compute costs.” Sizes on the compute page run from about $10 a month for Micro to about $3,730 a month for 16XL.

Pro and Team orgs get $10 a month in compute credits, enough for one Micro instance (Supabase pricing). Like the $25 Pro plan fee, that credit is counted once per organization, so any compute beyond one Micro instance shows on the invoice, whether it comes from a second project or a larger size.

Usage past the plan’s quota is the third layer, and every project in the organization draws on the same quota. Per the billing docs, usage from all projects is summed onto one invoice. The table below lists what Pro and Team include.

Disk can grow without anyone changing a setting, because paid plans expand it as the database fills. Supabase’s database size docs put the increase at 50%, for example from 8 GB to 12 GB. That takes a project past its 8 GB of included disk.

What goes into one Pro organization's Supabase bill
  1. 1Plan fee

    Charged per organization, from $25 a month on Pro.

  2. 2Plus compute

    Charged per project, by the hour, for every project in the org.

  3. 3Minus compute credit

    $10 a month per organization, enough for one Micro instance.

  4. 4Plus usage past quota

    MAU, egress, disk, and storage beyond the org's shared quota.

Source: Supabase pricing page, checked September 2026.

Usage item Included on Pro and Team Then
Monthly active users (MAU) 100,000 $0.00325 per MAU
Uncached egress 250 GB $0.09 per GB
Cached (CDN) egress 250 GB $0.03 per GB
Disk 8 GB per project $0.125 per GB
File storage 100 GB $0.0213 per GB per month
Compute credit $10 per month per organization Applied to compute, resets monthly

Source: Supabase pricing page and Supabase billing, egress, storage, and compute docs, checked September 2026.

Use Supabase’s Usage and Billing Pages

When the Spend Cap is off, Supabase’s cost-control docs recommend watching usage and costs on the organization’s Usage page. The Billing page holds the invoice side. Both pages are scoped to one organization, so repeat these steps in every org your company pays for.

Where What it shows
Usage page Each usage item against its quota, for one project or all projects
Billing > Upcoming Invoice Current spending plus an estimate for the billing cycle
Billing > Cost Control Whether the Spend Cap is on or off (Pro only)
Billing > Invoices Past invoices and a Pay now button for failed payments
Billing email Invoices, over-quota notices, and payment-failure notices, sent to the address an Owner or Administrator sets

Source: Supabase docs on cost control, monthly invoices, and access control, checked September 2026.

Supabase org Usage page, project filter set to All projects
Usage itemPro and Team quotaDetail on the page
Egress250 GB uncached, 250 GB cachedBreakdown by service on hover
Monthly Active Users100,000 per orgDaily breakdown on hover
Disk8 GB per projectDaily breakdown on hover
Compute Hours$10 monthly credit per orgBroken out by compute size

Source: Supabase billing, egress, and compute docs, checked September 2026. Illustration of the page layout, not a screenshot.

1. Open your organization’s Usage page

Pick the org that runs the most projects first, and go to its Usage page at supabase.com/dashboard/org/_/usage. Supabase’s pricing page points here for tracking usage. The Usage page shows how each project is doing against the plan’s limits.

2. Filter by project and time period

The project dropdown defaults to all projects, so narrow it to one project at a time and pick a time period. One busy project can use up the shared quota the others need.

3. Read each usage item against its quota

Work down the page through Egress, Monthly Active Users, Disk, and Compute Hours, comparing each item with the quota in the table above. Hover over a date to see egress broken down by service. Compute Hours are split by compute size.

4. Check the Upcoming Invoice on the Billing page

Open supabase.com/dashboard/org/_/billing and read the Upcoming Invoice section, which shows current spending and an estimate of the cycle’s total. Supabase’s billing FAQ adds that the plan fee is charged up front and usage in arrears. So this month’s invoice carries last month’s overage.

5. Review the Spend Cap under Cost Control

The Spend Cap sits in the Cost Control section of the Billing page, and it’s available only on Pro, where it starts switched on. With the cap on, a covered item past its quota is blocked until the next cycle and isn’t charged. Turn it off and the extra usage is billed.

Compute is never limited by the Spend Cap, even on a Pro org with the cap switched on. The cost-control docs state that “Usage items that are predictable and explicitly opted into by the user are excluded” from it. Team and Enterprise orgs have no cap at all and pay for any overages.

What the Spend Cap never caps:
  • ✓ Compute Project compute plus branching and read replica compute, billed by the hour
  • ✓ Custom domain and IPv4 address Add-ons you opt into, so the cap ignores them
  • ✓ Additional disk IOPS and disk throughput Disk performance upgrades on top of the included disk
  • ✓ Log drains Both Log Drain Hours and Log Drain Events
  • ✓ MFA phone and point-in-time recovery Security and backup features you switch on yourself

Source: Supabase Docs, Control your costs, checked September 2026.

6. Pull invoices and watch the billing inbox

Invoices arrive by email and sit on the organization’s invoices page at supabase.com/dashboard/org/_/billing#invoices. When a quota is exceeded on the Free plan or with the Spend Cap on, Supabase emails the billing address and starts a grace period.

That notice comes after the fact, and Supabase documents nothing that fires any earlier, such as a budget or dollar-threshold alert. The cost-control docs say the Spend Cap “doesn’t allow for fine-grained cost control” and list “receiving notifications when certain costs are reached” among the things it can’t do. Several popular Supabase guides tell readers to set one up anyway.

7. Check who can see and change billing

Every organization role, Developer included, can view invoices and usage (Supabase access control docs). Only an Owner or Administrator can change the subscription, payment method, or billing email, and the Read-Only role exists only on the Team and Enterprise plans.

An org opened on a team lead’s card never reaches finance’s view, even though anyone with a role in it can read the invoices. Such an org counts as shadow IT (software bought without IT’s review), and in this case the unreviewed software holds a production database.

Use Torii to Track Supabase Spend Across Orgs

The Usage and Billing pages stop at the organization boundary, so a company running Supabase in more than one org has no combined total. Seat count won’t explain the bill either. Supabase’s pricing page lists unlimited team members on every plan.

Tracking Supabase across orgs takes a combined spend figure plus a record of each member’s access and role. Torii’s SaaS management platform builds the spend figure from the finance systems that pay Supabase, and it reads members and roles through the Supabase connector.

1. Sign up for Torii

Start by requesting Torii’s free two-week proof of concept, which gives you the Torii account you’ll connect Supabase to.

2. Connect Supabase and your spend sources

In Torii, open the Integrations page, find Supabase, and connect the integration. The connector reads each member’s role and status and counts Supabase licenses, a figure that equals the number of members with access (see the Supabase integration page).

Then connect the finance source that pays Supabase, such as an expense tool, a card program like Ramp or Brex, or an ERP like NetSuite. For NetSuite and Brex, Torii’s docs say it syncs transaction data from up to one year before the first connection.

Torii matches card charges and vendor bills to apps from their description and memo fields. If a charge doesn’t clearly name Supabase, add a Match rule under Expenses > Matching rules, and new charges arrive on the next daily sync (per Torii’s docs, integrations sync every 24 hours).

3. View Supabase spend and members in Torii

Open the Supabase application page in Torii, where the Expenses tab shows a 12-month total and the month-over-month trend. For each connected Supabase org, Torii lists the members with their role and status.

To split that spend, open the Cost Allocation tab, choose Configure, and pick top-down allocation by expenses. Torii divides the last 12 months of Supabase spend across the current members with access, which gives finance a per-member cost to roll up by team for IT chargebacks.

Torii can act on those roles through two Supabase workflow actions. Use Invite Supabase user when someone joins, and Change Supabase member role to move an Owner who changed teams down to a lower role.

Torii homepage with the SaaS Portfolio dashboard, showing tiles for all apps, sanctioned apps, and apps without owners
Supabase spend for finance, Owner roles for IT:

Torii picks up Supabase charges from your card, expense, and ERP data and ties them to the members and roles its connector reads. Finance gets one total across every org those feeds cover, and IT sees who holds the Owner role in each Supabase org you connect. Book a Torii demo to see it on your own Supabase spend.

Use the Supabase Management API

The Supabase Management API has no invoice, spend, or usage cost endpoint, so no script can pull the bill itself. It can still build an inventory across every org and project, recording each project’s add-ons at list price (compute size included), its request counts, and each org’s plan. A platform team can use that inventory to catch a project someone moved to a bigger compute size before the invoice does.

1. Create a personal access token

Generate a Supabase personal access token, scoped where you can, and store it in an environment variable. Every call goes to api.supabase.com/v1. Send the token as a Bearer token in the Authorization header.

2. Record each organization’s plan

Start with the list endpoints in the Management API’s Organizations section, which supply the organization slugs and project refs you need. Then call GET /v1/organizations/{slug} for each organization. The response carries the org’s name and plan, along with a few other fields.

3. List the add-ons applied to each project

Call GET /v1/projects/{ref}/billing/addons for every project ref you collected in the previous step. The API reference says it returns “the billing addons that are currently applied, including the active compute instance size” along with every option you could provision. Treat the prices in selected_addons as list prices with an amount and interval, not metered cost.

4. Get API request counts per project

The usage.api-counts endpoint splits a project’s requests into auth, realtime, REST, and storage over time, and usage.api-requests-count returns a single total. Request counts don’t appear in the pricing table above. Treat them as a trend signal for which project is growing fastest.

5. Reconcile against the invoice

Match the inventory against each month’s invoices to see which part of the bill it explains. It covers only the add-on and compute-size part, at list price, while MAU, egress, and storage overage still come from the Usage page. Never call POST or DELETE on the add-ons endpoint from a monitoring script, since those methods apply and remove add-ons and change the bill.

Add-on inventory built from the Management API
OrgPlanProjectAdd-onPriceInterval
name (from API)plan (from API)project refselected_addons (from API)price amount (from API)price interval (from API)

Source: Supabase Management API reference, get an organization and list project add-ons, checked September 2026.

For developers
# Read-only calls. Needs curl and jq.
export SUPABASE_ACCESS_TOKEN="your-personal-access-token"
API="https://api.supabase.com/v1"

# 1. Plan for one organization
curl -s -H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN" \
  "$API/organizations/your-org-slug" | jq '{name, plan}'

# 2. Add-ons applied to one project, including compute size
curl -s -H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN" \
  "$API/projects/your-project-ref/billing/addons" | jq '.selected_addons'

# 3. Request counts for one project (auth, realtime, REST, storage)
curl -s -H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN" \
  "$API/projects/your-project-ref/analytics/endpoints/usage.api-counts" | jq '.result'

# 4. Add-on inventory for a list of projects, one JSON file per project
PROJECT_REFS="first-project-ref second-project-ref"
for ref in $PROJECT_REFS; do
  curl -s -H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN" \
    "$API/projects/$ref/billing/addons" > "addons-$ref.json"
done

For one Supabase org run by one engineer, the Usage and Billing pages are enough. A platform team watching for add-on changes should script the Management API. Finance and IT teams with Supabase across several orgs and cards get more from Torii, which puts the spend in one total next to who holds each role.

Teams that already review OpenAI spend each month can add Supabase to the same review, starting with each org’s Upcoming Invoice estimate.

Frequently Asked Questions

Open your organization's Usage page in the Supabase dashboard to see each usage item against its quota, then check the Upcoming Invoice on the Billing page for current spending and an estimate for the cycle. Repeat this in every organization, because Supabase bills each one separately. Torii can combine Supabase spend across orgs from your card and expense data.

Supabase charges the plan fee per organization and compute per project. Its billing docs say each organization has its own plan, payment method, and invoices, and the pricing page lists Pro from $25 a month. Compute is billed by the hour, so every project you launch adds to the bill once the organization's $10 monthly compute credit is used up.

No. The Spend Cap is available only on the Pro plan, where it is on by default, and it blocks covered usage past quota until the next billing cycle. Per Supabase's cost-control docs, it never covers compute, custom domains, IPv4 addresses, log drains, MFA phone, or point-in-time recovery. Team and Enterprise organizations pay for every overage.

Supabase documents no budget or dollar-threshold alert, and its cost-control docs list "receiving notifications when certain costs are reached" among the things the Spend Cap can't do. The only documented usage email goes to the billing address after a quota is exceeded on the Free plan or with the Spend Cap on, followed by a grace period.

The $25 on Supabase's pricing page is the Pro plan fee for one organization. Each project adds hourly compute beyond the $10 monthly credit, and usage past the organization's quota is billed when the Spend Cap is off. Add-ons the cap never covers, such as an IPv4 address or a custom domain, are billed on top.

Supabase's Usage and Billing pages show one organization at a time, so Supabase itself offers no combined total. Torii builds that total from the Supabase charges in your card, expense, and ERP data, across every organization those feeds cover, and ties the spend to the members and roles its Supabase connector reads.