페이지네이션
목록 엔드포인트(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)이므로 새 항목이 들어와도 페이지가 안정적으로 유지됩니다.
{ "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;}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"]- 이메일 목록 응답에는
html과text가 없습니다. 본문이 필요하면 이메일 하나를 조회하세요. - 도메인 목록 응답에는
records가 없습니다. 레코드가 필요하면 도메인 하나를 조회하세요. - 잘못된 형식의 커서는
422 validation_error(“Invalid pagination cursor”)를 반환합니다.