POST/v1/cards
Fájl feltöltése kártyaként
upload_card
A dokumentumot egy multipart/form-data űrlap file mezőjében küldd el. Mentés előtt a Sursa ellenőrzi, hogy a fájlnév kiterjesztése, a rész deklarált Content-Type értéke és a tartalom aláírása egyezik-e:
- PDF;
- DOCX, XLSX, XLSM, PPTX: ZIP a deklarált fő dokumentumtípussal;
- ODS: ZIP mimetype bejegyzéssel;
- XLS: OLE2-dokumentum munkafüzet-adatfolyammal;
- TXT, MD, CSV, TSV, HTML, AsciiDoc, EML: nullbájtok nélküli szöveg UTF-8 vagy egybájtos kódolásban, e-mailnél az elején fejlécekkel;
- PNG, JPEG, TIFF, WebP, BMP: aláírás alapján.
Eltérés esetén a válasz 415 files.type_mismatch; a formátumlistán kívüli kiterjesztés esetén 415 cards.unsupported_format. Ha a fájl nagyobb a telepítés feltöltési korlátjánál vagy a szervezet csomagja szerinti teljes tárhelynél, a válasz 413 files.too_large. Ha a víruskeresés be van kapcsolva, fertőzött fájl esetén a válasz 422 files.infected, ha pedig a víruskereső nem érhető el, és az „elutasítás” szabály van érvényben, a válasz 503 files.scan_unavailable. Minden elutasítás file.rejected bejegyzésként kerül az auditnaplóba.
Az űrlap helyett application/json törzset is küldhetsz (CardUploadFromUpload, az 1.62.0 verziótól): a fájl egy kész többrészes feltöltés (upload_id; POST /v1/uploads a card_file rendeltetéssel), a mezők ugyanazok, mint az űrlapon, a tags pedig karakterláncok listája. A feltöltés fájlját a complete lépés már ellenőrizte (formátum, víruskeresés), a méretkorlát pedig a többrészes feltöltés korlátja az egykérésesé helyett. A feltöltés egyszer használható fel, ugyanabban a tranzakcióban, amely a kártyát létrehozza: a már felhasznált feltöltés 409 uploads.already_used, a még nem kész 409 uploads.not_ready, az elutasított 422 uploads.rejected, a más rendeltetésű 422 uploads.purpose_mismatch, a lejárt 410 uploads.expired, egy másik hívó feltöltése vagy az ismeretlen feltöltés pedig 404 uploads.not_found választ ad. Ha a kártya ellenőrzései nem sikerülnek (gyűjtemény, kategória, korlátok), a feltöltés nem használódik fel.
Hitelesítés
Küldj egy API-kulcsot az Authorization fejlécben: Authorization: Bearer <kulcs>.
Fejlécparaméterek
Idempotency-KeystringKulcs egy írási kérés biztonságos megismétléséhez: 1–255 nyomtatható ASCII-karakter; logikai műveletenként egy UUID v4 ajánlott. Ha 24 órán belül ugyanazzal a kulccsal ismétled meg a kérést, a művelet nem fut le újra: a mentett választ kapod vissza (állapot, fejlécek és törzs) az
Idempotency-Replayed: truefejléccel. Ugyanaz a kulcs más metódussal, útvonallal,Content-Typeértékkel vagy törzzsel409 api.idempotency_mismatchválaszt ad; amíg az első kérés még fut, a válasz409 api.idempotency_in_progress,Retry-After: 1fejléccel. 5xx vagy 429 válasz után a kulcs felszabadul, és a megismételt kérés újra lefuttatja a műveletet. A kulcs a szervezethez és a hívóhoz (API-kulcs, felhasználó vagy egyéni forrás forráskulcsa) kötődik.length ≥ 1, length ≤ 255
X-View-AsstringCsak
adminszerepkörű API-kulcsokhoz. A kérést a<profile>[:viewer|verifier|editor]adatprofil nevében hajtja végre, példáulemployee:viewer. A telepítési kulcs nem használhatja ezt a fejlécet (403).
Cookie-paraméterek
kb_view_asstringA „View as” mód sütije egy munkamenethez. A
POST /auth/view-asbeállítja, aDELETE /auth/view-astörli.
Kéréstörzs
multipart/form-data
filestring (application/octet-stream)kötelezőcollectionstringAlapértelmezett: "default"
tagsstringAlapértelmezett: ""
forcebooleanAlapértelmezett: false
owner_idinteger | nullverify_interval_daysinteger | nullcategorystring | nullsensitiveboolean | nullasyncbooleanAlapértelmezett: false
reviewbooleanAlapértelmezett: false
folder_idstring | nullA
collectiongyűjtemény mappája, amelybe az új kártya kerül. Más gyűjtemény mappájára400 folders.card_collection_mismatch, nem létező mappára404 folders.not_founda válasz, ha pedig a mappán nincsCOLLECTION_EDIT_CARDSjogosultság,403 authz.forbidden. Az ellenőrzés a fájl mentése előtt fut le. Egy már feltöltött fájl ismétlődése (skipped) nem kerül át a mappába.length ≤ 64
collection_idinteger | nullGyűjtemény azonosító szerint. Ha a
collectionis meg van adva, acollection_idaz irányadó. A szervezetben nem létező vagy nem látható gyűjteményre404 collections.not_founda válasz.external_idstring | nullAz új kártya
external_idazonosítója. Ha meg van adva, a kártya akkor is létrejön, ha a gyűjteményben már van ugyanilyen fájl. Ha a szervezet egy másik kártyája már használja, a kérésre409 cards.external_id_takena válasz. Kártyaexternal_idszerinti létrehozásához vagy cseréjéhez használd aPUT /v1/cards-by-external-id/{external_id}végpontot.length ≤ 512
metadatastring | nullAz új kártya
metadatamezője: JSON-objektum az űrlapmező értékeként. A szabályok aMetadataPatchszabályai.
application/json
Objektum: CardUploadFromUpload
upload_idstringkötelezőKész feltöltés (
ready)card_filerendeltetéssel; egyszer használható fel.collectionstringAlapértelmezett: "default"
collection_idinteger | nullGyűjtemény azonosító szerint. Ha a
collectionis meg van adva, acollection_idaz irányadó. A szervezetben nem létező, nem látható vagy a kulcs gyűjteményein kívül eső gyűjtemény esetén a válasz404 collections.not_found.tagsarray of stringitems ≤ 30
forcebooleanAlapértelmezett: false
owner_idinteger | nullverify_interval_daysinteger | nullcategorystring | nullsensitiveboolean | nullasyncbooleanAlapértelmezett: false
reviewbooleanAlapértelmezett: false
folder_idstring | nulllength ≤ 64
external_idstring | nullAz új kártya
external_idazonosítója, mint az űrlapmezőben. Ha meg van adva, a kártya akkor is létrejön, ha a gyűjteményben már megvan ugyanez a fájl. Ha a szervezet egy másik kártyája használja, a válasz409 cards.external_id_taken.length ≤ 512
metadataMetadataPatch
Válaszok
200`queued` (aszinkron), `skipped` (ismétlődés), `ready` vagy `error` (szinkron).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
Idempotency-ReplayedA
trueazt jelenti, hogy a válasz az ehhez azIdempotency-Keykulcshoz mentett válasz megismétlése: a művelet nem futott le újra.
application/json
400A kérés érvénytelen: egy paraméter értéke vagy az objektum állapota nem teszi lehetővé a műveletet (a `detail` egy üzenet).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
401Nem érkeztek hitelesítő adatok (sem munkamenet-süti, sem API-kulcs), vagy a kulcs nem található.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
402A szervezet elérte valamelyik csomagkorlátját (kártyák, tárhely vagy felhasználók). Az `error.details` a `kind`, a `limit` és a `used` mezőt tartalmazza.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
403A művelet nem engedélyezett: a szerepkör nem elegendő, nincs hozzáférés a gyűjteményhez vagy a kártyához, a kérés „View as” módban fut, vagy a szervezetet felfüggesztették vagy törölték (a `detail` egy objektum, `code: org_suspended | org_deleted` mezővel).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
404Az objektum nem létezik, vagy nem érhető el számodra. Az API nem erősíti meg, hogy egy korlátozott hozzáférésű objektum létezik.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
409Az objektum állapota nem teszi lehetővé a műveletet, például ismétlődés, folyamatban lévő indexelés vagy már feldolgozott feladat miatt.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
410Az objektum létezett, de már nem érhető el: a hivatkozást már felhasználták, vagy lejárt, illetve a fájlt a megőrzési idő végén törölték.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
413A kéréstörzs meghaladja a megengedett méretet.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
415A fájlformátum nem támogatott.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
422Érvényesítési hiba: a törzs vagy a paraméterek nem felelnek meg a sémának (a `detail` az érvényesítési hibák listája), vagy egy paraméter értéke kívül esik a megengedett tartományon (a `detail` egy üzenet).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
429Túl sok kérés (`api.rate_limited`), elfogyott a szervezet percre, napra vagy hónapra szóló kvótája (`api.quota_exceeded`; az `error.details` a `quota`, a `limit` és a `reset_at` mezőt tartalmazza), a szervezet elérte a korlátját, vagy a válaszszolgáltatás foglalt (`answers.engine_busy`). Várj a `Retry-After` fejlécben megadott ideig.
Válaszfejlécek
Retry-AfterEnnyi másodpercet várj, mielőtt újrapróbálod a kérést.
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
503Egy szolgáltatás, amelytől ez a kérés függ, átmenetileg nem érhető el. Próbáld újra később.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
Hibakódok
Azok a kódok, amelyeket ez a végpont hiba esetén az error.code mezőben visszaadhat, a minden kérésre érvényes általános kódokon kívül.
- 400api.metadata_invalid
- 409api.idempotency_in_progress
- 400api.idempotency_key_invalid
- 409api.idempotency_mismatch
- 401auth.not_authenticated
- 403auth.system_scope
- 403authz.forbidden
- 403cards.duplicate_restricted
- 409cards.external_id_taken
- 403cards.no_access
- 404cards.not_found
- 400cards.review_requires_async
- 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
- 404jobs.not_found
- 402limits.cards
- 403org.deleted
- 403org.suspended
- 409uploads.already_used
- 410uploads.expired
- 404uploads.not_found
- 409uploads.not_ready
- 422uploads.purpose_mismatch
- 422uploads.rejected
- 400users.not_in_org
- 422validation.failed
- 403view_as.read_only
Biztonságos újrapróbálkozás
Minden POST és PATCH kéréssel küldj Idempotency-Key fejlécet (például egy UUID-t). Ha 24 órán belül ugyanazzal a kulccsal megismétled a kérést, a mentett választ kapod vissza, és a kérés nem fut le újra.
Gyakorisági korlátok
A válaszokban ott van a RateLimit és a RateLimit-Policy fejléc, valamint a korábbi X-RateLimit-Limit, X-RateLimit-Remaining és X-RateLimit-Reset fejléc. A 429-es válasz Retry-After fejléce másodpercben adja meg a várakozást: várj, majd próbáld újra.