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

> ## Agent Instructions
> Reconify's API reference is read-only for customer data. Do not invent endpoints or authentication behavior beyond the OpenAPI contract.
> The public OpenAPI document contains only the external /v1 contract. Dashboard business routes are intentionally excluded.

# Limits

> HTTP, request, and ingestion limits.

Reconify applies HTTP throttling and bounded event-ingestion limits.

## HTTP request limiter

| Limit              |              Value |
| ------------------ | -----------------: |
| Sustained rate     | 60 requests/second |
| Short burst        |       100 requests |
| Idle entry cleanup |          3 minutes |

The limiter is keyed by remote IP. A shared NAT or proxy can make multiple
callers consume the same bucket.

When the bucket is exhausted, the API returns `429 Too Many Requests`:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{ "error": "too many requests" }
```

The response currently does not include `Retry-After`. Keep concurrency bounded
and back off with exponential delay and jitter.

## Event ingestion limits

`POST /v1/events` accepts:

* 1–500 events per request;
* a request body of at most 5 MiB;
* at most 256 KiB per event.

Oversized or invalid events are returned in the batch's `rejected` results. If
at least one event is accepted or duplicated, the request returns `202 Accepted`.

## Organization capacity

The current implementation enforces a temporary ceiling of 50,000 accepted
wallet movements per organization per UTC day. Only wallet movement events count
toward this capacity.

When capacity is reached, an all-capacity-rejected batch returns `429` with the
machine-readable code `transaction_capacity_reached`.

<Warning>
  Retry `429` and `503` with exponential backoff and jitter. Do not retry
  validation, authentication, authorization, or conflict errors unchanged.
</Warning>
