Zum Hauptinhalt springen

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

StilParameterVerwendet von
ID-Cursor (after / before)after, beforeBenachrichtigungen, Zeilenkommentare
Keyset-Cursor (cursor / nextCursor)limit, cursorBookings
Offset (limit / offset)limit, offsetChannels, Workspace-Members, Workspace-Teams
Nur Limit (keine Fortsetzung)limitSuche, Docs-Suche, Drive-Suche
Nicht paginiertBoard-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.

Endpunktlimit (Standard / Max)offset
GET /chat/channels100 / 200ab 0
GET /workspace/members100 / 500ab 0
GET /workspace/teams100 / 200ab 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.

Endpunktlimit (Standard / Max)
GET /search50 / 100
GET /docs/search20 / 50
GET /drive/search20 / 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-boards
  • GET /board/{boardId}/table/{tableId}/rows — unterstützt q, filter und sort, liefert aber alle passenden Zeilen.
  • GET /booking-types
tipp

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.