ndeipipayments APIv1 · 0.1.0-draftAPI reference

Essentials

Pagination

List endpoints return newest first, in pages of limit items (1 to 100, default 10), wrapped like this:

JSON
{
  "data": [ { "id": "trf_01JA8ZC4QK7N2Y5W3V0T9S8R6P", "object": "transfer" } ],
  "has_more": true
}

Moving between pages

  • Next page: pass the ID of the last item you received as starting_after.
  • Previous page: pass the ID of the first item as ending_before.
  • Don't combine the two.
Shell
curl "$NDEIPI/transfers?user_id=usr_01JA8Z2F5G6H7J8K9M0N1P2Q3R&limit=50&starting_after=trf_01JA8ZC4QK7N2Y5W3V0T9S8R6P" \
  -H "Api-Key: $NDEIPI_API_KEY"

Reading everything

Keep requesting with starting_after set to the last ID until has_more is false.

Node.js
async function* allTransfers(userId) {
  let cursor;
  while (true) {
    const url = new URL(`${process.env.NDEIPI}/transfers`);
    url.searchParams.set("user_id", userId);
    url.searchParams.set("limit", "100");
    if (cursor) url.searchParams.set("starting_after", cursor);
    const res = await fetch(url, { headers: { "Api-Key": process.env.NDEIPI_API_KEY } });
    const page = await res.json();
    yield* page.data;
    if (!page.has_more || page.data.length === 0) return;
    cursor = page.data[page.data.length - 1].id;
  }
}

Most lists also take created_after and created_before to narrow the time range.