<aside> ❗ Notion-Tipp: Nutze diese Seite als ein Beispiel dafür, wie du deine API-Referenz strukturieren und in Notion hosten kannst. Die Endpunkte-Datenbank enthält auch eine Endpunkte-Vorlage für die weitere Dokumentation.

</aside>

Allgemeines

Einleitung

Die Referenz ist der Schlüssel für ein vollständiges Verständnis der Notion-API.

<aside> ❗ Du benötigst ein Integrations-Token, um mit der Notion-API zu interagieren. Du findest ein Integrations-Token, nachdem du eine Integration auf der Seite der Integrationseinstellungen erstellt hast. Wenn du dich zum ersten Mal mit der Notion-API beschäftigst, empfehlen wir dir, mit dem Erste Schritte-Leitfaden zu beginnen, um zu lernen, wie man eine Integration erstellt.

</aside>

Konventionen

Die Grund-URL zum Versenden aller API-Anfragen lautet https://api.notion.com. HTTPS ist für alle API-Anfragen erforderlich.

Die Notion-API folgt, wenn möglich, den RESTful-Konventionen, wobei die meisten Operationen via GETPOSTPATCH, und DELETE Anfragen zu Seiten- oder Datenbankressourcen durchgeführt werden. Anfrage- und Antwortkörper werden als JSON kodiert.

JSON-Konventionen

Code-Beispiele & SDKs

