# Pagination

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

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 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 = await complycube.document.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 %}
