---
title: "Rate Limits"
description: "API rate limiting policy, headers, and retry behavior."
doc_version: "1"
last_updated: "2026-06-02"
---

## Limits

| Resource | Limit |
|----------|-------|
| API requests | 200 per minute per account |
| Monitor creation (`POST /api/v1/monitors`) | 20 per minute per account (independent cap) |
| Webhook deliveries | Not counted against your API limit |

The two caps are independent — either can 429 a `POST /api/v1/monitors` request.

## Response headers

Every API response includes rate limit headers:

```
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 187
X-RateLimit-Reset: 1681310460
```

## 429 responses

When you exceed the limit, you'll receive a `429 Too Many Requests` response with a `Retry-After` header. The body uses the same flat envelope as all `/api/v1/*` errors (see [/docs/errors/](/docs/errors/#429-too-many-requests)):

```json
{"error": "account rate limit exceeded; retry in 1s"}
```

Monitor-creation requests that hit the independent 20/min cap return the same shape with `"monitor creation rate limit exceeded; retry in <N>s"`.

```
Retry-After: 12
```

Respect the `Retry-After` value. Repeated violations may result in longer cooldown periods.