Jede Notiondesk-API-Liste verwendet dieselbe Cursor-Paginierung, und jede Anfrage kann die API-Version, für die Ihre Integration entwickelt wurde, mithilfe des nd-version-Headers festlegen. Dieser Artikel erklärt die Funktionsweise der Notiondesk-API-Paginierung, das Lesen jeder Seite einer Liste, die API-Versionsverwaltung sowie die Namensregeln für Felder und Parameter.
Wie die Paginierung der Notiondesk API funktioniert
Jede Listenroute beantwortet denselben Umschlag:
{
"object": "list",
"data": [],
"has_more": false,
"next_cursor": null
}| Feld | Bedeutung |
|---|---|
object | Immer __RESERVIERT_47__ |
data | Die Artikel auf dieser Seite |
has_more | true wenn eine andere Seite folgt |
next_cursor | Der Wert, der als cursor übergeben werden soll, um die nächste Seite zu erhalten, oder als null für die letzte Seite. |
Die Seite wird mit zwei Abfrageparametern gesteuert:
| Parameter | Typ | Standard | Anmerkungen |
|---|---|---|---|
page_size | ganze Zahl | 1 bis 100 | 20 |
cursor | Zeichenkette | keiner | Die next_cursor der vorherigen Seite wurden unverändert zurückgegeben. |
Listen enthalten keine Seitenzahlen und keine Gesamtanzahl.
Lies jede Seite einer Liste
Wiederhole die Anfrage, wobei cursor auf den Wert von next_cursor der vorherigen Antwort gesetzt ist, bis has_more gleich false ist.
Die erste Seite:
Die nächste Seite, auf der NEXT_CURSOR durch das URL-codierte next_cursor der ersten Seite ersetzt wurde:
Die gleiche Schleife in JavaScript:
Und in Python:
Cursorregeln
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles?page_size=100" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles?page_size=100&cursor=NEXT_CURSOR" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"async function listAll(path) {
const items = [];
let cursor = null;
do {
const url = new URL(`https://api.notiondesk.so${path}`);
url.searchParams.set("page_size", "100");
if (cursor) {
url.searchParams.set("cursor", cursor);
}
const response = await fetch(url, {
headers: {
Authorization: `Bearer ${process.env.NOTIONDESK_API_KEY}`,
"nd-version": "2026-10-16",
},
});
const page = await response.json();
items.push(...page.data);
cursor = page.has_more ? page.next_cursor : null;
} while (cursor);
return items;
}
const articles = await listAll("/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles");import os
import requests
def list_all(path):
items, cursor = [], None
while True:
params = {"page_size": 100}
if cursor:
params["cursor"] = cursor
page = requests.get(
f"https://api.notiondesk.so{path}",
params=params,
headers={
"Authorization": f"Bearer {os.environ['NOTIONDESK_API_KEY']}",
"nd-version": "2026-10-16",
},
).json()
items.extend(page["data"])
if not page["has_more"]:
return items
cursor = page["next_cursor"]- Der Cursor ist undurchsichtig. Bitte analysieren Sie ihn nicht und erstellen Sie auch keinen eigenen. Geben Sie ihn exakt so zurück, wie Sie ihn erhalten haben.
- Sie können
page_sizezwischen den Seiten ändern. Die nächste Seite beginnt dort, wo die vorherige aufgehört hat.
- Der Cursor speichert eine Position, keine Momentaufnahme. Wenn beim Blättern ein Element hinzugefügt oder entfernt wird, kann sich die Reihenfolge der nachfolgenden Elemente ändern, sodass eine Seite wiederholt werden oder ein Element übersprungen werden kann. Falls Ihre Integration Elemente löscht, während diese aufgelistet werden, beginnen Sie anschließend wieder auf der ersten Seite.
- Manche Listen enden frühzeitig. Die Änderungsliste umfasst maximal die 1.000 neuesten Einträge. Seitenweiterleitungen und Feedback umfassen maximal die 10.000 neuesten Einträge. Jenseits dieser Grenze wird
has_morezufalse.
- Manche Listen werden nie paginiert. Themes und Integrationen geben immer alles in einer Antwort zurück, mit
has_more: false.
Ein fehlerhafter Cursor oder ein Cursor, der über das Ende der Liste hinaus zeigt, gibt die Antwort 400 validation_error.
Versionieren Sie Ihre Notiondesk API-Integration
Senden Sie den optionalen Header nd-version, um die Vertragsversion festzulegen, für die Ihre Integration geschrieben wurde:
nd-version: 2026-10-16| Version | Status |
|---|---|
2026-10-16 | Aktuell |
- Ohne den Header verwendet die Anfrage die aktuelle Version.
- Jede Antwort gibt in ihrem eigenen
nd-version-Header die Version an, die die Frage beantwortet hat.
- Ein unbekannter Wert gibt 400
invalid_versionzurück.
Neue Routen, neue optionale Parameter und neue Antwortfelder werden ohne neue Version bereitgestellt. Ihre Integration muss unbekannte Felder ignorieren, damit ein neues Feld niemals zu Problemen führt.
nd-versionNamensregeln
- Die Feldnamen sind in Anfragen und Antworten in snake_case geschrieben :
page_size,next_cursor,default_locale.
- Die Abfrageparameter haben nur eine Schreibweise.
?page_size=10funktioniert.?pageSize=10wird als unbekannter Parameter mit dem Fehlercode 400 abgelehnt.validation_error.
- Unbekannte Parameter und Felder im Nachrichtentext werden mit dem Fehlercode 400
validation_errorzurückgewiesen , sodass ein Tippfehler niemals unbemerkt bleibt.
- Die API verwendet eigene Nomen. Ein Hilfezentrum ist ein
site, eine Sammlung eincategory. Pfade sehen wie/sites/{site_id}/categoriesaus.
- Datumsangaben erfolgen im ISO 8601-Format , zum Beispiel
2026-10-18T14:39:03+00:00.
Häufig gestellte Fragen
Wie erhalte ich die Gesamtzahl der Artikel?
Die Listen enthalten keine Gesamtzahl. Blättern Sie durch die Liste und zählen Sie die Elemente oder rufen Sie den Analysebericht quick auf, der die Anzahl der Artikel im Hilfecenter zurückgibt. Siehe Hilfecenter-Analysen mit der API Notiondesk abrufen .
Was ist die maximale Seitengröße?
100 Elemente. Der Standardwert ist 20. Ein Wert außerhalb von 1 bis 100 führt zu 400 validation_error.
Muss ich den nd-version-Header senden?
nd-version-Header senden?Nein. Ohne diese Angabe verwendet die Anfrage die aktuelle Version. Die Angabe wird für Produktionsintegrationen empfohlen, damit deren Verhalten unverändert bleibt.
Wird ein neues Antwortfeld meine Integration beeinträchtigen?
Nicht, wenn Ihr Code Felder ignoriert, die er nicht erkennt. Notiondesk fügt Antwortfelder ohne neue Version hinzu.