Skip to Content
Pagination

Pagination

Tout endpoint qui renvoie plusieurs objets renvoie un objet liste :

{ "object": "list", "data": [ { "id": "alrt_5TgH2kLm8NpQ3rSv6wXy9A", "object": "alert", "…": "…" }, { "id": "alrt_4RfG1jKl7MoP2qRu5vWx8Z", "object": "alert", "…": "…" } ], "has_more": true }

Les listes sont triées de l’objet le plus récent au plus ancien, et paginées par curseur :

ParamètreDescription
limitNombre d’objets à renvoyer, entre 1 et 100. Par défaut : 20.
starting_afterUn ID d’objet. Renvoie les objets qui viennent après lui dans la liste.

Pour parcourir toute une liste, passez l’ID du dernier objet de chaque page jusqu’à ce que has_more vaille false :

curl "https://api.skoup.ai/v1/brands/br_2xKq8Fh3LmN9pQrT4vWy6Z/alerts?limit=100" \ -H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc" curl "https://api.skoup.ai/v1/brands/br_2xKq8Fh3LmN9pQrT4vWy6Z/alerts?limit=100&starting_after=alrt_4RfG1jKl7MoP2qRu5vWx8Z" \ -H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc"
async function* toutesLesAlertes(brand) { let startingAfter while (true) { const url = new URL(`https://api.skoup.ai/v1/brands/${brand}/alerts`) url.searchParams.set('limit', '100') if (startingAfter) url.searchParams.set('starting_after', startingAfter) const page = await fetch(url, { headers: { Authorization: `Bearer ${process.env.SKOUP_API_KEY}` }, }).then((r) => r.json()) yield* page.data if (!page.has_more) return startingAfter = page.data.at(-1).id } }

Un curseur reste valide même si de nouveaux objets sont créés pendant la pagination : ils apparaissent en tête de liste et ne décalent pas vos pages.

Last updated on