<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>
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>
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 GET
, POST
, PATCH
, und DELETE
Anfragen zu Seiten- oder Datenbankressourcen durchgeführt werden. Anfrage- und Antwortkörper werden als JSON kodiert.
JSON-Konventionen
"Objekt"
-Eigenschaft. Diese Eigenschaft kann verwendet werden, um die Art der Ressource zu bestimmen (z. B. "Datenbank"
, "Nutzer/-in"
, etc.)"id"
-Eigenschaft adressierbar. Du kannst Bindestriche in der ID weglassen, wenn du Anfragen an die API stellst, z. B. wenn du die ID aus einer Notion-URL kopierst.snake_case
(nicht camelCase
oder kebab-case
).2020-08-12T02:12:33.231Z
), während Daten nur das Datum enthalten wird (2020-08-12
).url
Property-Wertobjekt aufzuheben, verwende eine explizite null
anstelle von ""
.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.
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. |
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ä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>
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 |
HTTP-Antwortcodes werden verwendet, um allgemeine Erfolgs- und Fehlerklassen anzugeben
HTTP-Status Quote | Beschreibung |
---|---|
200 | Erfolgreich verarbeitete Anfrage |
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. |
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"
Benutzerobjekte erscheinen in der API in fast allen Objekten, die von der API zurückgegeben werden, einschließlich:
erstellt_von
und zuletzt_bearbeitet_von
.erstellt_von
und zuletzt_bearbeitet_von
und in people
-Eigenschaftselementen.erstellt_von
und zuletzt_bearbeitet_von
.people
-Eigenschaft ist.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.
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>" |
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. |