Blättern, filtern und sauber synchronisieren
Cursor statt Seitenzahlen, `updated_since` statt Vollabgleich.
Für wen
Entwicklerinnen und Entwickler.
Voraussetzungen
Bestehender Zugang mit Leserecht
Schritt für Schritt
- 1
Seitengröße wählen
`limit` steuert die Anzahl je Seite, erlaubt sind 1 bis 200, Standard ist 50. Größere Seiten sparen Aufrufe, kleinere Seiten antworten schneller.
- 2
Mit dem Cursor blättern
Die Antwort enthält `page.next`. Diesen Wert unverändert als Parameter `page` der nächsten Anfrage mitgeben. Ist `page.next` gleich `null`, sind Sie am Ende.
JavaScriptconst key = process.env.ELYPH_API_KEY; async function fetchAll(resource, params = {}) { const rows = []; let page = null; do { const query = new URLSearchParams({ ...params, limit: "200", ...(page ? { page } : {}) }); const response = await fetch(`https://api.elyph.io/v1/${resource}?${query}`, { headers: { Authorization: `Bearer ${key}` }, }); if (response.status === 429) { const wait = Number(response.headers.get("retry-after") ?? 5); await new Promise((r) => setTimeout(r, wait * 1000)); continue; } if (!response.ok) throw new Error(`${response.status} ${await response.text()}`); const payload = await response.json(); rows.push(...payload.data); page = payload.page.next; } while (page); return rows; } const actions = await fetchAll("actions", { status: "open" }); console.log(actions.length); - 3
Nur Änderungen holen
Merken Sie sich nach jedem Lauf den höchsten `updated_at`-Wert und übergeben Sie ihn beim nächsten Lauf als `updated_since`. Ziehen Sie eine Minute Sicherheitsabstand ab.
curlcurl -sS "https://api.elyph.io/v1/actions?updated_since=2026-02-01T03%3A00%3A00Z&limit=200" \ -H "Authorization: Bearer $ELYPH_API_KEY" - 4
Doppelte vermeiden
Verknüpfen Sie Ihre Datensätze über die fachliche Kennung (`reference` bzw. `id`) und schreiben Sie mit „einfügen oder aktualisieren“, nicht mit „immer einfügen“.
API-Konsole
Anfrage zusammenstellen, Code kopieren und — angemeldet und mit eigenem Schlüssel — wirklich ausführen. Die Konsole führt ausschließlich lesende Aufrufe aus.
GET https://api.elyph.io/v1/actions?limit=10
Statuswert exakt wie im Feld `status`.
Nur Objekte mit Termin bis einschließlich diesem Datum.
Kennung des Standorts (UUID der Organisationseinheit).
Nur Objekte, die seit diesem Zeitpunkt geändert wurden (ISO 8601). Grundlage jeder Synchronisation.
Anzahl der Objekte je Seite, 1 bis 200. Standard 50.
Fortsetzungsmarke aus `page.next` der vorherigen Antwort. Keine Seitenzahl.
curl -sS "https://api.elyph.io/v1/actions?limit=10" \
-H "Authorization: Bearer $ELYPH_API_KEY"Echttest
Nach der Anmeldung führen Sie dieselbe Anfrage hier mit Ihrem eigenen Schlüssel aus. So sieht eine echte Antwort aus:
{
"data": [
{
"reference": "MAS-2026-233",
"title": "Zweihandschaltung instand setzen",
"type": "technisch",
"status": "in_progress",
"priority": "hoch",
"due_date": "2026-02-14",
"owner": {
"name": "Marco List",
"email": "marco.list@example.com"
},
"site": {
"reference": "WN",
"name": "Werk Nord"
},
"origin": {
"type": "assessment",
"reference": "GBU-2026-014"
},
"effectiveness_check": {
"required": true,
"done": false,
"result": null,
"due_at": "2026-03-15"
},
"implemented_at": null,
"completed_at": null,
"updated_at": "2026-01-21T11:05:00Z"
}
],
"page": {
"next": null,
"limit": 10
},
"rate": {
"limit": 120,
"remaining": 118,
"reset_at": "2026-02-01T10:31:00Z"
}
}Ergebnis
Ein Abgleich, der auch bei zehntausenden Datensätzen stabil und sparsam läuft.
Häufige Stolpersteine
- Seitenzahlen erwarten: Die Schnittstelle blättert ausschließlich per Cursor; ein Cursor gilt nur für dieselbe Filterkombination.
- Cursor verändern oder dekodieren: Er ist ein undurchsichtiger Wert und kann sich jederzeit ändern.
- Filter zwischen zwei Seiten wechseln: Beginnen Sie in diesem Fall neu ohne `page`.
Hintergrund
Der Cursor enthält den Sortierwert und die Kennung des letzten Objekts. Dadurch bleiben Ergebnisse auch dann vollständig, wenn während des Blätterns Datensätze hinzukommen.