---
title: "Pagination"
description: "The pagination.conf file defines default and maximum pagination limits used by Enterprise list endpoints that support limit, offset, and, on some endpoints, sort."
stack: "Enterprise Stack (commercial) — version 0.21.0"
stack_version: "0.21.0"
stack_comparison: https://docs.walt.id/community-vs-enterprise.md
canonical_url: https://docs.walt.id/enterprise-stack/setup/configurations/config-files/pagination
generated: 2026-07-08
---
# Pagination

The `pagination.conf` file defines default and maximum pagination limits used by Enterprise list endpoints that support `limit`, `offset`, and, on some endpoints, `sort`.

## Configuration

```editorconfig[pagination.conf]
{
  "defaultLimit": 100,
  "maxLimit": 1000
}
```

## Fields

- `defaultLimit`: applied when `limit` is not provided by the client.
- `maxLimit`: upper bound accepted for `limit`.

`offset` is not configurable — it always defaults to `0` when omitted.

## Query parameters

- `limit` (integer, optional): number of entries to return. Defaults to `defaultLimit`; must be greater than `0` and less than or equal to `maxLimit`.
- `offset` (integer, optional): number of entries to skip. Defaults to `0`; must be greater than or equal to `0`.
- `sort` (string, optional): only accepted on endpoints marked **Sortable** in the table below. Supported values:
  - `createdDateTime` or `createdDateTime-` — newest created first (the bare value is shorthand for `-`, descending)
  - `createdDateTime+` — oldest created first (ascending)
  - `updatedDateTime` or `updatedDateTime-` — most recently updated first (descending)
  - `updatedDateTime+` — least recently updated first (ascending)

  Passing `sort` on an endpoint that isn't marked Sortable returns `400 Bad Request`. When `sort` is omitted, each endpoint falls back to its own default order, which isn't necessarily insertion order — pass `sort` explicitly if your client depends on ordering.

**warning:**

The `+` in `createdDateTime+` / `updatedDateTime+` must be URL-encoded as `%2B`. A literal, unencoded `+` in a query string is decoded as a space by the server, so `?sort=createdDateTime+` pasted directly into a browser or a raw HTTP client is received as `"createdDateTime "` and rejected with `400 Bad Request`. HTTP client libraries that percent-encode query parameters for you (most SDKs, `curl --data-urlencode`) are unaffected.

## Validation behavior

For list endpoints using this pagination contract, the API returns `400 Bad Request` when:

- `limit <= 0`
- `limit > maxLimit`
- `offset < 0`
- `limit` or `offset` is not an integer
- `sort` is provided on an endpoint that doesn't support it
- `sort` is provided with a value outside the supported list above

## Endpoint behavior

The following list endpoints support this contract:

| Endpoint | Sortable |
|---|---|
| `GET /v1/{target}/resource-api/resources/list` | No |
| `GET /v1/{target}/credential-store-service-api/credentials/list` | Yes |
| `GET /v1/{target}/credential-store-service-api/credentials/list-ids` | No |
| `GET /v1/{target}/did-store-service-api/dids` | Yes |
| `GET /v1/{target}/did-store-service-api/dids/list-did-ids` | No |
| `GET /v1/{target}/kms-service-api/keys/list` | Yes |
| `GET /v1/{target}/x509-store-api/certificates` | Yes |
| `GET /v1/{target}/x509-store-api/certificates/ids` | No |
| `GET /v2/{target}/issuer-service-api/sessions` | Yes |
| `GET /v1/{target}/verifier2-service-api/sessions` | Yes |
| `GET /v1/{target}/policy-store-service-api/policies/list` | No |
| `GET /v1/{target}/policy-store-service-api/policies/list-ids` | No |
| `GET /v1/{target}/credential-status-service-api/status-credential/list` | No |
| `GET /v1/{target}/vical-service-api/versions/ids` | No |

Responses remain arrays (no pagination envelope is added).

See also: [List Service Resources](https://docs.walt.id/enterprise-stack/administration/services/list-resources.md) and [Manage Certificates](https://docs.walt.id/enterprise-stack/services/x509-store-service/manage-certificates.md) for worked examples.
