Sandbox checkout wired (Stripe test mode). API live. Stripe meter push still dry-run — Billing Meter llm_tokens not created yet.

Own your usage meter.
Let Stripe send the invoice.

Usage Lab records billing-grade usage events for AI and SaaS products: tokens, API calls, jobs, bytes, seats. It dedupes retries, handles late events, rolls everything up per customer per month and pushes the totals into Stripe Billing.

See the 30-second demo

Who it's for

AI & SaaS founders on Stripe

You already bill through Stripe and want usage-based pricing without moving your whole billing stack.

Teams who want to own the meter

Your usage numbers live with you, are exportable and portable. Switch billers without re-instrumenting your product.

Not ready for a billing platform

No sales call, no implementation project, no percentage of your revenue.

What you get

One endpoint

POST /api/v1/usage with one event or a batch of 100.

Retry-safe

Send an Idempotency-Key. A retry returns the original event and is never counted twice.

Late events land right

Events up to 30 days late roll into the month they happened.

Sum, count, unique count

Tokens, requests, or monthly active users. Pick an aggregation per meter.

Monthly rollups

GET /api/v1/meters/:meter/rollups?month=YYYY-MM gives quantity per customer.

Pushed to Stripe dry-run

Monthly totals go to your Stripe Billing Meter as deltas, so late usage tops up instead of double-billing.

30-second demo

Send an event. Send it again. It counts once. API is live at https://usage-lab.marc-cf2.workers.dev.

curl -X POST https://usage-lab.marc-cf2.workers.dev/api/v1/usage \
  -H "Authorization: Bearer $USAGE_LAB_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: req_8f2c1" \
  -d '{"meter":"tokens","subscription":"cus_123","value":1500}'

# 201 {"event":{"status":"created","id":"evt_…","month":"2026-10"},"duplicate":false}
# same call again -> 200 {"event":{"status":"duplicate","id":"evt_…"},"duplicate":true}

curl "https://usage-lab.marc-cf2.workers.dev/api/v1/meters/tokens/rollups?month=2026-10" \
  -H "Authorization: Bearer $USAGE_LAB_KEY"

# {"rollups":[{"subscription":"cus_123","quantity":1500,"event_count":1, …}]}

Pricing

You pay a flat monthly fee for events per month and meters, in Canadian dollars. Never a percentage of your revenue.

Free
$0 CAD / month
  • 100,000 events / month
  • 3 meters
  • Full API, idempotency, rollups
  • No credit card
Free — no checkout
Pro
$12 CAD / month
  • 2,000,000 events / month
  • 10 meters
  • Stripe push of monthly rollups
Start Pro (test)
Ultra
$36 CAD / month
  • 20,000,000 events / month
  • 100 meters
  • Stripe push of monthly rollups
Start Ultra (test)
Free tier: 100k events and 3 meters every month, free forever. Enough to meter a real product before it earns anything. Going over doesn't drop your events; we'll tell you before anything changes.

Checkout links are Stripe test mode (Labs account). Live keys not connected.

How it compares

Usage LabFull billing platforms
Starts at$0, then flat CAD plansContact sales, or a monthly floor plus a % of billing
ScopeMeter + rollups + Stripe pushReplace your billing stack
Your invoicesStay in StripeMove to the platform

Early access

API and lander are live. Pro and Ultra can check out in Stripe test mode now:

Start Pro (test) Start Ultra (test)

Free stays waitlist / manual for now — no checkout. Stripe meter push is still dry-run until a Billing Meter and test secret key are wired.