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

# API Rate Limits and Errors: Status Codes and Retries

> The Hive Inspect API allows 120 requests per minute per key owner. Learn what each status code means, what an error response looks like and when to retry.

<Note>
  **The Hive Inspect API is a work in progress.** It is available to a small group of accounts today, and the release for everyone is coming very soon. To ask for early access, message us from the chat bubble in your dashboard.
</Note>

## Rate limit

You can make **120 requests per minute**. The limit is counted per key owner, so all the keys one person created share it.

When you go over the limit, the API returns `429`. Wait a few seconds and try again. If your integration runs in a loop, add a growing delay between retries so it does not keep hitting the limit.

<Tip>
  Request up to 200 records per page with `limit=200`, and use `updated_since` to fetch only what changed. Both keep your request count low.
</Tip>

## Status codes

| Code | Meaning | What to do |
| - | - | - |
| `200` | Success | |
| `201` | Created | The response holds the new record. |
| `400` | A parameter is invalid | Read `detail`, fix the request and send it again. |
| `401` | The API key is missing, wrong, deleted or no longer active | Check the key, or create a new one. |
| `403` | API access is not enabled for your organization | Message us from the chat bubble in your dashboard. |
| `404` | The record does not exist in your organization | Check the id. |
| `409` | A contact with this email already exists | Update the existing contact instead. |
| `422` | The request body is invalid, or has a field the API does not know | Read `detail` and fix the body. |
| `429` | Too many requests | Wait, then retry. |
| `500` and above | Something went wrong on our side | Retry after a short wait. If it keeps happening, contact support. |

## What an error looks like

Errors return JSON with a `detail` field that says what went wrong:

```json theme={"theme":{"light":"github-light","dark":"vesper"}}
{
  "detail": "limit must be between 1 and 200"
}
```

For `409` on a duplicate contact, `detail` includes the id of the contact that already has the email, so you can update it:

```json theme={"theme":{"light":"github-light","dark":"vesper"}}
{
  "detail": {
    "message": "A contact with this email already exists in your organization",
    "existing_contact_id": "0b6f2c1e-7d1a-4c55-9a5e-2f3b8c1d4e6f"
  }
}
```

## Which errors to retry

* **Retry:** `429` and any `5xx` response, after a short wait.
* **Do not retry as is:** `400`, `401`, `403`, `404`, `409` and `422`. These return the same error until you change the request.


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