콘텐츠로 이동

페이지네이션

목록 엔드포인트(GET /emails, /domains, /api-keys, /webhooks, /audiences, /audiences/{id}/contacts, /broadcasts, /suppressions)는 하나의 커서 기반 방식을 공유합니다.

매개변수 설명
limit 페이지당 항목 수, 1에서 100. 기본값은 20.
after 항목 ID. 그보다 오래된 항목의 페이지(다음 페이지)를 반환합니다.
before 항목 ID. 그보다 최신 항목의 페이지(이전 페이지)를 반환합니다.

after와 before 중 하나만 사용하세요. 둘을 함께 쓰면 422가 반환됩니다. 결과는 최신순입니다. 커서는 항목 ID(생성 시각순으로 정렬되는 UUIDv7)이므로 새 항목이 들어와도 페이지가 안정적으로 유지됩니다.

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는 페이지를 넘기는 방향에 다른 페이지가 있는지 알려 줍니다.

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;
}
  • 이메일 목록 응답에는 html과 text가 없습니다. 본문이 필요하면 이메일 하나를 조회하세요.
  • 도메인 목록 응답에는 records가 없습니다. 레코드가 필요하면 도메인 하나를 조회하세요.
  • 잘못된 형식의 커서는 422 validation_error(“Invalid pagination cursor”)를 반환합니다.