Skip to content
UsageRail

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.

  1. Step 1: Add the SDK to your API

    A few lines of middleware. Keys and limits are checked in your process.

    server.js
    import 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);
  2. Step 2: Customers create their own keys

    In a portal on your domain, with your plans and your branding.

    developers.mailcheck.dev/keys

    API keys

    Create key
    ProductionCreated just now
    mck_live_k7Gx2PqA4vR9tLwQe2ZsXb7nJc3MyHd8KfP1aUo629139iCopy

    Shown once. Copy it now.

    Pro plan, this month78,214 of 100,000
  3. Step 3: Usage is billed through your Stripe

    Once per period, with the included requests already applied.

    Mailcheck API

    Invoice MCK-0042

    Oct 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

Direct to your server

Your API server, with the UsageRail SDK

Key valid, under the rate limit, quota left: the request runs

Per-minute totals, every 60 seconds

UsageRail

Counts, quotas, plans, portal, reconciliation

One usage event per customer per period

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.

Billing period

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
Start free

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
Get Starter

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
Get Growth

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
Get Scale

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.

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.