Zum Hauptinhalt springen

Paginierung

Viele Endpoints geben Daten paginiert zurück. Das bedeutet, dass nicht alle Einträge auf einmal zurückgegeben werden, sondern immer nur eine Teilmenge. Dies erkennst du an einem Feld meta.pagination in der Response.

Pagination Metadaten

Die Pagination enthält Informationen über die Gesamtmenge und wie die Daten aufgeteilt sind:

{
"meta": {
"pagination": {
"total": 150,
"count": 20,
"perPage": 20,
"currentPage": 1,
"totalPages": 8
}
}
}
FeldBeschreibung
totalGesamtanzahl aller Einträge
countAnzahl Einträge auf dieser Seite
perPageEinträge pro Seite
currentPageAktuelle Seite (beginnt bei 1)
totalPagesGesamtanzahl der Seiten

Query‑Parameter

Steuere die Pagination mit diesen Parametern:

  • page — Seitennummer (Standard: 1)
  • limit — Einträge pro Seite (Standard: 10)

Beispiel:

GET /api/v1/subscribers?page=2&limit=50

Das gibt die 2. Seite mit 50 Einträgen pro Seite zurück.

Durch Seiten navigieren

Um alle Daten abzurufen, iteriere über alle Seiten:

# Seite 1
curl "https://YOUR_SERVER-api.mail2many.de/api/v1/subscribers?page=1&limit=50" \
--user 'mail2many:YOUR_API_KEY' \
-H "Content-Type: application/json" \
-H "Accept: application/json"

# Seite 2
curl "https://YOUR_SERVER-api.mail2many.de/api/v1/subscribers?page=2&limit=50" \
--user 'mail2many:YOUR_API_KEY' \
-H "Content-Type: application/json" \
-H "Accept: application/json"

# Weiter bis totalPages erreicht ist

Beende die Schleife, wenn currentPage gleich totalPages ist.

Best Practices

  • Nutze ein angemessenes limit (z. B. 50–100) für bessere Performance
  • Cachen von Daten über mehrere Seiten zur Vermeidung redundanter Anfragen
  • Bei sehr großen Datenmengen erwäge die Große Datenmengen Dokumentation
  • Achte auf 429 bei vielen Seitenabrufen und beachte Rate Limiting