# See this month's usage

> Meetings and AI credits used and available for the key's own account, bonus credits and when they expire, the minutes cap per meeting, when limits reset (the calendar month) and when the plan renews (the billing date). In a team the totals are the team's, and `mine` is this person's share. `null` means unlimited, never zero.

`GET https://api-notetaker.nabrah.ai/ext/v1/usage`

Requires an API key in the `Authorization` header.

Meetings and AI credits used and available for the key's own account, bonus credits and when they expire, the minutes cap per meeting, when limits reset (the calendar month) and when the plan renews (the billing date). In a team the totals are the team's, and `mine` is this person's share. `null` means unlimited, never zero.

## Responses

- `200` — This month's usage for the key's account. `planUsed` is what counts against `allowance`; `used` also includes bonus credits.
- `401` — No key, an unknown key, or one that has been revoked or has expired.
- `403` — The key is read only, or lacks the reach for this route.
- `404` — No such record — or one that belongs to another account.
- `422` — The body or query failed validation; `details` names the field.
- `429` — Too many requests. `Retry-After` says how long to wait.

### 200 example

```json
{
  "data": {
    "period": "string",
    "resetsAt": "2026-01-01T09:00:00.000Z",
    "planRenewsAt": "2026-01-01T09:00:00.000Z",
    "plan": {
      "key": "string",
      "version": 0,
      "currentVersion": 0,
      "onOlderVersion": true
    },
    "pool": {
      "type": "org",
      "id": "00000000-0000-0000-0000-000000000000",
      "seats": 0,
      "seatsBasis": "billed"
    },
    "custom": {
      "meetings": true,
      "minutes": true,
      "credits": true
    },
    "meetings": {
      "used": 0,
      "planUsed": 0,
      "allowance": 0,
      "available": 0,
      "bonus": [
        {
          "remaining": null,
          "expiresAt": null
        }
      ],
      "mine": 0,
      "minePlan": 0,
      "myLimit": 0,
      "beforeJoining": 0,
      "reached": true,
      "blockedBy": "pool"
    },
    "aiCredits": {
      "used": 0,
      "planUsed": 0,
      "allowance": 0,
      "available": 0,
      "bonus": [
        {
          "remaining": null,
          "expiresAt": null
        }
      ],
      "mine": 0,
      "minePlan": 0,
      "myLimit": 0,
      "beforeJoining": 0,
      "reached": true,
      "blockedBy": "pool"
    },
    "minutesPerMeeting": 0,
    "maxMinutes": 0,
    "creditCost": {
      "single": 0,
      "all": 0
    },
    "skipped": [
      {
        "meetingId": "00000000-0000-0000-0000-000000000000",
        "startsAt": "2026-01-01T09:00:00.000Z"
      }
    ]
  }
}
```

### 401 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```

### 403 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```

### 404 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```

### 422 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```

### 429 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```
