Pagination Convention
Cursor-based pagination for all list endpoints. Not offset-based (offsets break with concurrent writes).
Request
GET /api/v1/realms/myapp/secrets?limit=50&cursor=eyJpZCI6Ij...
| Parameter | Type | Default | Max | Description |
|---|---|---|---|---|
limit | int | 25 | 100 | Items per page |
cursor | string | (none) | -- | Opaque cursor from previous response |
Response Wrapper
{
"secrets": [...],
"pagination": {
"next_cursor": "eyJpZCI6Ij...",
"has_more": true
}
}
Rules
next_cursoris an opaque base64-encoded string. Clients must not parse it.- If
has_moreis false,next_cursoris omitted. totalcount is intentionally omitted -- it's expensive for large tables and rarely needed. If a specific endpoint needs it, addinclude_total=truequery param (opt-in).- Cursor encodes the last seen
id+created_atfor stable ordering.