Usage-based billing infrastructure

Every event metered.
Every cent accounted for.

UsageB sits between your product and your revenue stack — metering raw usage, rating it against any pricing model, and producing bills your finance team can sign without a spreadsheet open.

Live meter stream
us-east · prod
Rated revenue, this hour$184,220.37
    ingest → dedupe → aggregate → rate → ledger
    api.requests ·compute.gpu_seconds ·storage.gb_hours ·messages.delivered ·pipeline.rows_processed ·seats.active ·tokens.generated ·minutes.transcribed ·checks.executed ·builds.completed ·api.requests ·compute.gpu_seconds ·storage.gb_hours ·messages.delivered ·pipeline.rows_processed ·seats.active ·tokens.generated ·minutes.transcribed ·checks.executed ·builds.completed ·
    events metered every day
    12.4B
    ingestion uptime, trailing year
    99.99%
    rounding drift tolerated
    $0.00
    from event to rated revenue
    < 60s
    01Metering

    A single source of truth for usage

    Send raw events from your product with one API call. UsageB deduplicates, validates, and aggregates them in real time — so finance, product, and engineering all read from the same ledger, down to the individual event.

    • Idempotent ingestion at any scale
    • Streaming aggregation in seconds
    • Complete, replayable audit history
    POST /v1/measurements202 Accepted
    {
      "meter":     "compute.gpu_seconds",
      "account":   "acct_meridian",
      "value":     4815,
      "ts":        "2026-06-10T14:02:11Z",
      "uniqueId":  "evt_8f3a…"   // idempotent
    }
    4.2B
    events / day
    < 1s
    to aggregate
    0
    dropped
    02Pricing engine

    Price the way you sell, not the way your tools allow

    Tiers, volume bands, prepaid credits, committed spend, per-seat hybrids, custom enterprise terms — model them all declaratively, version every change, and trial new pricing against historical usage before a single customer sees it.

    • Any pricing model, declaratively defined
    • Versioned plans with effective dates
    • Simulate repricing on real usage data
    plan: scale_2026 · v14draft — A/B
    • First 1M calls$0.0009 / call
    • 1M – 50M$0.0006 / call
    • 50M +$0.0004 / call
    • Committed spend−18% blended
    prepaid credits applied first
    03Billing

    Bills that are already correct on the last day of the month

    UsageB rates usage continuously, not in a month-end batch. Every account's bill is computed and re-computed all period long — credits drawn down, commitments tracked, proration handled — then handed off to your invoicing and ERP systems.

    • Continuous, in-period bill calculation
    • Credits, commitments, and proration built in
    • Cent-level accuracy you can audit
    Invoice № 2026-0610recalculated 14:02 UTC
    • api.requests38,114,200$19,442.16
    • compute.gpu_seconds912,448$1,916.14
    • storage.gb_hours1,204,001$108.36
    • credit drawdown−$5,000.00
    Total due$16,466.66
    04Integrations

    Plugged into the systems your revenue runs on

    Sync rated usage and bills to Stripe for payment, Salesforce for the field, NetSuite for the books, and your warehouse for analysis. Build automations on webhooks and a full API so billing ops stops being manual ops.

    • Native CRM, ERP, and payments sync
    • Cloud marketplace billing included
    • Webhooks and APIs for everything
    usageb ledger
    Stripe
    Salesforce
    NetSuite
    Snowflake
    AWS Marketplace
    Slack
    How it works

    From raw event to closed books, in one pipeline

    01
    Ingest
    events in
    02
    Aggregate
    streaming
    03
    Rate
    pricing engine
    04
    Bill
    invoices out
    For engineers

    One endpoint between your product and getting paid

    Fire an event when usage happens. That's the whole integration. Idempotency keys make retries safe, batching is automatic, and everything downstream — aggregation, rating, invoicing — is configuration, not code.

    TypeScriptPythonGoJavaRubyTerraform
    track-usage.ts
    // meter usage the moment it happens
    import { UsageB } from "@usageb/node";
    
    const usageb = new UsageB(process.env.USAGEB_KEY);
    
    await usageb.measurements.create({
      meter:    "api.requests",
      account:  "acct_meridian",
      value:    1,
      uniqueId: requestId, // retries are free
    });
    “We re-priced our entire API tier mid-quarter and closed the month two days early. Before UsageB, either of those sentences would have been a joke.”
    VP Finance · series-C infrastructure company

    Stop billing on a spreadsheet's best guess

    Walk through your pricing model with our team and see it running on UsageB — usually within a week.