---
title: "overlane billing check"
description: "Ask whether a spend is allowed now; exits 6 when a limit or cap refuses it"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.overlane.app/llms.txt
> Use this file to discover all available pages before exploring further.

# overlane billing check

{/* Generated by apps/docs/scripts/generate.mjs (CLI pages from the command registry in packages/cli). Do not edit; run `pnpm --filter @overlane/docs gen`. */}

Asks the billing service before a review, CI run or hosted inference call: within the allowance, over it and billed (with a notice), or refused (a plan with no overage path, a reached spending cap, a read-only workspace). A refusal exits 6 and names the next command.

## Usage

```sh
overlane billing check --meter METER [--quantity N] [--cost-micros N] [--project ID] [--agent ID] [--byok]
```

## Flags

| Flag | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `--meter` | one of `reviews`, `ciMinutes`, `docsCalls`, `hostedInference` | yes |  | What is being spent |
| `--quantity` | string | no |  | Units, default 1 |
| `--cost-micros` | string | no |  | Provider cost of a hosted inference call, in millionths of a dollar |
| `--project` | string | no |  | The project, for a project cap |
| `--agent` | string | no |  | The agent token, for an agent cap |
| `--byok` | boolean | no |  | The call runs on your own key: no platform charge |

## Examples

```sh
overlane billing check --meter reviews
overlane billing check --meter hostedInference --cost-micros 2000 --agent tok_1
```

## Behavior

- Effect: `read` (changes nothing).
- Needs credentials: yes. Uses the network: yes.
- Supports `--dry-run`: no. Accepts `--force`: no.
- Machine-readable description: `overlane schema billing check`.

## Result

With `--json` (the default when stdout is not a terminal) the command prints this JSON Schema's shape on stdout.

```json
{
  "type": "object",
  "properties": {
    "tenantId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
      "description": "tenant identifier"
    },
    "meter": {
      "type": "string",
      "enum": [
        "reviews",
        "ciMinutes",
        "docsCalls",
        "hostedInference"
      ]
    },
    "outcome": {
      "type": "string",
      "enum": [
        "within_allowance",
        "overage",
        "refused",
        "cap_reached",
        "read_only"
      ]
    },
    "allowed": {
      "type": "boolean"
    },
    "chargeMicros": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "message": {
      "type": "string",
      "minLength": 1
    },
    "nextCommand": {
      "type": [
        "string",
        "null"
      ]
    },
    "exitCode": {
      "anyOf": [
        {
          "type": "number",
          "const": 0
        },
        {
          "type": "number",
          "const": 6
        }
      ]
    }
  },
  "required": [
    "tenantId",
    "meter",
    "outcome",
    "allowed",
    "chargeMicros",
    "message",
    "nextCommand",
    "exitCode"
  ],
  "additionalProperties": false
}
```

See [exit codes](/cli/#exit-codes) for the status the process returns.

Source: https://docs.overlane.app/cli/billing-check/index.mdx
