# Pagination

All top-level API resources support bulk fetches via “**list**” API methods. For instance, among other resources, you can list [clients](/documentation/api-reference/core-resources/clients/list-clients.md) and [documents](/documentation/api-reference/core-resources/documents/list-documents.md).

These requests will be paginated to 100 items by default. You can specify further pages using the page query parameter.

You can use the query parameters below for all our **list** API methods:

### Pagination attributes

<table><thead><tr><th width="164.39453125">Query Parameter</th><th>Description</th></tr></thead><tbody><tr><td><code>createdAfter</code></td><td>A "greater than" filter on the list based on the resource <code>createdAt</code> field.</td></tr><tr><td><code>createdBefore</code></td><td>A "less than" filter on the list based on the resource <code>createdAt</code> field.</td></tr><tr><td><code>updatedAfter</code></td><td>A "greater than" filter on the list based on the resource <code>updatedAt</code> field.</td></tr><tr><td><code>updatedBefore</code></td><td>A "less than" filter on the list based on the resource <code>updatedAt</code> field.</td></tr><tr><td><code>pageSize</code></td><td>Indicates how many records each page should contain. The value must be between 1 and 1000. The default is 100.</td></tr><tr><td><code>page</code></td><td>Specifies the page number to retrieve. The value must be equal to or greater than 1.</td></tr></tbody></table>

### Example request

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X GET https://api.complycube.com/v1/clients?page=1&pageSize=20 \
     -H 'Authorization: <YOUR_API_KEY>'
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const { ComplyCube } = require("@complycube/api");

const complycube = new ComplyCube({ apiKey: "<YOUR_API_KEY>" });

// For clients
const clients = await complycube.client.list({
    page: 1,
    pageSize: 20
});

// For documents. Similarly done for addresses, checks, live photos, etc.
const documents = await complycube.document.list("CLIENT_ID", {
    page: 1,
    pageSize: 20
});
```

{% endtab %}

{% tab title="Python" %}

```python
from complycube import ComplyCubeClient

cc_api = ComplyCubeClient(api_key='<YOUR_API_KEY>')

# For clients
clients = cc_api.clients.list(page=1,pageSize=20)

# For documents. Similarly done for addresses, checks, live photos, etc.
documents = cc_api.documents.list('CLIENT_ID',page=1,pageSize=20)
```

{% endtab %}

{% tab title="PHP" %}

```php
use ComplyCube\ComplyCubeClient;

$ccapi = new ComplyCubeClient('<YOUR_API_KEY>');

// For clients
$clients = $ccapi->clients()->list(['page' => 1, 'pageSize' => 20]);

// For documents. Similarly done for addresses, checks, live photos, etc.
$documents = $ccapi->documents()->list('CLIENT_ID', 
                                       ['page' => 1, 'pageSize' => 20]);
```

{% endtab %}

{% tab title=".NET" %}

```csharp
using ComplyCube.Net;
using ComplyCube.Net.Resources.Clients;

var clientApi = new ClientApi(new ComplyCubeClient("<YOUR_API_KEY>"));

var req = new PageRequest { page = 1, pageSize = 20 };

var clients = await clientApi.ListAsync(pageRequest : req);
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.complycube.com/documentation/api-reference/pagination.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
