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ètre | Description |
|---|---|
limit | Nombre d’objets à renvoyer, entre 1 et 100. Par défaut : 20. |
starting_after | Un 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