PUT/v1/cards-by-external-id/{external_id}
Karte nach externer ID erstellen oder ersetzen
upsert_card_by_external_id
Erstellt oder ersetzt eine Karte anhand der external_id des Integrators. Senden Sie Text als application/json (CardTextUpsert) oder eine Datei als multipart/form-data (CardFileUpsertForm, mit denselben Dateiprüfungen wie POST /v1/cards). Hat die Organisation keine Karte mit dieser external_id, wird die Karte in der Sammlung und dem Ordner aus dem Body erstellt (201). Andernfalls wird der Inhalt durch eine neue Version ersetzt und auf dieselbe Weise neu indexiert wie eine neue Version einer Datei, und die Angaben der Karte (Titel, Tags, verantwortliche Person, Kategorie, metadata) übernehmen die übergebenen Werte (200). Unveränderter Inhalt erzeugt keine neue Version (status: skipped, reason: unchanged), daher ist eine Wiederholung der Anfrage auch ohne Idempotency-Key sicher. Wird metadata übergeben, ersetzt es das gesamte Objekt. Der Zugriff wird beim Erstellen der Karte wie bei einem Upload und beim Ersetzen wie bei einer Aktualisierung der Karte geprüft. Der Inhalt einer Karte, die für den Aufrufer nur teilweise sichtbar ist, wird nicht ersetzt (403 cards.content_whole_access). Karten aus Quellen werden auf diese Weise nicht überschrieben: Gehört die external_id zu einem Dokument einer benutzerdefinierten Quelle oder wird die gefundene Karte von einer Quelle gepflegt, ergibt die Anfrage 409 cards.managed_by_source. Eine Änderung des Inhalts hebt die Prüfung der Karte auf, wie jede neue Version (Grund update).
Authentifizierung
Senden Sie einen API-Schlüssel im Header Authorization: Authorization: Bearer <Schlüssel>.
Pfadparameter
external_idstringerforderlichexternal_idder Karte: eine Zeichenkette mit 1–512 Zeichen, eindeutig in der Organisation.length ≥ 1, length ≤ 512
Header-Parameter
X-View-AsstringNur für API-Schlüssel mit der Rolle
admin. Führt die Anfrage mit dem Datenprofil<profile>[:viewer|verifier|editor]aus, zum Beispielemployee:viewer. Der Installationsschlüssel kann diesen Header nicht verwenden (403).
Cookie-Parameter
kb_view_asstringCookie des Modus „Ansicht als“ für eine Sitzung.
POST /auth/view-assetzt es,DELETE /auth/view-asentfernt es.
Anfragetext
application/json
titlestringlength ≥ 1, length ≤ 200
bodystringerforderlichText der Karte im Format
content_type.length ≥ 1, length ≤ 500000
content_typeCardTextContentTypecollectionstringSammlung nach Name, beim Erstellen der Karte. Standardmäßig die Standardsammlung der Installation.
collection_idinteger | nullSammlung nach ID, beim Erstellen der Karte. Wird zusätzlich
collectionübergeben, hatcollection_idVorrang.folder_idstring | nullOrdner der Sammlung für die neue Karte, mit denselben Prüfungen wie
folder_idbei einem Datei-Upload.length ≤ 64
tagsarray of string | nullitems ≤ 30
categorystring | nulllength ≤ 60
sensitiveboolean | nullowner_idinteger | nullverify_interval_daysinteger | null≥ 1, ≤ 3650
metadataMetadataPatchasyncbooleantrueantwortet sofort und indexiert die Karte in der Warteschlange;falseantwortet nach der Indexierung.Standard: false
multipart/form-data
filestring (application/octet-stream)erforderlichtitlestring | nullTitel der Karte. Wird er nicht übergeben, erhält eine neue Karte den Dateinamen, und eine bestehende Karte behält ihren Titel.
length ≤ 200
collectionstringcollection_idinteger | nullfolder_idstring | nulllength ≤ 64
tagsstringDurch Kommas getrennte Tags.
owner_idinteger | nullverify_interval_daysinteger | nullcategorystring | nullsensitiveboolean | nullmetadatastring | nullmetadata: ein JSON-Objekt als Wert des Formularfelds. Es gelten die Regeln vonMetadataPatch.asyncbooleanStandard: false
Antworten
200Die Karte existierte bereits. Der Inhalt der Karte wurde ersetzt (`queued`, `ready`, `error`) oder hat sich nicht geändert (`skipped`).
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
201Die Karte wurde erstellt (`queued` bei einer asynchronen Anfrage, `ready` oder `error` bei einer synchronen).
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
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
402Die Organisation hat ein Limit ihres Tarifs erreicht (Karten, Speicher oder Benutzer). `error.details` enthält `kind`, `limit` und `used`.
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
413Der Anfragetext überschreitet die zulässige Größe.
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
415Das Dateiformat wird nicht unterstützt.
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
503Ein Dienst, von dem diese Anfrage abhängt, ist vorübergehend nicht verfügbar. Versuchen Sie es später erneut.
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
Fehlercodes
Codes, die dieser Endpunkt in error.code zurückgeben kann, zusätzlich zu den allgemeinen Codes jeder Anfrage.
- 400api.metadata_invalid
- 401auth.not_authenticated
- 403auth.system_scope
- 403authz.forbidden
- 403cards.content_whole_access
- 409cards.external_id_taken
- 409cards.indexing_in_progress
- 409cards.managed_by_source
- 403cards.no_access
- 404cards.not_found
- 403cards.sensitivity_admin_only
- 415cards.unsupported_format
- 400categories.unknown
- 409collections.index_outdated
- 400collections.invalid_name
- 403collections.no_write_access
- 404collections.not_found
- 422files.infected
- 503files.scan_unavailable
- 413files.too_large
- 415files.type_mismatch
- 400folders.card_collection_mismatch
- 404folders.not_found
- 402limits.cards
- 403org.deleted
- 403org.suspended
- 400users.not_in_org
- 403view_as.read_only
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.