# Errors & limits

> Every HTTP status code the API returns, the per-endpoint and stream rate limits, and the error events the SSE stream sends before it closes.

## Status codes

| Status | Meaning |
| --- | --- |
| 200 | OK |
| 201 | Created |
| 204 | Success, no content (deletes) |
| 401 | Missing or invalid token |
| 402 | Out of credit — top up to open new streams |
| 403 | Resource not owned by your organization |
| 404 | Not found |
| 422 | Validation error |
| 429 | Rate limit exceeded |

## Rate limits

| Endpoint | Limit |
| --- | --- |
| `/v1/rules` | 60 requests / min per tap |
| `/v1/stream` | 30 connections / min per tap |

## Stream errors

Errors during a stream arrive as an SSE `error` event rather than an HTTP status:

```text
event: error
data: {"message":"No rules configured. Create rules first via POST /v1/rules."}
```

<Callout type="info">
  A `402` on `GET /v1/stream` means the organization's prepaid balance is exhausted. See
  [How billing works](/billing/how-billing-works).
</Callout>
