PUT/v1/cards-by-external-id/{external_id}
Kartı harici kimliğe göre oluşturma ya da değiştirme
upsert_card_by_external_id
Entegratörün external_id değerine göre bir kart oluşturur ya da değiştirir. Metni application/json (CardTextUpsert) olarak ya da dosyayı multipart/form-data (CardFileUpsertForm, POST /v1/cards ile aynı dosya denetimleriyle) olarak gönderin. Kuruluşta bu external_id değerine sahip kart yoksa kart, gövdede belirtilen koleksiyonda ve klasörde oluşturulur (201). Aksi hâlde içerik yeni bir sürümle değiştirilir ve bir dosyanın yeni sürümüyle aynı şekilde yeniden dizinlenir; kart bilgileri (başlık, etiketler, sorumlu, kategori, metadata) gönderilen değerleri alır (200). Değişmeyen içerik yeni sürüm oluşturmaz (status: skipped, reason: unchanged); bu yüzden isteği tekrarlamak Idempotency-Key olmadan da güvenlidir. metadata gönderildiğinde nesnenin tamamının yerini alır. Erişim, kart oluşturulurken bir yüklemedeki gibi, değiştirilirken bir kart güncellemesindeki gibi denetlenir. Çağırana yalnızca kısmen görünen bir kartın içeriği değiştirilmez (403 cards.content_whole_access). Kaynak kartlarının üzerine bu yolla yazılmaz: external_id bir özel kaynağın belgesine aitse ya da bulunan kartı bir kaynak yönetiyorsa istek 409 cards.managed_by_source döndürür. İçeriği değiştirmek, her yeni sürümde olduğu gibi kartın doğrulamasını kaldırır (neden: update).
Kimlik doğrulama
API anahtarını Authorization başlığında gönderin: Authorization: Bearer <anahtar>.
Yol parametreleri
external_idstringzorunluKartın
external_iddeğeri: kuruluşta benzersiz, 1–512 karakterlik bir dize.length ≥ 1, length ≤ 512
Başlık parametreleri
X-View-AsstringYalnızca
adminrolündeki API anahtarları için. İsteği<profile>[:viewer|verifier|editor]veri profili adına yapar, örneğinemployee:viewer. Kurulum anahtarı bu başlığı kullanamaz (403).
Çerez parametreleri
kb_view_asstringBir oturum için “View as” modunun (başka bir kullanıcı gibi görüntüleme) çerezi.
POST /auth/view-asbu çerezi ayarlar,DELETE /auth/view-astemizler.
İstek gövdesi
application/json
titlestringlength ≥ 1, length ≤ 200
bodystringzorunlucontent_typebiçiminde kart metni.length ≥ 1, length ≤ 500000
content_typeCardTextContentTypecollectionstringKart oluşturulurken ada göre koleksiyon. Varsayılan olarak kurulumun varsayılan koleksiyonu.
collection_idinteger | nullKart oluşturulurken kimliğe göre koleksiyon.
collectionda gönderilirsecollection_idgeçerli olur.folder_idstring | nullYeni kart için koleksiyon klasörü; denetimler dosya yüklemedeki
folder_idile aynıdır.length ≤ 64
tagsarray of string | nullitems ≤ 30
categorystring | nulllength ≤ 60
sensitiveboolean | nullowner_idinteger | nullverify_interval_daysinteger | null≥ 1, ≤ 3650
metadataMetadataPatchasyncbooleantruehemen döner ve kartı kuyrukta dizinler;falsedizinlemeden sonra döner.Varsayılan: false
multipart/form-data
filestring (application/octet-stream)zorunlutitlestring | nullKartın başlığı. Gönderilmezse yeni kart dosya adını alır, var olan kart başlığını korur.
length ≤ 200
collectionstringcollection_idinteger | nullfolder_idstring | nulllength ≤ 64
tagsstringVirgülle ayrılmış etiketler.
owner_idinteger | nullverify_interval_daysinteger | nullcategorystring | nullsensitiveboolean | nullmetadatastring | nullmetadata: form alanının değeri olarak bir JSON nesnesi. KurallarMetadataPatchile aynıdır.asyncbooleanVarsayılan: false
Yanıtlar
200Kart zaten vardı. İçeriği değiştirildi (`queued`, `ready`, `error`) ya da değişmedi (`skipped`).
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
201Kart oluşturuldu (eşzamansız istek için `queued`, eşzamanlı istek için `ready` ya da `error`).
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
400İstek geçersiz: bir parametre değeri ya da nesnenin durumu işleme izin vermiyor (`detail` bir iletidir).
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
401Kimlik bilgisi gönderilmedi (ne oturum çerezi ne de API anahtarı) ya da anahtar bulunamadı.
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
402Kuruluş bir plan limitine ulaştı (kartlar, depolama ya da kullanıcılar). `error.details` alanında `kind`, `limit` ve `used` bulunur.
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
403İşleme izin verilmiyor: rol yetersiz, koleksiyona ya da karta erişim yok, istek “View as” modunda çalışıyor ya da kuruluş askıya alınmış veya silinmiş (`detail`, `code: org_suspended | org_deleted` içeren bir nesnedir).
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
404Nesne yok ya da size açık değil. API, erişimi kısıtlı bir nesnenin var olduğunu belli etmez.
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
409Nesnenin durumu işleme izin vermiyor; örneğin yinelenen bir kayıt, süren bir dizinleme ya da zaten işlenmiş bir iş.
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
413İstek gövdesi izin verilen en büyük boyutu aşıyor.
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
415Dosya biçimi desteklenmiyor.
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
422Geçerlilik hatası: gövde ya da parametreler şemaya uymuyor (`detail` geçerlilik hatalarının listesidir) ya da bir parametre değeri aralığın dışında (`detail` bir iletidir).
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
429Çok fazla istek (`api.rate_limited`), kuruluşun dakika, gün ya da ay kotası doldu (`api.quota_exceeded`; `error.details` alanında `quota`, `limit` ve `reset_at` bulunur), kuruluşun limitine ulaşıldı ya da yanıt hizmeti meşgul (`answers.engine_busy`). `Retry-After` başlığındaki süre kadar bekleyin.
Yanıt başlıkları
Retry-Afterİsteği yeniden denemeden önce beklenmesi gereken saniye sayısı.
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
503Bu isteğin bağlı olduğu bir hizmet geçici olarak kullanılamıyor. Daha sonra yeniden deneyin.
Yanıt başlıkları
RateLimit-PolicyGeçerli limitler, IETF taslağı
draft-ietf-httpapi-ratelimit-headersbiçiminde: virgülle ayrılmış"<name>";q=<quota>;w=<window in seconds>öğeleri.key, API anahtarının istek hızıdır (kota ani artış payıdır, zaman penceresi bu payın tamamen dolma süresidir; oturum içinuser, kimlik bilgisi olmadanip);minute,dayvemonth, kuruluşun UTC’ye göre takvim dakikası, günü ve ayı için kotalarıdır.RateLimitRateLimit-Policyiçindeki her limitten kalan:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitRateLimit-Policyiçindeki en sıkı girdinin limiti (en az istek hakkı kalan girdi).X-RateLimit-RemainingEn sıkı limitte kalan istek sayısı.
X-RateLimit-ResetEn sıkı limitin sıfırlanmasına kalan saniye.
application/json
Hata kodları
Bu uç noktanın, her isteğin genel kodlarının yanı sıra error.code alanında döndürebileceği kodlar.
- 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
Hız sınırları
Yanıtlarda RateLimit ve RateLimit-Policy başlıklarıyla birlikte daha eski X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset başlıkları bulunur. 429 yanıtında saniye cinsinden Retry-After başlığı vardır: bekleyin ve yeniden deneyin.