Docs
Using the API

Pagination

Lists answer { "object": "list", "data": [...], "has_more": true, "next_cursor": "..." }. Send limit (1–200, default 50) and the next_cursor you got back as cursor. A cursor belongs to the filters it was made with; reused with others it answers 400 invalid_cursor instead of skipping or repeating rows.

TypeScript
let cursor = null;
do {
  const url = new URL("https://api.norreach.app/v1/contacts");
  url.searchParams.set("limit", "200");
  if (cursor) url.searchParams.set("cursor", cursor);
  const page = await (await fetch(url, { headers: { Authorization: `Bearer ${process.env.NORREACH_API_KEY}` } })).json();
  for (const contact of page.data) handle(contact);
  cursor = page.has_more ? page.next_cursor : null;
} while (cursor);