AUDR by Chargebee

AUDR by Chargebee

Chargebee · Productivity · Business

AUDR by Chargebee is an open JSON standard that records who started each AI agent run and what every model and tool call cost, so teams can bill and budget from one shared record.

Interface preview of AUDR by Chargebee

About AUDR by Chargebee

What Is AUDR by Chargebee

AUDR stands for Agent Usage Detail Record. It's a specification, not a dashboard: one JSON object per metered operation, with a schema that any agent harness, router, model provider or billing system can write and read. Chargebee drafted it and publishes the spec under Apache 2.0.

The gap it fills is attribution. Your app knows which customer triggered a run. The router knows the token counts. The tool layer knows the sandbox stayed open for four minutes. Each system is observable on its own, and none of them can tell you that Acme Corp's support agent cost 38 cents last Tuesday. Most teams feel this first as an agent cost tracking problem, because the monthly model invoice hides which feature burns the budget.

The design borrows from telecom. Carriers settled on the Call Detail Record so one phone call could be described in a common format no matter whose switch handled it. AUDR makes the same bet for agent runs: a shared run ID, one authoritative writer per field, and merge rules a sink can apply without guessing.

Scope limits matter here. AUDR describes usage, not the invoice. Rating, the step that turns tokens into a billable amount, stays outside the spec, and the sink only validates, deduplicates and stores records.

Getting Started

  1. Install the core package for your stack, either pip install audr or npm install @openaudr/audr, then pick a sink: a local JSONL file for testing or Chargebee for billing.
  2. Create a client with that sink and an emitter block that names your component, app and version.
  3. Register an adapter for the runtime you already run, such as LiteLLM, the Vercel AI SDK, Mastra or NeMo Relay, or call client.record() yourself.
  4. Pass attribution with each request, usually an account or subscription ID plus an environment, then read the JSONL output or the joined records in your billing system.

Product Information

A quick look at AUDR by Chargebee's pricing, supported platforms, and performance.

Free PlanYes
Paid PlansFree (Apache 2.0), $0
PlatformWeb, Python, TypeScript
DeveloperChargebee
CategoryProductivity · Business
Release DateSep 2026
Latest UpdatedOct 2026
Website Visits2.5M
Website Global Rank18.1K
API AvailabilityYes

Best for

The users, tasks, and scenarios where this tool fits best.

Users

  • AI product engineers
  • Finance teams at AI companies
  • Platform engineers running usage-based billing
  • Founders pricing an agent product

Tasks

  • Attributing model spend to customers
  • Auditing tool costs
  • Preparing metered invoices
  • Investigating a margin problem

Scenarios

  • A support agent where one customer's volume dwarfs everyone else's
  • A multi-model stack with fallbacks
  • A pilot shifting from flat subscriptions to metered pricing

Key features

Shared run ID that survives every hop

The harness mints a run_id and a span_id for each operation, then passes both along in request metadata. Router, provider and tool layer echo the same pair. A sink joins records that share both values, so one model call described by three components lands as one row instead of three fragments.

One writer per field

AUDR splits ownership instead of letting every component overwrite a shared blob. The harness owns attribution: customer, environment, initiator. The router owns usage: tokens and provider. Conflicts get rejected rather than settled by whichever service wrote last.

Append-only corrections

Records are immutable. Fixing a bad number means emitting a new record from the same emitter component, and the sink replaces the earlier one by record_id. You keep an audit trail instead of losing the original value.

Raw usage counters, not derived prices

A record carries input tokens, output tokens, tool calls, compute seconds and similar counters. The cost object is optional and informational. That split lets you reprice history when a provider changes rates without rewriting what was measured.

Adapters for common agent runtimes

Prebuilt adapters cover LiteLLM, NVIDIA NeMo Relay, Merge Gateway, the Vercel AI SDK, Mastra and OpenRouter. Register one and every model and tool call emits a record, including the account it belongs to.

Sinks that reach billing systems

Chargebee and Lago ship reference sinks, and a file sink handles early testing. The contract is small: validate, deduplicate, merge, store. Pointing the same records at your warehouse or a queue is a realistic weekend task.

Pros and cons

Pros

  • Apache 2.0 license with a public schema and conformance fixtures, so you can test an implementation before committing to it.
  • Vendor-neutral by design: the same record works whether traffic runs through OpenRouter, LiteLLM or a gateway you wrote.
  • Small surface area. A record is plain JSON and the three merge rules fit on one page.
  • Python and TypeScript SDKs plus a file sink let one developer produce usable data in an afternoon.
  • No hosted account, minimum spend or sales call needed to start.

Cons

  • The spec is young. Version 1.1.0 arrived in October 2026, and field coverage will keep shifting.
  • The adapter and sink list is short. Teams on other gateways write their own integration.
  • Rating sits outside the standard, so you still need billing logic to turn usage into an invoice.
  • Nothing ships for storage, querying or alerting. Reporting stays your responsibility.

Frequently asked questions

Agent Usage Detail Record. It's a JSON specification for one metered operation in an agent system, covering who triggered it and what it consumed.