Self-hosted, nothing to license
One binary you run on your own infrastructure. No per-event pricing from a vendor, no data leaves your network, no dependency on a third-party service for your billing source of truth.
Define a metric, send events, and read the total for any customer. No database, no message broker, no orchestration framework. Your application talks to Unimeter over a compact binary protocol, and the integration is this short.
client, _ := billing.New([]string{"localhost:7001"})defer client.Close()
client.Metrics.Create(ctx, billing.MetricSchema{ Code: "api_calls", AggType: billing.AggCount,})
client.Ingest(ctx, []billing.Event{ {AccountID: 42, MetricCode: "api_calls", Value: 1},})
usage, _ := client.Query(ctx, billing.QueryRequest{ AccountID: 42, MetricCode: "api_calls", Period: billing.CurrentMonth(),})async with AsyncClient(["localhost:7001"]) as client: await client.metrics.create(MetricSchema( code="api_calls", agg_type=AggType.COUNT, ))
await client.ingest([ Event(account_id=42, metric_code="api_calls", value=1), ])
usage = await client.query(42, "api_calls", current_month())Self-hosted, nothing to license
One binary you run on your own infrastructure. No per-event pricing from a vendor, no data leaves your network, no dependency on a third-party service for your billing source of truth.
Fast enough that it is never the bottleneck
Events land in under a millisecond. Totals come back in microseconds. Benchmarks in real environments exceed half a million events per second on a three-node cluster, and the design leaves room to grow.
Correct by construction, not by wishful thinking
Every event is written to disk and replicated to a quorum of nodes before acknowledgement. The logic is tested continuously by a deterministic simulator that replays thousands of failure scenarios against formal invariants.
Five lines to integrate, none to maintain
The client handles cluster topology, routing, retries, and failover on your behalf. Your application code gets Ingest and Query methods and nothing else to learn.
Usage-based API billing
Charge by the call, the request, or the token. Attach tags to break usage down by endpoint, feature, or plan tier.
Metered infrastructure
Measure compute seconds, storage gigabytes, or bandwidth transferred across regions and providers with one metric and a few dimensions.
Seat-based subscriptions
Track who is active right now, not just who signed up. Unique counting with joins and leaves keeps the total accurate as teams grow and shrink.
Credit and prepaid balances
Combine sums, thresholds, and real-time queries to power customer dashboards that show remaining credits the instant they change.