Users

Get the current account's usage this billing cycle

What the account uses this billing cycle, per project and against its plan: runs, indexed storage, and the counts the plan caps — projects, active channels and triggers.

How many runs the account has made this billing cycle, and how many its plan includes. A run is one agent generation or one tool call — the unit every rung is priced in. Every tool call counts, including those an agent makes inside a generation; a client tool counts nothing.

Counted across the projects this account is the billing owner of, over the current UTC calendar month, from the meter itself. Archived projects are included: the runs they already made were made.

On the free plan the allowance is enforced. An account that has used it is refused 403 plan_limit_reached with resource: "runs" on everything that starts a generation and on a direct tool call — on its own provider credential as much as on a managed model, because a run is a run — until the billing month turns or it upgrades. On pro and business nothing is refused: runs past the allowance are billed at the overage rate those plans are sold with. A contract plan is not counted.

The other thing that stops a managed-model generation is a negative credit balance, which is GET /v1/users/me/billing, and it never applies to your own credential.

This route counts live; the refusal reads a figure counted every few minutes. So the two can differ by a burst: this is the more current number, and a refusal quotes the one it actually enforced.

It is also more expensive than the balance read: it reads the runtime several times per project. Poll it on the order of minutes, not seconds. A figure that could not be read is null rather than failing the request.

get/v1/users/me/usage

Request

  • Base URL: https://api.naturali.ai
  • URL: https://api.naturali.ai/v1/users/me/usage
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://api.naturali.ai/authorize, token URL https://api.naturali.ai/token, scopes: mcp:access)

Response

The account's usage for the cycle.

cycle_fromstring date-time required

Start of the billing cycle the runs were counted over — the first instant of the current UTC calendar month.

pending_spend_usdnumber nullable required

Model and embedding spend metered since the balance was last reconciled, across every project the account pays for. null when at least one project's meter could not be read.

spendable_balance_usdnumber nullable required

The credit balance less pending_spend_usd. A managed generation can be refused with 402 insufficient_credit while the credit balance still reads positive; while this is zero or above, none is. Check it before starting work that runs several generations. null when pending_spend_usd is.

Example response

{
  "cycle_from": "2026-07-01T00:00:00.000Z",
  "pending_spend_usd": 1.43,
  "spendable_balance_usd": 23.35,
  "projects": [
    {
      "project_id": "proj_V1StGXR8Z5jdHi6B",
      "name": "Support",
      "status": "active",
      "runs": 1284,
      "triggers": 2,
      "channels": 1,
      "storage": {
        "used": 0.42,
        "sampled_at": "2026-07-14T12:00:00.000Z"
      },
      "pending_spend_usd": 1.43
    }
  ],
  "limits": {
    "projects": {
      "used": 2,
      "limit": 3
    },
    "channels": {
      "used": 2,
      "limit": 3
    },
    "triggers": {
      "used": 2,
      "limit": 3
    },
    "storage": {
      "used": 2,
      "limit": 3
    },
    "runs": {
      "used": 2,
      "limit": 3
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.