Pagination
Les listes se parcourent par curseur : limit (1 à 100, 20 par défaut) et starting_after,
l’identifiant du dernier élément reçu. La réponse indique has_more.
Une page de liste a la forme {"object": "list", "data": [...], "has_more": true}. Pour la suivante, passez l’identifiant du dernier élément reçu dans starting_after.
curl "https://api.vizalia.ai/v1/sessions?limit=100&starting_after=ses_01JC3W8Z5T9QK2N4R6V8X0Y1Z2" \ -H "Authorization: Bearer $VIZALIA_API_KEY"Les listes paginées
Section intitulée « Les listes paginées »- GET
/sessions: lister les sessions - GET
/journeys: lister les parcours - GET
/webhook_endpoints: lister les abonnements - GET
/events: lister les événements
Les autres listes, comme les médias d’une session et les marques, renvoient tout d’un coup, avec has_more à faux.
Tout parcourir
Section intitulée « Tout parcourir »async function* toutesLesSessions(filtres = {}) { let apres; do { const parametres = new URLSearchParams({ ...filtres, limit: '100', ...(apres ? { starting_after: apres } : {}) }); const reponse = await fetch(`https://api.vizalia.ai/v1/sessions?${parametres}`, { headers: { Authorization: `Bearer ${process.env.VIZALIA_API_KEY}` }, }); const page = await reponse.json(); yield* page.data; apres = page.has_more ? page.data.at(-1).id : undefined; } while (apres);}
for await (const session of toutesLesSessions({ status: 'ended' })) { console.log(session.id, session.reference);}def toutes_les_sessions(**filtres): apres = None while True: parametres = {**filtres, "limit": 100, **({"starting_after": apres} if apres else {})} page = requests.get( "https://api.vizalia.ai/v1/sessions", headers={"Authorization": f"Bearer {CLE_API}"}, params=parametres, timeout=30, ).json() yield from page["data"] if not page["has_more"]: break apres = page["data"][-1]["id"]
for session in toutes_les_sessions(status="ended"): print(session["id"], session["reference"])