> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.haloinvest.ng/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.haloinvest.ng/_mcp/server.

# Rate limits

Halo limits how often you can call the API. A request over a limit is refused with `429`:

```json
{
  "status": false,
  "message": "Too Many Attempts.",
  "status_code": 429
}
```

| Applies to | Limit | Counted per |
| --- | --- | --- |
| All API requests | 60 a minute | IP address |
| All partner endpoints | 120 a minute | API key |
| `POST /api/identity/bvn/verify` | 20 a minute and 2,000 a day | API key |
| `POST /api/identity/nin/verify` | 20 a minute and 2,000 a day | API key |
| `GET /api/identity/nin/status/{reference}` | 60 a minute | API key |

Every limit that applies to a request is checked, so the lowest one is reached first. The BVN, NIN and NIN status limits apply on top of the general limits.

When you get a `429`, wait before trying again. For money requests, a `429` means the request was not processed, so you can send it again with the same reference.