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

# Errors and limits

> The error format, status codes and rate limits for the Connie API endpoints.

## Error format

Errors return JSON with a readable message and, usually, a machine-readable code:

```json theme={null}
{ "error": "Human-readable message", "code": "MACHINE_CODE" }
```

Validation errors may also include `details` about which field was wrong.

## Status codes

| Status | Code | When |
| - | - | - |
| 400 | `VALIDATION_ERROR` | The body isn't valid JSON, a field is missing or has the wrong type, or a required parameter is missing. |
| 401 | `UNAUTHORIZED` | No session was sent ("Unauthorized - please sign in"). |
| 401 | `SESSION_EXPIRED` | The session expired. Copy a fresh Cookie header. See [Authentication](/api-reference/authentication). |
| 402 | `PAYMENT_REQUIRED` / `INSUFFICIENT_CREDITS` | The workspace doesn't have enough credits for this action. See [Credits](/billing/credits). |
| 403 | `FORBIDDEN` | You aren't a member of the workspace, your role can't do this, or the request came from another website ("Cross-origin request blocked"). |
| 403 | `WAITLISTED` | Your account is still on the waitlist. |
| 403 | — | `{"error":"Browser origin denied."}`: a browser on another site called the API. |
| 404 | `NOT_FOUND` | The item doesn't exist, or isn't in that workspace. |
| 409 | `CONFLICT` (or a specific code) | The change clashes with the current state, for example a name that's already taken. |
| 429 | `RATE_LIMIT_EXCEEDED` | Too many requests. Wait for the time in `Retry-After`. |
| 429 | `BUDGET_EXCEEDED` | The AI usage budget for this period is used up. |
| 500 | `INTERNAL_ERROR` | Something went wrong on Connie's side. Try again; if it keeps happening, contact support. |
| 503 | `DATABASE_UNAVAILABLE` / `AI_PROVIDER_UNAVAILABLE` | A service is temporarily unavailable. Retry after `Retry-After` if present. |

## Rate limits

Some endpoints, mainly AI, Inbox and import endpoints, are rate limited per user. Limits are higher on paid plans: **Starter** gets 3 times the Free limit and **Scale** 10 times. When you hit a limit you get `429` with these headers:

| Header | Meaning |
| - | - |
| `Retry-After` | Seconds to wait before retrying |
| `X-RateLimit-Limit` | Requests allowed in the window |
| `X-RateLimit-Remaining` | Requests left in the window |
| `X-RateLimit-Reset` | When the window resets |

Back off and retry after `Retry-After`. The MCP server has its own limits; see [MCP errors and limits](/developers/errors-and-limits).

## Credits

Endpoints that run paid actions (AI replies, paid tools, imports past the free allowance) charge the workspace's credits exactly as the app does. If there aren't enough, you get `402`. See [Credits](/billing/credits).

## Related

* [Authentication](/api-reference/authentication)
* [Contact support](/help/contact-support)


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