UsageTap Product

The control plane for product usage.

Meter consumption, apply customer policy, forecast behavior, embed visibility, and synchronize trusted usage with your commerce stack.

Your usage flow

Your product
SDK or HTTP
UsageTap
Meter · govern · predict
Commerce
Stripe + systems

UsageTap owns usage data and policy. Your provider keeps owning subscriptions, invoices, and payments.

One integration

Instrument the product lifecycle once.

Policy, not rewrites

Change plans and controls from operations.

Visibility on both sides

Give teams and customers the same truth.

Product walkthrough

See the full usage experience working together.

UsageTap connects the operator view, customer usage experience, forecasts, and plan controls. Walk through the product before exploring each capability below.

UsageTap in actionMeter → govern → predict
UsageTap walkthrough showing product usage, forecasts, and controls

Know what happened

Meter

Capture the product events that drive customer value and variable cost, with enough context to understand who used what.

  • LLM calls and tokens
  • API calls and agent actions
  • Custom meters and customer attribution
UsageTap operations dashboard with customer usage and cost

Decide what happens next

Control

Apply plan and customer policy before high-cost usage becomes a margin problem or an unpleasant billing surprise.

  • Allowances and replenishment
  • Hard and soft limits
  • Block, throttle, top-up, or allow overage
UsageTap rate limit and overage controls

Forecast usage

Forecast

Understand where usage and spend are heading while customer teams, operators, and customers still have time to act.

  • Usage and spend forecasts
  • Allowance runout prediction
  • Anomaly and divergence detection
UsageTap call-volume forecast

Make usage visible

Inform

Put current consumption and the next best decision inside your product, without building a new analytics surface from scratch.

  • Embedded React widgets
  • Usage versus allowance
  • Forecast, runout, and upgrade prompts
Light UsageTap customer usage widget

Reach the right team

Act

Route useful signals to customer and operations teams before renewal, runout, abuse, or an unexpected change becomes urgent.

  • Slack and email alerts
  • Expansion and upgrade signals
  • Adoption-drop indicators
UsageTap Slack alerts for usage events

Connect usage to commerce

Synchronize

Pass trusted usage into the systems that own subscriptions and payments while UsageTap remains focused on usage data and policy.

  • Stripe synchronization: available
  • Webhooks and internal outputs: available
  • Paddle and Clerk: planned
UsageTap plan configuration and commerce synchronization

Infrastructure and extensibility

The depth behind the six-step story.

UsageTap gives product teams a focused operating surface without closing off the billing, observability, and internal systems that already run the business.

Custom billing meters

Define the value unit that fits your product, including generated documents, searches, audio minutes, and agent actions.

OpenTelemetry exports

Stream calls, tokens, latency, and cost to OTLP-compatible tools including Datadog, Grafana, and New Relic.

Stripe synchronization

Send validated meter events and keep UsageTap customer plans aligned with the subscriptions Stripe already owns.

API, SDK, and webhooks

Integrate with the TypeScript SDK or plain HTTP, then deliver usage and policy events to internal systems through webhooks.

SDK and HTTP integration

Use the SDK or plain HTTP.

Check entitlement and policy before expensive work begins, then report the actual usage when it completes. The same pattern works for AI calls, APIs, and custom meters.

Read the integration reference →

Check customer policy, invoke your provider, then report the usage and outcome.

const begin = await usageTap.beginCall({
  customerId,
  feature: "document.generate",
  requested: { premium: true },
});

if (!begin.data.allowed.premium) {
  throw new Error("Premium calls exhausted for this customer");
}

const model = "openai/<model>";
const response = await openai.responses.create({
  model,
  input,
});

// Model name is illustrative; UsageTap supports multiple providers via your configured AI stack.

await usageTap.endCall({
  callId: begin.data.callId,
  modelUsed: model,
  inputTokens: response.usage?.input_tokens ?? 0,
  responseTokens: response.usage?.output_tokens ?? 0,
});

A separate product for input cost

Need to reduce the tokens inside each prompt?

Compress is purpose-built for prompt optimization and savings. It complements UsageTap without making compression part of the UsageTap control-plane story.

Explore Compress →

Usage data and policy, connected

Build the usage experience your product deserves.

Start with metering, then add controls, forecasting, customer visibility, and commerce synchronization when you need them.