Zum Inhalt springen
LinkProfit

Paginierung

Cursor-Paginierung an jedem Listen-Endpunkt: der Umschlag, die Limits und eine Iterationsschleife zum Kopieren.

Aktualisiert 13. August 2026

Jeder Listen-Endpunkt blättert mit einem undurchsichtigen Cursor. Cursor bleiben stabil, wenn Einträge hinzukommen oder verschwinden: Anders als Seitenzahlen überspringen oder verdoppeln sie beim Durchlaufen nie eine Zeile.

Der Umschlag

{
  "data": [ { "id": "lnk_…" }, { "id": "lnk_…" } ],
  "pagination": {
    "next_cursor": "eyJpZCI6Imxua19hYmMiLCJjcmVhdGVkX2F0IjoiMjAyNi0uLi4ifQ",
    "has_more": true
  }
}
  • limit — Seitengröße, 1–100, Standard 50.
  • cursor — der next_cursor der vorherigen Seite, wortgleich übergeben.
  • next_cursor ist auf der letzten Seite null.

Behandeln Sie den Cursor als undurchsichtige Zeichenkette: Sein Format kann sich ändern, garantiert ist nur, dass er unverändert zurückgegeben werden kann. Ein fehlerhafter Cursor antwortet mit 400 invalid_request, statt stillschweigend wieder bei der ersten Seite zu beginnen.

Durchlaufen

curl -s "$LINKPROFIT_API_BASE/links?limit=100" \
  -H "Authorization: Bearer $LINKPROFIT_API_KEY"
# then with the next_cursor value from the response:
curl -s "$LINKPROFIT_API_BASE/links?limit=100&cursor=CURSOR_FROM_PREVIOUS_PAGE" \
  -H "Authorization: Bearer $LINKPROFIT_API_KEY"
async function* allLinks(base, key) {
  let cursor = null;
  do {
    const url = new URL(`${base}/links`);
    url.searchParams.set("limit", "100");
    if (cursor) url.searchParams.set("cursor", cursor);

    const response = await fetch(url, {
      headers: { Authorization: `Bearer ${key}` },
    });
    if (!response.ok) throw new Error(`HTTP ${response.status}`);

    const page = await response.json();
    yield* page.data;
    cursor = page.pagination.next_cursor;
  } while (cursor);
}

Wo Cursor gelten

Cursor-Paginierung gibt es bei /links, /events, /partner/clients und /webhooks/{id}/deliveries. Kurze Listen — Domains, Tarife, Webhooks — kommen in einer Seite mit has_more: false zurück; Zahlungen und Auszahlungen werden über period gefiltert und sind auf 100 Zeilen pro Anfrage gedeckelt.

Sortiert wird überall neueste zuerst, außer bei /partner/clients, das in stabiler ID-Reihenfolge blättert.