The surface is narrow on purpose: two metered endpoints and model: "auto". Model identity is not exposed.
ModelBeatbeta

Get an aggregate spend/usage summary

Account-level aggregate — total spend, request count, and token count over a date window — merged server-side with a balance snapshot. Authenticated and rate-limited like every `/v1` path, but never metered. Omit both `from` and `to` and the window defaults to the trailing 30 days; the response always echoes back the window actually queried, defaulted or not. For a per-request list instead of an aggregate, see `GET /requests`.

GET
/usage

Account-level aggregate — total spend, request count, and token count over a date window — merged server-side with a balance snapshot. Authenticated and rate-limited like every /v1 path, but never metered.

Omit both from and to and the window defaults to the trailing 30 days; the response always echoes back the window actually queried, defaulted or not. For a per-request list instead of an aggregate, see GET /requests.

Authorization

bearerAuth
AuthorizationBearer <token>

A ModelBeat API key, prefixed mb_live_, sent as Authorization: Bearer <key>.

Keys are issued in the ModelBeat console and are scoped to one tenant. The example value used throughout this document (mb_live_EXAMPLE_NOT_A_REAL_KEY_00000000000000000000) is a placeholder and will not authenticate.

In: header

Query Parameters

from?string

ISO 8601 date, inclusive. Defaults with to to the trailing 30 days if both are omitted.

Formatdate
to?string

ISO 8601 date, exclusive. Defaults with from to the trailing 30 days if both are omitted.

Formatdate

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/usage"
{  "total_spend": {    "amount": "37.14000000",    "currency": "USD"  },  "request_count": 0,  "token_count": 0,  "remaining_balance": {    "amount": "37.14000000",    "currency": "USD"  },  "from": "string",  "to": "string"}