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

# Pagination and Rate Limits

> Page through large result sets from the Validio API and stay within its request rate limits.

## Pagination and filtering

Some API endpoints support input types that are used for pagination and filtering. They give you further control over the response you get from the API. Not all queries support this; the [Validio GraphQL API reference](https://docs.validio.io/api-reference.md) shows which ones do.

The filters work exactly like any other input type and can be specified as variable values. The API specification lists the expected values.

Every query that supports pagination returns a [`PageInfo`](https://docs.validio.io/api-reference/graphql/types/PageInfo) type. The start and end cursors identify where the returned dataset starts and ends. As long as `hasNextPage` is `true`, there is more data to fetch. To fetch the next page, pass a [`PaginationInput`](https://docs.validio.io/api-reference/graphql/types/PaginationInput) with its `after` value set to the `endCursor` from the last response.

> [!NOTE]
>
> The pagination input type also has a `limit` field that controls how many results each page contains. For an example that iterates over multiple pages until all data is fetched, see the [Export incident groups to CSV](https://docs.validio.io/developer/validio-sdk/sdk-recipes/export-incident-groups-to-csv.md) recipe.

## API rate limits

The GraphQL API is rate limited per API key. Requests without a valid key are limited per IP address. By default, each key is allowed **600 requests per 10-second window**, configurable per deployment.

Exceeding the limit returns HTTP `429 Too Many Requests` with a `Retry-After` header and a GraphQL error:

```json title="JSON" theme={null}
{
  "errors": [
    {
      "message": "API rate limit exceeded. Retry after 7s.",
      "extensions": { "code": "RATE_LIMITED", "retryAfter": 7 }
    }
  ]
}
```

> [!NOTE]
>
> Honor the `Retry-After` header and back off exponentially on repeated `429` responses.

The SCIM provisioning endpoint has its own separate rate limit. See [SCIM rate limits](https://docs.validio.io/docs/access-and-settings/settings/managing-users-and-idps.md#scim-rate-limits).

For the other error codes the API returns, see [API errors](https://docs.validio.io/developer/validio-api/graphql-api/api-errors.md).
