Pagination
Les endpoints de liste (GET /emails, /domains, /api-keys, /webhooks, /audiences, /audiences/{id}/contacts, /broadcasts, /suppressions) partagent un même schéma à base de curseurs.
| Paramètre | Description |
|---|---|
limit |
Éléments par page, de 1 à 100. Par défaut 20. |
after |
Un id d’élément. Renvoie la page des éléments plus anciens (la page suivante). |
before |
Un id d’élément. Renvoie la page des éléments plus récents (la page précédente). |
N’utilisez qu’un seul de after et before ; les deux ensemble renvoient 422. Les résultats sont triés du plus récent au plus ancien. Les curseurs sont des ids d’élément (UUIDv7, qui se trient par date de création) : les pages restent donc stables pendant que de nouveaux éléments arrivent.
{ "object": "list", "has_more": true, "data": [ { "object": "email", "id": "0192e1c4-7a3c-7a02-8e10-6c0f9d7a2b31", "...": "..." }, { "object": "email", "id": "0192e1c4-7a3b-7c1e-9d2f-3b5a8e6f4c10", "...": "..." } ]}has_more indique s’il existe une autre page dans le sens où vous paginez.
Parcourir toutes les pages
Section intitulée « Parcourir toutes les pages »import { SpacePost } from "@spacepost/node";
const spacepost = new SpacePost();
let after: string | undefined;for (;;) { const { data, error } = await spacepost.emails.list({ limit: 100, after }); if (error) throw new Error(error.message); for (const email of data.data) console.log(email.id, email.last_event); if (!data.has_more) break; after = data.data[data.data.length - 1]!.id;}curl "https://api.spacepost.dev/emails?limit=100" -H "Authorization: Bearer $SPACEPOST_API_KEY"curl "https://api.spacepost.dev/emails?limit=100&after=0192e1c4-7a3b-7c1e-9d2f-3b5a8e6f4c10" -H "Authorization: Bearer $SPACEPOST_API_KEY"after = Nonewhile True: params = {"limit": 100, **({"after": after} if after else {})} page = requests.get("https://api.spacepost.dev/emails", headers=h, params=params).json() for email in page["data"]: print(email["id"], email["last_event"]) if not page["has_more"]: break after = page["data"][-1]["id"]Remarques
Section intitulée « Remarques »- Les réponses de liste pour les e-mails omettent
htmlettext; récupérez un seul e-mail pour obtenir son corps. - Les réponses de liste pour les domaines omettent
records; récupérez un seul domaine pour les obtenir. - Un curseur mal formé renvoie
422 validation_error(« Invalid pagination cursor »).