POST/v1/drafts
Entwurf erstellen
create_draft
Erstellt einen Entwurf einer neuen Karte (collection, erfordert COLLECTION_CREATE_CARDS) oder einer Bearbeitung einer bestehenden Karte (card_id, erfordert CARD_EDIT; Titel, Tags und Text werden aus der neuesten Version übernommen, sofern nicht angegeben). Der Autor ist der erste Mitautor. Ein Benutzer kann pro Karte einen aktiven Entwurf haben: Eine wiederholte Anfrage ergibt 409 drafts.exists mit draft_id in details (arbeiten Sie in diesem Entwurf mit PATCH weiter). scheduled_publish_at plant die Veröffentlichung. Ein API-Schlüssel benennt den Autor des Entwurfs in author_id (seit 1.62.0).
Authentifizierung
Senden Sie einen API-Schlüssel im Header Authorization: Authorization: Bearer <Schlüssel>.
Header-Parameter
Idempotency-KeystringSchlüssel für die sichere Wiederholung eines Schreibvorgangs: 1 bis 255 druckbare ASCII-Zeichen; empfohlen wird eine UUID v4 pro logischer Operation. Eine Wiederholung mit demselben Schlüssel innerhalb von 24 Stunden führt die Operation nicht erneut aus, sondern liefert die gespeicherte Antwort (Status, Header und Body) mit dem Header
Idempotency-Replayed: true. Derselbe Schlüssel mit einer anderen Methode, einem anderen Pfad,Content-Typeoder Body ergibt409 api.idempotency_mismatch; solange die erste Anfrage noch läuft,409 api.idempotency_in_progressmitRetry-After: 1. Nach einer 5xx- oder 429-Antwort wird der Schlüssel freigegeben, und eine Wiederholung führt die Operation erneut aus. Der Schlüssel gilt pro Organisation und Aufrufer (API-Schlüssel, Benutzer oder Schlüssel einer benutzerdefinierten Quelle).length ≥ 1, length ≤ 255
Anfragetext
application/json
card_idstring | nullcollectionstring | nullName der Sammlung für eine neue Karte (ohne
card_iderforderlich).titlestring | nulllength ≤ 200
body_markdownstring | nulllength ≤ 500000
tagsarray of string | nullitems ≤ 30
revision_notestring | nulllength ≤ 1000
verify_on_publishbooleanStandard: false
notify_followersbooleanStandard: false
scheduled_publish_atstring (date-time) | nullauthor_idintegerAutor des Entwurfs, wenn ein API-Schlüssel aufruft (seit 1.62.0): ein aktiver Benutzer der Organisation des Schlüssels; der Benutzer wird
created_byund erster Mitautor. Für einen Schlüssel erforderlich (sonst422 validation.failed); ein Benutzer einer anderen Organisation oder ein inaktiver Benutzer ergibt404 users.not_found. Die Berechtigungen für die Sammlung und die Karte werden für den Schlüssel geprüft, nicht für den Autor. In einer Sitzung ist der Autor der angemeldete Benutzer: Ein abweichendesauthor_idergibt422 validation.failed.≥ 1
Antworten
201Erstellt
Antwort-Header
RateLimit-PolicyGeltende Limits im Format des IETF-Entwurfs
draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge"<name>";q=<quota>;w=<window in seconds>.keyist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintraguser, ohne Anmeldedatenip);minute,dayundmonthsind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.RateLimitWas von jedem Limit in
RateLimit-Policyübrig ist:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit des strengsten Eintrags in
RateLimit-Policy(des Eintrags mit den wenigsten verbleibenden Anfragen).X-RateLimit-RemainingVerbleibende Anfragen unter dem strengsten Limit.
X-RateLimit-ResetSekunden bis zum Zurücksetzen des strengsten Limits.
Idempotency-Replayedtruebedeutet, dass die für diesenIdempotency-Keygespeicherte Antwort erneut geliefert wurde: Die Operation wurde nicht noch einmal ausgeführt.
application/json
idintegererforderlichorg_idintegererforderlichcard_idstring | nullerforderlichDie Karte, die der Entwurf bearbeitet;
null– ein Entwurf einer neuen Karte.collection_idintegererforderlichcollectionstringerforderlichtitlestringerforderlichbody_markdownstringerforderlichtagsarray of stringerforderlichbase_versioninteger | nullVersion der Karte, von der der Entwurf ausging.
scheduled_publish_atstring (date-time) | nullrevision_notestring | nullverify_on_publishbooleanerforderlichnotify_followersbooleanerforderlichcreated_byintegererforderlichupdated_byinteger | nullcreated_atstring (date-time)erforderlichupdated_atstring (date-time)erforderlichpublish_requested_byinteger | nullpublish_requested_atstring (date-time) | nullapproved_byinteger | nullapproved_atstring (date-time) | nullconflictstring | nullcard_published– die Karte wurde nach Beginn des Entwurfs veröffentlicht oder geändert;card_deleted– die Karte wurde gelöscht; erweiterbar.
400Die Anfrage ist ungültig: Ein Parameterwert oder der Zustand des Objekts lässt die Aktion nicht zu (`detail` ist eine Meldung).
Antwort-Header
RateLimit-PolicyGeltende Limits im Format des IETF-Entwurfs
draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge"<name>";q=<quota>;w=<window in seconds>.keyist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintraguser, ohne Anmeldedatenip);minute,dayundmonthsind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.RateLimitWas von jedem Limit in
RateLimit-Policyübrig ist:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit des strengsten Eintrags in
RateLimit-Policy(des Eintrags mit den wenigsten verbleibenden Anfragen).X-RateLimit-RemainingVerbleibende Anfragen unter dem strengsten Limit.
X-RateLimit-ResetSekunden bis zum Zurücksetzen des strengsten Limits.
application/json
401Es wurden keine Anmeldedaten gesendet (weder ein Sitzungscookie noch ein API-Schlüssel), oder der Schlüssel wurde nicht gefunden.
Antwort-Header
RateLimit-PolicyGeltende Limits im Format des IETF-Entwurfs
draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge"<name>";q=<quota>;w=<window in seconds>.keyist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintraguser, ohne Anmeldedatenip);minute,dayundmonthsind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.RateLimitWas von jedem Limit in
RateLimit-Policyübrig ist:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit des strengsten Eintrags in
RateLimit-Policy(des Eintrags mit den wenigsten verbleibenden Anfragen).X-RateLimit-RemainingVerbleibende Anfragen unter dem strengsten Limit.
X-RateLimit-ResetSekunden bis zum Zurücksetzen des strengsten Limits.
application/json
403Die Aktion ist nicht erlaubt: Die Rolle reicht nicht aus, es besteht kein Zugriff auf die Sammlung oder Karte, die Anfrage läuft im Modus „Ansicht als“, oder die Organisation ist gesperrt oder gelöscht (`detail` ist ein Objekt mit `code: org_suspended | org_deleted`).
Antwort-Header
RateLimit-PolicyGeltende Limits im Format des IETF-Entwurfs
draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge"<name>";q=<quota>;w=<window in seconds>.keyist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintraguser, ohne Anmeldedatenip);minute,dayundmonthsind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.RateLimitWas von jedem Limit in
RateLimit-Policyübrig ist:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit des strengsten Eintrags in
RateLimit-Policy(des Eintrags mit den wenigsten verbleibenden Anfragen).X-RateLimit-RemainingVerbleibende Anfragen unter dem strengsten Limit.
X-RateLimit-ResetSekunden bis zum Zurücksetzen des strengsten Limits.
application/json
404Das Objekt existiert nicht oder ist für Sie nicht verfügbar. Die API bestätigt nicht, dass ein eingeschränktes Objekt existiert.
Antwort-Header
RateLimit-PolicyGeltende Limits im Format des IETF-Entwurfs
draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge"<name>";q=<quota>;w=<window in seconds>.keyist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintraguser, ohne Anmeldedatenip);minute,dayundmonthsind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.RateLimitWas von jedem Limit in
RateLimit-Policyübrig ist:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit des strengsten Eintrags in
RateLimit-Policy(des Eintrags mit den wenigsten verbleibenden Anfragen).X-RateLimit-RemainingVerbleibende Anfragen unter dem strengsten Limit.
X-RateLimit-ResetSekunden bis zum Zurücksetzen des strengsten Limits.
application/json
409Der Zustand des Objekts lässt die Aktion nicht zu, zum Beispiel bei einem Duplikat, einer laufenden Indexierung oder einem bereits verarbeiteten Job.
Antwort-Header
RateLimit-PolicyGeltende Limits im Format des IETF-Entwurfs
draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge"<name>";q=<quota>;w=<window in seconds>.keyist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintraguser, ohne Anmeldedatenip);minute,dayundmonthsind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.RateLimitWas von jedem Limit in
RateLimit-Policyübrig ist:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit des strengsten Eintrags in
RateLimit-Policy(des Eintrags mit den wenigsten verbleibenden Anfragen).X-RateLimit-RemainingVerbleibende Anfragen unter dem strengsten Limit.
X-RateLimit-ResetSekunden bis zum Zurücksetzen des strengsten Limits.
application/json
422Validierungsfehler: Der Body oder die Parameter entsprechen nicht dem Schema (`detail` ist eine Liste von Validierungsfehlern), oder ein Parameterwert liegt außerhalb des zulässigen Bereichs (`detail` ist eine Meldung).
Antwort-Header
RateLimit-PolicyGeltende Limits im Format des IETF-Entwurfs
draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge"<name>";q=<quota>;w=<window in seconds>.keyist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintraguser, ohne Anmeldedatenip);minute,dayundmonthsind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.RateLimitWas von jedem Limit in
RateLimit-Policyübrig ist:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit des strengsten Eintrags in
RateLimit-Policy(des Eintrags mit den wenigsten verbleibenden Anfragen).X-RateLimit-RemainingVerbleibende Anfragen unter dem strengsten Limit.
X-RateLimit-ResetSekunden bis zum Zurücksetzen des strengsten Limits.
application/json
429Zu viele Anfragen (`api.rate_limited`), das Kontingent der Organisation für die Minute, den Tag oder den Monat ist aufgebraucht (`api.quota_exceeded`; `error.details` enthält `quota`, `limit` und `reset_at`), das Limit der Organisation ist erreicht, oder der Antwortdienst ist ausgelastet (`answers.engine_busy`). Warten Sie die im Header `Retry-After` angegebene Zeit ab.
Antwort-Header
Retry-AfterAnzahl der Sekunden, die Sie warten sollten, bevor Sie die Anfrage wiederholen.
RateLimit-PolicyGeltende Limits im Format des IETF-Entwurfs
draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge"<name>";q=<quota>;w=<window in seconds>.keyist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintraguser, ohne Anmeldedatenip);minute,dayundmonthsind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.RateLimitWas von jedem Limit in
RateLimit-Policyübrig ist:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit des strengsten Eintrags in
RateLimit-Policy(des Eintrags mit den wenigsten verbleibenden Anfragen).X-RateLimit-RemainingVerbleibende Anfragen unter dem strengsten Limit.
X-RateLimit-ResetSekunden bis zum Zurücksetzen des strengsten Limits.
application/json
Fehlercodes
Codes, die dieser Endpunkt in error.code zurückgeben kann, zusätzlich zu den allgemeinen Codes jeder Anfrage.
Sichere Wiederholungen
Senden Sie bei jedem POST und PATCH einen Header Idempotency-Key (zum Beispiel eine UUID). Eine Wiederholung mit demselben Schlüssel innerhalb von 24 Stunden gibt die gespeicherte Antwort zurück, statt die Anfrage erneut auszuführen.
Ratenlimits
Antworten enthalten die Header RateLimit und RateLimit-Policy sowie die älteren X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset. Eine Antwort 429 enthält Retry-After in Sekunden: Warten Sie und versuchen Sie es dann erneut.