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

# Platform limits

> Result-set caps, execution timeouts, payload sizes, rate limits, and retention windows to design around.

Design around these platform limits:

| Area                            | Limit                                                            |
| ------------------------------- | ---------------------------------------------------------------- |
| `findAll` / SQL result set      | 2,000 rows (use `zite.sql()` aggregates for larger tables)       |
| `execute_sql` statement timeout | 10 s default, 60 s max                                           |
| `execute_sql` bind parameters   | 1,000                                                            |
| Schedule inputs payload         | 32 KB                                                            |
| Inbound webhook body            | 1 MB                                                             |
| Workflow execution timeout      | 150 s                                                            |
| Workflow execution logs         | retained 90 days (lookback up to 168 h)                          |
| Database REST API rate limit    | 30 requests/second per database                                  |
| Database webhooks per database  | 100 (max 20 events each)                                         |
| Webhook delivery                | 5 retries, backoff 5/10/20/40/80 s, 30 s timeout, 256 KB payload |
| PDF output                      | 25 MB                                                            |

<Tip>
  Because `findAll` caps at 2,000 records, do counts, sums, and group-bys in the database with
  [`zite.sql()`](/framework/database-client) rather than pulling rows into JavaScript.
</Tip>

The Database API returns `RateLimit-*` headers on every response — back off when you approach the limit.
See the [Database API overview](/api/overview) to raise it.
