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

# The envelope

Every success answer has the same shape.

The success envelope. Every success response carries it.

```json
{
  "ok": true,
  "request_id": "req_01JBQ2W8K9V6M3T0X5Y7Z4A1BC",
  "release": "b_2026_09_15",
  "data": [],
  "page": {
    "returned": 50,
    "limit": 50,
    "total": 4210,
    "next_cursor": "eyJ2IjoxLCJiIjoiYl8yMDI2XzA5XzE1In0"
  },
  "quota": {
    "plan": "free",
    "contact_credits_used": 50,
    "month_remaining": 950,
    "today_remaining": 950,
    "binding": "month",
    "resets_at": "9999-12-31T23:59:59.000Z"
  },
  "warnings": []
}
```

## Envelope fields

- `ok` | boolean | required. True on every success response.
- `request_id` | string | required. The id of this request. Send the request_id to support@leadmcp.ai.
- `release` | string | required. The build id that served this response.
- `data` | any | optional. The payload of the route. The shape depends on the route.
- `page` | Page | optional. The paging block. Present on a paged route.
  - `returned` | integer | required. The number of rows in this page.
  - `limit` | integer | required. The page size the request asked for.
  - `total` | integer or null | required. The total number of matching rows, or null when the count did not finish inside its budget.
  - `next_cursor` | string or null | required. The cursor for the next page, or null on the last page.
- `quota` | Quota | required. The quota block. Every response carries it. It names the plan and the usage; read the plan limits themselves from `GET /account`. Field names are frozen.
  - `plan` | string | required. The plan slug this account is on. It names the caps; read the numbers themselves from `GET /account`.
  - `contact_credits_used` | integer | required. The contact credits this request spent. A count, a schema read or a miss spends zero.
  - `month_remaining` | integer | required. The contact credits left in the current billing month. A paid plan's month starts on its billing date each month; without a subscription it is the UTC calendar month. On the free plan, the contact credits left in the lifetime pool; the pool has no window.
  - `today_remaining` | integer | required. The contact credits left in the current UTC day. On the free plan, the same number as `month_remaining`.
  - `binding` | enum | required. The window that runs out first at the current pace. On the free plan, always `month`. Values: `month`, `day`.
  - `resets_at` | string | required. The RFC 3339 UTC time at which the binding window resets. On the free plan the pool never resets, and the field is `9999-12-31T23:59:59.000Z`.
- `warnings` | array of Warning | required. Non fatal notes about this response. Empty on a clean call.
  - `code` | enum | required. The warning code. Values: `count_unavailable`, `no_rows`, `export_truncated`, `duplicate_work_email`, `duplicate_linkedin`, `off_domain`, `deprecated`, `max_followers_missing`.
  - `message` | string | required. One sentence a developer can read.
  - `hint` | string | optional. The suggested next action, for example to remove one key and count again.
  - `keys_applied` | array of string | optional. On no_rows, the filter keys that were applied. On off_domain, the inputs we hold at another employer.
  - `resets_at` | string | optional. On export_truncated, present only when a contact credit cap cut the job: the RFC 3339 UTC time at which the cap that cut the job resets. On the free plan the pool never resets, and the field is `9999-12-31T23:59:59.000Z`; the hint then says the pool is spent and points to the upgrade. get_export can also return export_truncated, with no resets_at, when max_rows_per_company kept fewer rows than rows_to_export; only exported rows are charged.

## page

The paging block. Present on a paged route.

- `returned` | integer | required. The number of rows in this page.
- `limit` | integer | required. The page size the request asked for.
- `total` | integer or null | required. The total number of matching rows, or null when the count did not finish inside its budget.
- `next_cursor` | string or null | required. The cursor for the next page, or null on the last page.

## quota

The quota block. Every response carries it. It names the plan and the usage; read the plan limits themselves from `GET /account`. Field names are frozen.

- `plan` | string | required. The plan slug this account is on. It names the caps; read the numbers themselves from `GET /account`.
- `contact_credits_used` | integer | required. The contact credits this request spent. A count, a schema read or a miss spends zero.
- `month_remaining` | integer | required. The contact credits left in the current billing month. A paid plan's month starts on its billing date each month; without a subscription it is the UTC calendar month. On the free plan, the contact credits left in the lifetime pool; the pool has no window.
- `today_remaining` | integer | required. The contact credits left in the current UTC day. On the free plan, the same number as `month_remaining`.
- `binding` | enum | required. The window that runs out first at the current pace. On the free plan, always `month`. Values: `month`, `day`.
- `resets_at` | string | required. The RFC 3339 UTC time at which the binding window resets. On the free plan the pool never resets, and the field is `9999-12-31T23:59:59.000Z`.

## warnings

One non fatal note on a successful response.

- `code` | enum | required. The warning code. Values: `count_unavailable`, `no_rows`, `export_truncated`, `duplicate_work_email`, `duplicate_linkedin`, `off_domain`, `deprecated`, `max_followers_missing`.
- `message` | string | required. One sentence a developer can read.
- `hint` | string | optional. The suggested next action, for example to remove one key and count again.
- `keys_applied` | array of string | optional. On no_rows, the filter keys that were applied. On off_domain, the inputs we hold at another employer.
- `resets_at` | string | optional. On export_truncated, present only when a contact credit cap cut the job: the RFC 3339 UTC time at which the cap that cut the job resets. On the free plan the pool never resets, and the field is `9999-12-31T23:59:59.000Z`; the hint then says the pool is spent and points to the upgrade. get_export can also return export_truncated, with no resets_at, when max_rows_per_company kept fewer rows than rows_to_export; only exported rows are charged.
