> For the complete documentation index, see [llms.txt](https://docs.robotmoney.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.robotmoney.com/govern/usage-api.md).

# Usage Meter

`GET /v1/usage/authorizations?window=30d` reports the tenant usage meter for decision-only authorizations. It is read-only. It does not enforce billing and does not collect payment.

## Authorization Usage

```http
GET /v1/usage/authorizations?window=30d
Authorization: Bearer <token>
```

The caller needs `audit:read` or an active admin user session. Agent principals are refused.

Response:

```json
{
  "tenant_id": "tnt_...",
  "window": "30d",
  "period_start": "2026-09-14T00:00:00.000Z",
  "period_end": "2026-10-14T00:00:00.000Z",
  "recorded_decision_count": 42,
  "voided_count": 2,
  "by_decision": {
    "approved": 30,
    "needs_review": 8,
    "blocked": 4
  },
  "by_execution": {
    "external": 42,
    "internal": 0
  },
  "by_agent": [
    {
      "agent_id": "agent_...",
      "recorded_decision_count": 42,
      "voided_count": 2
    }
  ],
  "included_allowance": 1000,
  "billable_recorded_decisions": 0,
  "unit": {
    "operation": "recorded_authorization_decision",
    "amount_atomic": "10000",
    "asset_decimals": 6,
    "asset_symbol": "USDC"
  },
  "amount_due": "0"
}
```

Simulated requests are never counted. Voided decisions stay in `recorded_decision_count` and are reported separately in `voided_count`.

A tenant with no active live entitlement gets `unit: null` and `amount_due: "0"`. Until the catalog has a decision-specific allowance field, the response reuses `included_api_units` as the recorded-decision allowance.
