Skip to content

Pagination

List endpoints return newest-first pages with a has_more flag. Page backwards with the before cursor.

View as Markdown

List endpoints (GET /v1/verifications, /v1/consents and /v1/bulk) return objects newest first, in this shape:

List response
{
  "object": "list",
  "data": [
    "…"
  ],
  "has_more": true
}

Parameters

ParameterDescription
limitItems per page, 1 to 100. Defaults to 20 for verifications, 50 for consents and bulk jobs.
beforeCursor: the created_at of the last item on the previous page. Returns items created strictly before it.

has_more is true when at least one more item exists beyond this page. Lists are scoped to the mode of your key.

Walking every page

curl "http://localhost:4000/v1/verifications?limit=100&before=2026-10-19T09%3A41%3A07.512Z" \
  -H "Authorization: Bearer sk_test_..."
async function* allVerifications(params = {}) {
  let before;
  while (true) {
    const qs = new URLSearchParams({ limit: "100", ...params, ...(before && { before }) });
    const res = await fetch(`${process.env.SPEEDMAP_API_URL}/v1/verifications?${qs}`, {
      headers: { Authorization: `Bearer ${process.env.SPEEDMAP_API_KEY}` },
    });
    const page = await res.json();
    yield* page.data;
    if (!page.has_more) return;
    before = page.data.at(-1).created_at;
  }
}

for await (const v of allVerifications({ product: "nin" })) console.log(v.reference_id, v.status);

Filters (product, status on verifications) combine with the cursor, so keep them the same on every page. Verification lists always contain the assertion view, never data.

Questions? Email developers@speedmap.ng. This page is also available as Markdown.