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

# Errors

Error response shapes, status codes, validation issues, and rate limits.

# Errors

RogerIQ APIs return JSON errors with a short message and, for validation failures, structured issues.

## Error Shape

```json
{
  "error": "Validation failed",
  "issues": [
    {
      "path": "email",
      "message": "Invalid email"
    }
  ]
}
```

Some endpoints return:

```json
{
  "message": "Project not found"
}
```

Clients should read `message`, then `error`, then HTTP status text.

## Common Status Codes

| Status | Meaning |
| --- | --- |
| `200` | Request succeeded. |
| `201` | Resource created. |
| `303` | HTML form submission redirect. |
| `400` | Invalid input or no updates provided. |
| `401` | Missing, invalid, or expired API key. |
| `403` | Scope, organization, or origin check failed. |
| `404` | Resource not found. |
| `410` | Public form or beacon archived. |
| `429` | Rate limit exceeded. |
| `500` | Server or provider error. |

## Validation Errors

Validation issues use field paths when available.

```json
{
  "error": "Validation failed",
  "issues": [
    {
      "path": "fields.0.label",
      "message": "Required"
    }
  ]
}
```

## Retry Guidance

| Status | Retry? |
| --- | --- |
| `400` | No. Fix the request. |
| `401` | No. Refresh or rotate credentials. |
| `403` | No. Fix scopes, org access, or origin. |
| `404` | No, unless the resource is created asynchronously. |
| `429` | Yes, after the reset time. |
| `500` | Yes, with backoff. |