MeterFlow

Usage-based billing for SaaS and AI products

Meter it. Gate it. Charge for it.

MeterFlow counts what your customers use, keeps their credit balances and tells your app when to say no. A flat monthly plan from free to $199, never a percentage of your revenue. It works next to any payment provider — Paddle, Polar, Lemon Squeezy, Chargebee and Razorpay connect without code — and the API key you use decides whether you are writing test data or live.

  • Free plan, no card
  • Never a % of your revenue
  • Works next to any payment provider
  • Test and live by key prefix
// 1. install
npm install meterflow

// 2. connect
const mf = new MeterFlow({ apiKey: 'mf_live_…' });

// 3. ask before you act
const gate = await mf.entitlements.check('ana', 'images.generated');
if (!gate.allowed) return askToUpgrade(gate);

// 4. report what happened
await mf.usage.record({
  customer_external_id: 'ana',
  event_name: 'images.generated',
  value: 1
});
# 1. install
pip install meterflow

# 2. connect
mf = MeterFlow(api_key="mf_live_…")

# 3. ask before you act
gate = mf.entitlements.check("ana", "images.generated")
if not gate["allowed"]:
    return ask_to_upgrade(gate)

# 4. report what happened
mf.usage.record({
    "customer_external_id": "ana",
    "event_name": "images.generated",
    "value": 1,
})

What you get

The whole billing project, already built.

Everything between “a customer clicked” and “a correct invoice went out” — the part every team ends up building twice.

Meters and usage events

Name the things you sell — images generated, minutes transcribed — and report each one as it happens. Events are stored, then turned into charges by a background worker.

Plans and subscriptions

A plan is a price, a period and what is included. Put a customer on one and it renews itself; change the plan and every subscriber follows.

An immutable credit ledger

Every grant and deduction is an append-only entry with a reason and a timestamp. Balances are derived, never typed over — so a dispute six months later has an answer.

Entitlements: ask before you act

One call tells your app whether this customer may do this thing right now, and why not if not. Hard limits, missing subscriptions and empty balances all come back as a plain reason.

Test and live, sealed apart

Test keys and live keys write to separate data. Break things on purpose in test; nothing leaks into real balances or real invoices.

Webhooks and alerts

Low balance, limit reached, plan renewed — signed webhooks with retries, so your app and your team hear about it the moment it matters.

Retry-safe writes

Every write accepts an idempotency key. A dropped connection or a doubled request charges the customer once, not twice.

A dashboard for everyone else

Prices, plans, balances and customer lookups live in a browser tab with roles — so support and finance never need a deploy.

Why this one

Test money and real money never meet.

The key your app uses decides where the data goes. A test key writes test subscriptions, test balances and test events; a live key writes the real ones. No flag to forget, no environment variable to get wrong.

Most metering platforms share one dataset between staging and production. Isolating them by key is rare — and it is on every MeterFlow plan, including the free one.
mf_test_4b1c…pretend customers, pretend balances, break it on purpose
mf_live_9c4b…real customers, real money, real invoices

Self-serve from $29

Most alternatives jump from a free tier straight to several hundred dollars a month and a sales call. MeterFlow has four plans you can pick yourself, and every feature is on every plan.

A person answers

MeterFlow is built and run by an independent developer in London. Email support goes to the person who wrote the code, and the changelog is what actually shipped.

For your developers

Two SDKs, one REST API.

Fully typed, one dependency each, idempotent writes and automatic retries built in. Anything else — Go, Ruby, PHP — calls the REST API directly.

Node.js

npm install meterflow

Python

pip install meterflow

Everything else

GET /api/v1/…

Pricing

Flat monthly plans. No per-event surprises.

Each plan is a fixed price with a monthly event allowance. Upgrading raises the limits; no feature is locked behind a higher tier.

Getting started

Count it once. Charge for it properly.

Create an account, make a project, copy a key. Your first metered event can be recorded before your coffee goes cold.

↑