See which customers, endpoints and plans drive your API traffic.
API Meter counts every request by customer, endpoint and plan, with error rate and p95 latency. Setup is one base-URL change. It's free up to 250K requests a month, then CA$3 per extra million. Built for indie devs and small API teams who have outgrown logs but can't justify $200+/mo for analytics.
Who it's for
Small B2B APIs with real traffic and real customers, where the team is 1 to 10 people.
Indie API builders
Your API has paying users. You want to know who calls what, and who's about to hit their plan limit, without wiring up a data warehouse.
Small API companies (up to ~5 APIs)
Per-customer usage for sales and support, per-endpoint errors for engineering, and one bill that scales with traffic instead of with seats.
Usage-priced products
If you bill by request, you need a trustworthy count per customer and plan. API Meter gives you a monthly per-customer usage export.
One base-URL change
Point clients at your API Meter URL. We forward every request to your origin unchanged and stream the response back. For each request we record method, endpoint, customer, plan, status and latency. That's all.
1. Add your API
Register your origin and prove you own it with a one-line verification file.
2. Swap the base URL
Use https://…/p/your-api/ in your SDK, docs or client config. Prefer middleware? A one-file Express/Node middleware is on the roadmap.
3. Tag the customer (optional)
Return X-MSA-Customer-Id and X-MSA-Plan from your origin. We read them and strip them before the response reaches the client. If you don't tag, we fall back to a hashed API key.
# before curl https://api.acme.dev/v1/orders/123 \ -H "x-api-key: $KEY" # after: same request, same response curl https://api-meter/p/acme/v1/orders/123 \ -H "x-api-key: $KEY" # optional, in your origin (Express) res.setHeader('X-MSA-Customer-Id', key.customerId); res.setHeader('X-MSA-Plan', key.plan); # recorded (no body, no query string, no IP) GET /v1/orders/:id cus_42 pro 200 87ms
Endpoints are normalized automatically (/orders/123 becomes /orders/:id), so your top-endpoints view stays readable.
What you get
Answers to the questions you actually ask, with no separate BI tool.
Overview
Requests, 4xx/5xx error rate and p95 latency over 24h, 7d and 30d.
Top endpoints
Volume, errors and p95 per normalized endpoint. Spot the slow one fast.
Per customer & plan
Who your heaviest customers are, which plan they're on, and who's trending toward their limit.
Usage meter
Month-to-date requests against your tier, with a warning at 80% and a projected month-end figure.
Usage export
Per-customer monthly counts as CSV, ready for your own usage billing.
Never breaks your API
Go past the free tier and we keep forwarding traffic. We stop recording at 125% until you upgrade, but your API stays up.
Pricing per million requests, in CAD
Pay for requests, not seats or API count. Every plan includes unlimited APIs and team members. Proposed pricing for early access; may change before launch.
Free
- Per-customer, per-endpoint, per-plan analytics
- Error rate & p95 latency
- Unlimited APIs and seats
- Traffic never blocked
Indie
- Everything in Free
- Usage CSV export per customer
- Usage alerts at 80% / 100%
- Monthly billing, cancel anytime
Higher volume
- Everything in Indie
- Longer history
- Priority support
How it compares at 5M requests / month
Public list prices checked Oct 11, 2026. Competitors bill in USD; we bill in CAD. Competitors also bundle more features, so this compares the analytics use case only.
| Product | What you pay at ~5M req/mo | Notes |
|---|---|---|
| API Meter (Indie) | CA$28/mo | CA$19 + 3 × CA$3. Monthly, unlimited seats |
| Treblle Core | US$233/mo, billed yearly | Includes up to 5M req, 5 APIs, plus docs and testing |
| Moesif Growth | US$790/mo | Plus US$75/mo per extra team member |
| Kong Konnect Plus | US$800+/mo | Gateway request fees alone, after re-platforming to their gateway |
FAQ
What data do you store?
Per request: timestamp, method, normalized endpoint, customer ID, plan, status, latency, byte counts and 2-letter country. We store no request or response bodies, no headers, no query strings and no IP addresses. Raw API keys used as customer IDs are stored as a salted hash.
Where is data stored?
On Cloudflare's global network. We bill in CAD and are operated from Canada, but we don't offer Canadian data residency.
Does the proxy add latency?
It runs on Cloudflare's edge and streams responses. We'll publish measured overhead before launch.
What happens if I go over the free tier?
We warn you at 80% and offer an upgrade at 100%. Past 125% we pause recording, but your API traffic keeps flowing.
Do I need to change my code?
No, just the base URL. Tagging customers with two response headers is optional and gives you cleaner per-customer data.