Aller au contenu

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.

Response
{
"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.

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;
}
  • Les réponses de liste pour les e-mails omettent html et text ; 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 »).