Paginierung
Listenendpunkte sind seitenbasiert. Der Audit-Export ist cursorbasiert, sodass Sie einen langen Export fortsetzen können, ohne die Reihenfolge zu verlieren.
Seitenbasierte Listen
Übergeben Sie die Query-Parameter page (1-basiert) und page_size. Antworten enthalten ein pagination-Objekt:
{
"data": [{ "id": "item_1" }],
"pagination": { "page": 1, "pageSize": 20, "total": 57, "totalPages": 3 }
}
Iterieren Sie, bis page >= totalPages:
let page = 1;
let totalPages = 1;
do {
const result = await fabhub.listItems({ page, pageSize: 100 });
// handle result.data
totalPages = result.pagination.totalPages;
page += 1;
} while (page <= totalPages);
Verwenden Sie ein begrenztes page_size (die API deckelt es) und bevorzugen Sie search-Filter gegenüber dem Durchsuchen jeder Seite.
Cursorbasierter Export (Audit-Ereignisse)
GET /v1/audit/events gibt anstelle von Seitenzählungen einen Cursor zurück:
{
"data": [{ "id": "evt_1" }],
"pagination": { "hasMore": true, "nextCursor": { "createdAt": "2026-06-19T14:02:00Z", "id": "evt_1" } }
}
Setzen Sie fort, indem Sie den Cursor als cursor_created_at und cursor_id zurückgeben (mit dem SDK über listAuditEvents):
let cursor = undefined;
do {
const page = await fabhub.listAuditEvents({
limit: 200,
cursorCreatedAt: cursor?.createdAt,
cursorId: cursor?.id,
});
// handle page.data
cursor = page.pagination.nextCursor ?? undefined;
} while (cursor);