Für jeden Endpunkt werden Beispiele für Anfragen und Antworten gezeigt. Die Anfragen werden mit dem Notion [JavaScript SDK] (https://github.com/makenotion/notion-sdk-js) und [cURL] (https://curl.se/) dargestellt. Diese Beispiele erleichtern das Kopieren, Einfügen und Ändern bei der Erstellung deiner Integration.

Die Notion SDKs sind Open-Source-Projekte, die du installieren kannst, um einfach mit der Erstellung zu beginnen. Du kannst auch jede andere Sprache oder Bibliothek wählen, mit der du HTTP-Anfragen stellen kannst.

Paginierung

Endpunkte, die Listen von Objekten zurückgeben, unterstützen cursorbasierte Paginierungsanfragen. Standardmäßig gibt Notion zehn Elemente pro API-Aufruf zurück. Wenn die Anzahl der Elemente in einer Antwort von einem Support-Endpunkt den Standardwert übersteigt, kann eine Integration die Paginierung verwenden, um einen bestimmten Satz von Ergebnissen anzufordern und/oder die Anzahl der zurückgegebenen Elemente zu begrenzen.

UNTERSTÜTZE ENDPUNKTE

HTTP-Methode Endpunkt
GET Auflistung aller Nutzer/-innen
GET Abrufen untergeordneter Blöcke
GET Abrufen eines Kommentars
GET Abrufen eines Elements einer Seiteneigenschaft
POST Datenbankabfrage
POST Suche

ANTWORTEN

Feld Typ Beschreibung
has_more boolean Ob die Antwort das Ende der Liste enthält. false falls es keine weiteren Ergebnisse gibt. Andernfalls, true.
next_cursor string Ein String, der verwendet werden kann, um die nächste Ergebnisseite abzurufen, indem man den Wert als start_cursor -Parameter an denselben Endpunkt weitergibt. Nur verfügbar, wenn has_more zutrifft.
object "list" Die konstante String- "list".
results array of objects Die Liste oder der Teil der Liste endpunktspezifischer Ergebnisse. Weitere Informationen findest du in der Dokumentation des jeweiligen unterstützten Endpunkts.

Anfragelimits

To ensure a consistent developer experience for all API users, the Notion API is rate limited and basic size limits apply to request parameters.

Ratenbeschränkungen

Ratenbeschränkte Anfragen werden einen "rate_limited"-Fehlercode zurückmelden. (HTTP Antwortstatus 429). Die Ratenbeschränkung für eingehende Anfragen pro Integration liegt bei durchschnittlich drei Anfragen pro Sekunde. Einige Überschreitungen der durchschnittlichen Rate sind erlaubt.

<aside> ❗ Ratenbeschränkungen können sich verändern

Für die Zukunft planen wir, die Ratenbeschränkungen anzupassen, um einen Ausgleich zwischen Nachfrage und Verlässlichkeit zu finden. Wir werden möglicherweise bestimmte Ratenbeschränkungen für Workspaces unterschiedlicher kostenpflichtiger Pläne einführen.

</aside>

Größenbeschränkungen

Notion begrenzt die Größe bestimmter Parameter and the depth of children in requests. Eine Anfrage, die eine dieser Beschränkungen überschreitet, wird einen  "validation_error"-Fehlercode zurückmelden (HTTP Antwortstatus 400) und spezifischere Details in der "message"-Eigenschaft enthalten.

Art des Eigenschaftswerts Innere Eigenschaft Größenbeschränkungen
Rich text-Objekt text.content 2000 Zeichen
Rich text-Objekt text.link.url 2000 Zeichen
Rich text-Objekt equation.expression 1000 Zeichen
Eine beliebige Reihe von Rich text-Objekten 100 Elemente

Statuscodes

HTTP-Antwortcodes werden verwendet, um allgemeine Erfolgs- und Fehlerklassen anzugeben

Erfolgscodes

HTTP-Status Quote Beschreibung
200 Erfolgreich verarbeitete Anfrage

Fehlercodes

Fehlercodes beinhalten weitere Details zum Fehler in den “code” und “message”-Eigenschaften des Antwortkörpers.

HTTP-Status Quote code message
400 invalid_json Der Anfragekörper konnte nicht als JSON dekodiert werden.
invalid_request_url Diese Anfrage-URL ist ungültig.
invalid_request Diese Anfrage wird nicht unterstützt.
401 unauthorized Der Inhaber-Token ist ungültig.

Versionen

Unsere API-Versionen sind nach dem Datum benannt, an dem die Version veröffentlicht wurde. Unsere neueste Version ist zum Beispiel 2022-06-28.

Du legst die Version fest, indem du einen Notion-Version-Header einfügst. Das Setzen des Notion-Version-Headers ist erforderlich.

curl <https://api.notion.com/v1/users/01da9b00-e400-4959-91ce-af55307647e5> \\
  -H "Authorization: Bearer secret_t1CdN9S8yicG5eWLUOfhcWaOscVnFXns"
  -H "Notion-Version: 2022-06-28"

Objekte

Nutzer/-innen

Wo Benutzerobjekte in der API erscheinen

Benutzerobjekte erscheinen in der API in fast allen Objekten, die von der API zurückgegeben werden, einschließlich:

Nutzerobjekte beinhalten immer objekt and id-Schlüssel wie unten beschrieben. Die übrigen Eigenschaften können angezeigt werden, wenn der Benutzer oder die Benutzerin in einem Rich-Text- oder Seiteneigenschaftskontext gerendert wird und der Bot über die richtigen Fähigkeiten für den Zugriff auf diese Eigenschaften verfügt. Weitere Informationen zu Fähigkeiten finden Sie in der Anleitung zu Fähigkeiten und in der Anleitung zur Autorisierung.

Alle Nutzer/-innen

Diese Felder werden zwischen allen Nutzer/-innen geteilt, einschließlich Menschen und Bots. Felder mit einer *-Markierung sind immer präsent.

Eigenschaft Aktualisierbar Typ Beschreibung Beispielwerte
object* nur Anzeige "user" Always "user" "user"
id* nur Anzeige string(UUID) Eindeutige Kennung für diesen Benutzer "e79a0b74-3aba-4149-9f74-0bb5791a6ee6"
type nur Anzeige string(optional, enum) Nutzerart. Mögliche Werte sind "person" und "bot". "person"
name nur Anzeige string(optional) Der Benutzername, wie er in Notion angezeigt wird. "Avocado Lovelace"
avatar_url nur Anzeige string(optional) Wähle ein Avatar-Bild. "<https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg>"

Datei

Dateiobjekte enthalten Daten über eine Datei, die in Notion hochgeladen wurde, oder Daten über externe Dateien, die in Notion verlinkt sind.

{
  "type": "file",
  "file": {
    "url": "<https://s3.us-west-2.amazonaws.com/secure.notion-static.com/7b8b0713-dbd4-4962-b38b-955b6c49a573/My_test_image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20221024%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20221024T205211Z&X-Amz-Expires=3600&X-Amz-Signature=208aa971577ff05e75e68354e8a9488697288ff3fb3879c2d599433a7625bf90&X-Amz-SignedHeaders=host&x-id=GetObject>",
    "expiry_time": "2022-10-24T22:49:22.765Z"
  }
}

Seiten-, Einbettungs-, Bild-, Video-, Datei-, PDF- und Lesezeichen-Blockarten beinhalten Dateiobjekte. Icon- und Cover-Seitenobjekt-Werte beinhalten ebenfalls Dateiobjekte.

Jedes Dateiobjekt beinhaltet die folgenden Felder:

Feld Typ Beschreibung Beispielwerte
type string (enum) Die Art des Dateiobjekts. Mögliche Typenwerte sind: "external""file". "external"
external file object Ein Objekt, das eine typspezifische Konfiguration enthält. Der Objektschlüssel ist external für externe Dateien, und file für von Notion gehostete Dateien. Beispiele findest du in den nachstehenden typenspezifischen Abschnitten.

Endpunkte

Endpoints