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

# Errors

> HTTP status codes and error responses returned by the API.

## HTTP status codes

| Code  | Meaning                                                                                                        |
| ----- | -------------------------------------------------------------------------------------------------------------- |
| `200` | Request processed. Always check the `status` field — a lead can be `new`, `distributed`, or `rejected`.        |
| `400` | Malformed request — missing required fields or invalid values. See the `details` array for field-level errors. |
| `401` | API Key missing or invalid.                                                                                    |
| `422` | Semantically invalid data — consents not accepted, product not found, etc.                                     |
| `500` | Internal server error. Contact support if this persists.                                                       |

<Note>
  A `rejected` response is a valid business outcome, not an API error — the HTTP status is still `200`. Always check the `status` field, not just the HTTP code. See [Submit Lead](/api-reference/publisher/submit-lead) for the full list of rejection reasons.
</Note>

## Error response body

```json theme={null}
{
  "error": "validation_error",
  "message": "Request body validation failed",
  "details": [
    { "field": "product_data.loan_amount", "issue": "must be between 500 and 75000" }
  ]
}
```

The `details` array is only present on `400` responses.
