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

# Limits

> Every size and count limit in one place, and what happens when you reach it.

## Per request

| Limit | Value | When exceeded |
| - | - | - |
| Request body | 8 MiB (about 5.5 MiB for `POST /v1/sets`, enough for 100,000 values) | rejected before it's parsed |
| Filter objects per row type | 256 | `400 invalid_query` |
| Values per filter field | 100,000 | `400 invalid_query` |
| Values per set | 100,000 | `400 invalid_query` |

## Per response

These end a response early; they're never errors. Continue from `next_block`.

| Limit | Value |
| - | - |
| Block span | 50,000 blocks |
| Data | about 8 MB of rows (the last block is included whole, so slightly more is possible) |
| Objects | `maxObjects`: default and maximum 100,000 (a larger value is lowered) |
| `/query/json` rows | 100,000 |

## Per project

| Limit | Value | When exceeded |
| - | - | - |
| Sets | 50 sets and 50 MiB of set data | a create past it deletes your least recently used sets that have been idle for 10 minutes or more; if every set was used more recently, `403 quota_exceeded` |
| Set values created | 1,000,000 values per minute | `429 set_rate_limited`; wait `Retry-After` |
| Unused set lifetime | 7 days without use | deleted; create it again |
| Projects you own | 10 | creating or taking over another project is refused |
| Prepared query lifetime | 30 minutes after last use | `400 unknown_query_id`; resend the filter |

## Per key

| Limit | Pay-as-you-go | Standard |
| - | - | - |
| Requests per second (all chains) | 1 | 10 |
| Requests open at once (per chain) | 1 | up to 4 |

See [Rate limits](https://docs.bloklake.com/production/rate-limits.md).

## Per connection

| Limit | Value |
| - | - |
| Idle response (nothing read) | cut off after 60 s |
| Slow reader | cut off below 50 KB/s, measured over 30 s |
| Waiting for a free query slot | up to 5 s, then `503 unavailable` |

## Not supported

* Filtering on fields other than the indexed ones; arbitrary predicates, joins (beyond
  `joinTransactions`) and aggregations.
* Traces, state, balances and `eth_call`.
* Calling the API from a browser (no CORS) or with the key in the URL.


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