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

# Errors

> Handle structured StoreInspect API errors.

Error responses use a stable envelope and include request metadata.

```json theme={null}
{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_request",
    "message": "The request body is invalid.",
    "param": "filters",
    "request_id": "req_abc123"
  }
}
```

## Status codes

| Status | Meaning                                                               |
| ------ | --------------------------------------------------------------------- |
| `400`  | Invalid request body, query parameter, cursor, or filter combination. |
| `401`  | Missing, invalid, or revoked API key.                                 |
| `402`  | Not enough contact credits for a reveal request.                      |
| `403`  | API access is not enabled for the account, plan, key, or entitlement. |
| `404`  | The requested resource was not found.                                 |
| `409`  | Idempotency conflict or request state conflict.                       |
| `429`  | Monthly quota, search-row quota, or request rate limit exceeded.      |
| `500`  | Unexpected server error.                                              |

## Support

When reporting an API issue, include the `request_id` from the response or `X-Request-Id` header.

## Example validation error

```json theme={null}
{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_contact_id",
    "message": "One or more contact IDs are invalid.",
    "param": "contact_ids",
    "request_id": "req_abc123"
  }
}
```
