API monetization platform for teams that sell an API
Keys, rate limits, quotas and Stripe usage billing for your API. Add the SDK to your server and requests never pass through us.
Step 1: Add the SDK to your API
A few lines of middleware. Keys and limits are checked in your process.
server.jsimport express from "express"; import { usageRail } from "@usagerail/node/express"; const app = express(); // Checks the API key, rate limit and quota app.use(usageRail({ appKey: process.env.USAGERAIL_APP_KEY, auth: "api-key", })); app.post("/v1/verify", verifyEmail);Step 2: Customers create their own keys
In a portal on your domain, with your plans and your branding.
developers.mailcheck.dev/keysAPI keys
Create keyProductionCreated just nowmck_live_k7Gx2PqA4vR9tLwQe2ZsXb7nJc3MyHd8KfP1aUo629139iCopyShown once. Copy it now.
Pro plan, this month78,214 of 100,000Step 3: Usage is billed through your Stripe
Once per period, with the included requests already applied.
Mailcheck API
Invoice MCK-0042Oct 1 to Nov 1, 2026
- Pro plan
- $29.00
- Pro usage128,400 requests, first 100,000 included
- $14.20
- Total
- $43.20
Charged to the card on file by Stripe
Example plan: $29 a month with 100,000 requests included, then $0.50 per 1,000.
Everything between a request and an invoice
One SDK and one dashboard, in the order a request meets them.
Before the request runs
- API keys
- Your customers create, rotate and revoke keys. The SDK checks them inside your process.
- Rate limits
- Per customer, per second and per minute. Over the limit gets a 429 with Retry-After.
- Quotas
- Per plan: bill the overage, stop at the limit, or draw down prepaid credits.
After it runs
- Metering
- Counts per customer and endpoint, in requests or your own unit, such as tokens.
- Analytics
- Usage by customer, endpoint and outcome (2xx, 4xx, 5xx), next to quotas and billing.
At billing time
- Plans and checkout
- Prices are created on your Stripe account. Customers pay with Stripe Checkout.
- Usage invoices
- Usage goes onto each customer's Stripe invoice at the end of the period.
- Prepaid credits
- Sell credit packs. Balances, expiry and refunds are tracked for you.
For your customers
- Hosted portal
- Sign-up, keys, usage, plan changes and credits, on your own domain.
- Embeds
- A pricing table for your website and a usage widget for your dashboard.
Your requests never pass through us
Many API monetization platforms sit in front of your API as a gateway. UsageRail doesn't. The SDK makes its decisions in your server and sends us totals, which is also why we can price by plan instead of by request.
Checks happen in your process
The SDK keeps a synced copy of your keys and limits. In our Node.js benchmark it adds under 20 µs per request at p99.
We receive per-minute totals
Every 60 seconds the SDK sends counts per customer and endpoint. Request and response bodies stay on your server.
Stripe gets one event per customer per period
Two hours after a billing period ends, the total goes to your Stripe account, and we check the finalized invoice against our own count.
Writing your API in Go, PHP, Ruby or another language? Your server can call our HTTP check endpoint instead. That adds one network call per request.
Your customer
Calls your API with their key
Your API server, with the UsageRail SDK
Key valid, under the rate limit, quota left: the request runs
UsageRail
Counts, quotas, plans, portal, reconciliation
Your Stripe account
Invoices your customer and collects payment
Free until you bill $1,000 a month through it
No revenue share. Stripe's own fees go to Stripe, as they would anyway.
Free
For APIs starting to charge
$0/month
No card needed
- Bill up to $1,000/month
- 1M requests/month
- 1 live app
- 1,000 end customers
- 7 days of analytics
Starter
For one API that's earning
$29/month
- No billing limit
- 2M requests/month
- 1 live app
- 10,000 end customers
- 30 days of analytics
Growth
For a few APIs or a busy one
$79/month
- No billing limit
- 10M requests/month
- 3 live apps
- Unlimited end customers
- 90 days of analytics
Scale
For heavy usage, long history
$199/month
- No billing limit
- 50M requests/month
- 10 live apps
- Unlimited end customers
- 365 days of analytics
- Priority email support
Every plan includes API keys, rate limits, quotas, Stripe checkout and usage invoices, the hosted portal, and as many test apps as live apps. Paid plans can hide the “Powered by UsageRail” link.
Guides and tools
Guides
- API monetizationPricing models and how to start charging
- Usage-based pricingPer request, tiers, credits and hybrid plans
- Usage-based billingWhat to meter and how Stripe invoices it
- Metered billingIncluded units, overage and period-end reporting
- Stripe usage-based billingStep-by-step setup with Node and Python
- API rate limitingAlgorithms, 429 headers and working code
Questions about UsageRail
Plans, limits and the free tier are covered on the pricing page.
- What is an API monetization platform?
- Software that turns an API into a product you can sell: API keys for each customer, rate limits and quotas per plan, usage metering, checkout and invoices. UsageRail does this with an open-source SDK in your API server plus a hosted service, and bills through your own Stripe account. There's no gateway in front of your API.
- Which languages and frameworks does it work with?
- The Node.js SDK covers Express, Hono, Fastify and Next.js, including Next.js on Vercel and Hono on Cloudflare Workers. The Python SDK covers FastAPI, Flask and Django. For Go, PHP, Ruby, Java, .NET or anything else, your server calls our HTTP check endpoint at the start of each request, which adds one network call. The docs have a guide for each.
- What happens to my API if UsageRail is down?
- With the SDK, your API keeps serving, because requests don't pass through us. Keys the SDK already knows keep working from its local copy for up to 24 hours. By default, a key it hasn't seen yet gets a 503, and requests that need more quota are let through and counted once we're back; you can switch either setting. Usage that can't be sent is retried for up to 10 minutes, then dropped and never billed. With the HTTP check, your code decides whether to serve a request it couldn't check.
- How do I get paid?
- Through your own Stripe account. You connect it with a restricted API key, your customers pay on Stripe Checkout, and the money lands in your Stripe balance and pays out on your usual schedule. UsageRail never holds the money and takes no percentage of it. Sales tax stays with you; if Stripe Tax is on in your account, Checkout adds it.
- Can I charge by usage, by subscription or with prepaid credits?
- Yes, chosen per plan: a flat monthly or yearly price, a monthly base fee with included usage and overage, or prepaid credit packs that draw down as customers use your API. Usage can be requests or your own unit, such as tokens. For usage-based billing, UsageRail sends each customer's total to Stripe once per period, then checks the finalized invoice against its own count.
- I already bill customers in Stripe. Do I have to move them?
- No. You map your existing Stripe prices to UsageRail plans in the console. Those customers get the plan's limits and keep paying what they pay today, and you keep managing their subscriptions in Stripe. For a usage price, UsageRail reports to your existing meter from the first full billing period after you map it. The existing subscriptions guide walks through it.
- What do my customers get?
- A hosted developer portal on a usagerail.app address or your own domain, with your name, logo and colour. There they sign up, create and rotate API keys, see their usage, change plan, buy credits and open Stripe's billing portal. You can also embed a pricing table on your website and a usage widget in your own dashboard.
- What data does the SDK send to UsageRail?
- Per-minute totals: counts by customer, route template, method and outcome. It doesn't send request or response bodies, IP addresses or raw API keys, and keys are stored only as SHA-256 hashes. The SDK is open source under the MIT license, so you can read exactly what it sends.
Try it on your API
Sign up with your email; the free plan needs no card. API keys, rate limits, quotas, usage billing through your own Stripe and the customer portal all work today.