ページネーション
リストエンドポイントはページベースです。監査エクスポートはカーソルベースで、順序を失うことなく長いエクスポートを再開できます。
ページベースのリスト
page(1 始まり)と page_size のクエリパラメータを渡します。レスポンスには pagination オブジェクトが含まれます。
{
"data": [{ "id": "item_1" }],
"pagination": { "page": 1, "pageSize": 20, "total": 57, "totalPages": 3 }
}
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);
制限された page_size(API が上限を設けます)を使用し、すべてのページをスキャンするのではなく search フィルターを優先してください。
カーソルベースのエクスポート(監査イベント)
GET /v1/audit/events は、ページ数の代わりにカーソルを返します。
{
"data": [{ "id": "evt_1" }],
"pagination": { "hasMore": true, "nextCursor": { "createdAt": "2026-06-19T14:02:00Z", "id": "evt_1" } }
}
カーソルを cursor_created_at と cursor_id として渡し直すことで再開します(SDK では 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);