Paginierung
List-Endpunkte nutzen je nach Domäne einen von drei Paginierungsstilen. Lesen Sie die API-Referenz für die exakten Parameter eines Endpunkts; diese Seite erklärt die Muster und welche Endpunkte welches verwenden.
Auf einen Blick
| Stil | Parameter | Verwendet von |
|---|---|---|
ID-Cursor (after / before) | after, before | Benachrichtigungen, Zeilenkommentare |
Keyset-Cursor (cursor / nextCursor) | limit, cursor | Bookings |
Offset (limit / offset) | limit, offset | Channels, Workspace-Members, Workspace-Teams |
| Nur Limit (keine Fortsetzung) | limit | Suche, Docs-Suche, Drive-Suche |
| Nicht paginiert | — | Board-Zeilenliste, list-boards, Booking-Typen |
ID-Cursor — after / before
Manche Endpunkte paginieren mit der _id eines Eintrags als Cursor. Sie übergeben die ID des zuletzt (oder zuerst) gesehenen Eintrags als after (oder before), um die benachbarte Seite zu holen.
Benachrichtigungen
GET /public/v1/notifications
after— Benachrichtigungen nach dieser Notification-ID zurückgeben.before— Benachrichtigungen vor dieser Notification-ID zurückgeben.
Die Antwort ist { notifications, unreadCount, count }. Es gibt kein separates Cursor-Feld — der Cursor ist die _id einer Benachrichtigung. Zum Vorwärtsblättern nehmen Sie die _id der letzten Benachrichtigung und übergeben sie als after in der nächsten Anfrage:
# First page
curl "https://api.copera.ai/public/v1/notifications" \
-H "Authorization: Bearer cp_pat_your_token_here"
# Next page — use the last notification's _id from the previous response
curl "https://api.copera.ai/public/v1/notifications?after=665f0a1b2c3d4e5f60718293" \
-H "Authorization: Bearer cp_pat_your_token_here"
Zeilenkommentare
GET /public/v1/board/{boardId}/table/{tableId}/row/{rowId}/comments
Dieselben Cursor-Parameter after / before (Kommentar-IDs), plus ein Filter visibility (all | internal | external, Standard all). Im Gegensatz zu Benachrichtigungen liefert dieser Endpunkt ein Relay-artiges pageInfo:
{
"items": [ /* ...comments... */ ],
"pageInfo": {
"endCursor": "665f0a1b2c3d4e5f60718293",
"startCursor": "665f0a1b2c3d4e5f60718210",
"hasNextPage": true,
"hasPreviousPage": false
}
}
Zum Vorwärtsblättern übergeben Sie endCursor als after, solange hasNextPage true ist.
Keyset-Cursor — cursor / nextCursor
Bookings
GET /public/v1/bookings
limit— Seitengröße, 1–100 (Standard 25).cursor— opaker Keyset-Cursor aus der vorherigen Antwort.
Die Antwort enthält nextCursor und hasMore:
{
"bookings": [ /* ... */ ],
"nextCursor": "eyJpZCI6Ii4uLiJ9",
"hasMore": true
}
Schleife, solange hasMore true ist, und übergeben Sie nextCursor als cursor:
curl "https://api.copera.ai/public/v1/bookings?limit=50&cursor=eyJpZCI6Ii4uLiJ9" \
-H "Authorization: Bearer cp_pat_your_token_here"
Offset — limit / offset
Klassisches Durchblättern mit numerischem Offset.
| Endpunkt | limit (Standard / Max) | offset |
|---|---|---|
GET /chat/channels | 100 / 200 | ab 0 |
GET /workspace/members | 100 / 500 | ab 0 |
GET /workspace/teams | 100 / 200 | ab 0 |
# Second page of 50 members
curl "https://api.copera.ai/public/v1/workspace/members?limit=50&offset=50" \
-H "Authorization: Bearer cp_pat_your_token_here"
Nur Limit
Such-Endpunkte begrenzen die Ergebnismenge mit limit, bieten aber keinen Fortsetzungs-Cursor — fordern Sie ein größeres limit an (bis zum Maximum des Endpunkts) oder verfeinern Sie die Query.
| Endpunkt | limit (Standard / Max) |
|---|---|
GET /search | 50 / 100 |
GET /docs/search | 20 / 50 |
GET /drive/search | 20 / 50 |
Docs- und Drive-Tree-Endpunkte (/docs/tree, /drive/tree) sind durch den Parameter depth (Standard 3, Max 10) und parentId begrenzt, nicht durch limit/Cursor.
Nicht paginiert
Einige List-Endpunkte liefern die vollständige Menge in einer Antwort:
GET /board/list-boardsGET /board/{boardId}/table/{tableId}/rows— unterstütztq,filterundsort, liefert aber alle passenden Zeilen.GET /booking-types
Beim Iterieren großer Ergebnismengen kurze Pausen zwischen Anfragen einbauen, um unter dem Rate-Limit pro Minute zu bleiben, und stoppen, sobald hasMore / hasNextPage false ist.