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

# Errors

> Every error code the API returns, and what to do about it.

Errors return an HTTP status and a JSON body with a stable `error` code and a readable `message`:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "error": "lane_not_found",
  "message": "No lane L9."
}
```

Branch on `error`; the `message` wording can change. `no_plan` and `allowance_exhausted` also include `"upgrade": "/dash/usage"`.

## Any endpoint

| Status | `error` | Meaning |
| - | - | - |
| 401 | `unauthorized` | The API key is missing, malformed, unknown or revoked. |
| 403 | `admin_key_required` | This endpoint needs an [admin key](/authentication#standard-and-admin-keys). |
| 500 | `internal_error` | Something went wrong on our side. Retry; if it keeps happening, tell us. |

## Exports

| Status | `error` | Meaning |
| - | - | - |
| 400 | `invalid_body` | The body isn't a JSON object. |
| 400 | `lanes_required` | Pass `lanes`, like `["L1"]` or `"all"`. |
| 400 | `invalid_max` | `max` must be a whole number from 1 to 100,000. |
| 400 | `invalid_strength` | `min_strength` must be `low`, `medium` or `high`. |
| 400 | `idempotency_key_required` | Confirming (`"dry_run": false`) needs an `idempotency_key` of up to 200 characters. |
| 402 | `no_plan` | No active plan. Pick one on **Usage and plan**. |
| 402 | `allowance_exhausted` | No contacts left this period. Upgrade, or wait for the next period. |
| 403 | `exports_disabled` | Exports aren't open for this account yet. Quotes still work. |
| 404 | `lane_not_found` | One of the lane codes doesn't exist. |
| 404 | `export_not_found` | No export with that id. |
| 409 | `nothing_available` | Nobody new is available in these lanes right now. |

An export that starts but can't finish ends as `partial` or `failed`, with the reason in its `error` field. See [Exports](/guides/exports#statuses).

## Leads and suppressions

| Status | `error` | Meaning |
| - | - | - |
| 400 | `invalid_since` | `since` must be `last` or a date like `2026-10-01` (suppressions: a date). |
| 400 | `invalid_consumer` | `consumer`: letters, digits, `.`, `-` or `_`, up to 40 characters. |
| 404 | `lane_not_found` | No lane with that code. |

## Lanes and keywords

| Status | `error` | Meaning |
| - | - | - |
| 400 | `invalid_body` | The body isn't a JSON object. |
| 400 | `invalid_lane` | A field doesn't validate: name, audience, keywords, industries, seniority or employees. The message says which. |
| 400 | `invalid_strength` | `min_strength` must be `low`, `medium` or `high`. |
| 400 | `invalid_list_mode` | `company_list_mode` must be `narrow`, `replace` or `off`. |
| 400 | `removed_field` | `enabled` and `max_per_day` no longer exist: exports are on demand. |
| 400 | `invalid_keyword` | Keywords are 3 to 120 characters, at most 50 per lane, with no duplicates. |
| 400 | `keyword_required` | Pass `?keyword=` with the exact text to remove. |
| 404 | `lane_not_found` | No lane with that code. |
| 404 | `keyword_not_found` | That keyword isn't in the lane. |
| 409 | `lane_limit` | An organization can have up to 30 lanes. |

## Checks

| Status | `error` | Meaning |
| - | - | - |
| 409 | `in_progress` | A check is already running for this lane. |
| 409 | `not_configured` | The organization isn't set up for checks yet. Contact us. |
| 409 | `no_live_keywords` | The lane has no live keywords yet. |
| 503 | `no_data` | Today's data isn't ready yet. Try again later. |

`POST /checks` (every lane) reports these per lane in its response instead of failing.

## Company list

| Status | `error` | Meaning |
| - | - | - |
| 400 | `invalid_body` | The JSON couldn't be read. |
| 400 | `no_companies` | No valid domains or company LinkedIn URLs found. |
| 413 | `too_large` | CSV or text uploads are limited to 60 MB. |

## Billing (admin)

| Status | `error` | Meaning |
| - | - | - |
| 400 | `invalid_plan` | `plan` must be `starter`, `growth`, `scale` or `partner`. |
| 409 | `no_billing_account` | Your plan isn't paid by card, so there's no billing page. Contact us. |
| 502 | `billing_failed` | The payment couldn't be processed. Check your card on the billing page. |
| 503 | `billing_not_configured` | Online payment isn't available. Contact us to change plan. |

## Team and API keys (admin)

| Status | `error` | Meaning |
| - | - | - |
| 400 | `invalid_email` | The email address isn't valid. |
| 400 | `invalid_role` | Team roles are `owner` or `member`; key roles are `standard` or `admin`. |
| 400 | `name_required` / `invalid_name` | Keys need a name. |
| 400 | `nothing_to_change` | Send `name` or `role`. |
| 404 | `invite_not_found` | No open invite with that id. |
| 404 | `key_not_found` | No active key with that id. |
| 409 | `team_rule` | The organization must keep an owner, or that person isn't in it. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.