POST/v1/push/sources/{source_id}/documents
Siųsti dokumentą (sukurti arba pakeisti)
push_upsert_document
Sukuria arba pakeičia dokumentą pagal external_id. Su JSON turinį siųskite lauke content (content_type: html, markdown arba text, iki 5 MB). Su multipart/form-data failą siųskite dalyje file (iki 100 MB, tie patys formatai kaip įkeliant į žinių bazę), o metaduomenis – dalyje document (to paties pavidalo JSON be content) arba atskirais laukais external_id, title, url, path, tags. sync_number – atidarytos sinchronizacijos numeris. Be jo dokumentas įrašomas iš karto (tiesioginis sukūrimas arba pakeitimas), bet kita visiška sinchronizacija jį ištrina, nebent jis išsiunčiamas dar kartą. Pakartotinai išsiuntus tą patį dokumentą, grąžinama unchanged (idempotentiška). Dokumentas tampa kortele per kitą šaltinio sinchronizaciją (per minutę; atidarytoje sinchronizacijoje – po jos uždarymo). Nuo 1.62.0: kortelės laukai (metadata, category, verifiers, verify_interval_days), failas iš įkėlimo dalimis (upload_id) ir priedai (attachments); atsake pateikiami status ir card_id (dokumento rezultatas). Šaltinio dokumentų limitas priklauso nuo plano.
Autentifikavimas
Siųskite API raktą antraštėje Authorization: Authorization: Bearer <raktas>.
Kelio parametrai
source_idintegerprivalomas
Užklausos parametrai
sync_numberinteger
Antraštės parametrai
Idempotency-KeystringRaktas saugiam rašymo operacijos pakartojimui: nuo 1 iki 255 spausdinamų ASCII simbolių; rekomenduojamas atskiras UUID v4 kiekvienai loginei operacijai. Pakartojus užklausą su tuo pačiu raktu per 24 valandas, operacija iš naujo nevykdoma: grąžinamas išsaugotas atsakas (būsena, antraštės ir turinys) su antrašte
Idempotency-Replayed: true. Tas pats raktas su kitu metodu, keliu,Content-Typear turiniu grąžina409 api.idempotency_mismatch; kol pirmoji užklausa dar vykdoma –409 api.idempotency_in_progresssuRetry-After: 1. Po 5xx ar 429 atsako raktas atlaisvinamas, ir pakartojimas operaciją vykdo iš naujo. Raktas galioja organizacijos ir iškvietėjo (API rakto, naudotojo arba pasirinktinio šaltinio rakto) ribose.length ≥ 1, length ≤ 255
Užklausos turinys
application/json
external_idstringprivalomasJūsų pastovus dokumento ID. Išsiuntus tą patį ID, dokumentas pakeičiamas.
length ≤ 512
titlestringprivalomaslength ≤ 500
urlstringNuoroda į dokumentą jūsų sistemoje (http arba https).
contentstringTurinys (iki 5 MB).
content_typestringLeidžiamos reikšmės:
htmlmarkdowntextNumatytoji reikšmė: "html"
patharray of string | stringDokumento aplankai: pavadinimų masyvas arba „/“ atskirta eilutė (iki 10 lygių).
permissionsPushPermissionstagsarray of stringitems ≤ 50
author_emailstringAutorius. Tampa kortelės atsakingu asmeniu, jei tai Sursos naudotojas.
updated_atstring (date-time)Pakeitimo laikas jūsų sistemoje (dokumento versijos dalis).
metadataMetadataPatchDokumento kortelės
metadata(nuo 1.62.0): objektas pakeičia ankstesnį kortelės objektą,{}pašalina visas poras; be laukometadatakortelės metaduomenys nesikeičia.categorystringKortelės kategorija: organizacijos kategorijos raktas (
GET /v1/categories), nuo 1.62.0.length ≤ 64
verifiersPushVerifiersverify_interval_daysintegerKortelės tikrinimo intervalas dienomis (nuo 1.62.0); be jo – šaltinio intervalas.
≥ 1, ≤ 3650
upload_idstringDokumento failas iš įkėlimo dalimis (
upl_…, nuo 1.62.0) vietojcontent. Įkėlimas naudojamas vieną kartą; pakartotinai išsiuntus tą patį dokumentą su tuo pačiuupload_id, jis neišnaudojamas. Kol įkėlimas dalimis diegime nepasiekiamas, dokumentas atmetamas su priežastimifile_rejected.length ≤ 64
attachmentsarray of stringDokumento priedai kaip įkėlimai dalimis (
upl_…, nuo 1.62.0): kiekvienas tampa atskira šaltinio kortele su tuo pačiu aplanku, leidimais ir kortelės laukais. Priedas, kurio nėra naujoje dokumento versijoje, archyvuojamas.items ≤ 20
multipart/form-data
filestring (binary)privalomasdocumentstringDokumento JSON metaduomenys (
PushDocumentlaukai becontent).external_idstringtitlestringurlstringpathstringtagsstring
Atsakai
200Įrašyta
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
Idempotency-Replayedtrue– atsakas pakartotas iš šiamIdempotency-Keyišsaugoto atsako: operacija iš naujo nevykdyta.
application/json
external_idstringprivalomasresultstringprivalomasskipped–atomicpartijos dokumentas nepritaikytas, nes atmestas kitas dokumentas (nuo 1.62.0).Leidžiamos reikšmės:
createdupdatedunchangeddeletednot_founderrorskippedversionstringDokumento versija (turinio ir metaduomenų SHA-256).
errorstringPriežastis (kai
result=error).statusPushDocumentStatusValuecard_idstring | nullDokumento kortelė, jei ji jau įrašyta (nuo 1.62.0).
reasonPushDocumentReason
400Užklausa netinkama: parametro reikšmė arba objekto būsena neleidžia atlikti veiksmo (`detail` – pranešimas).
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
401Prisijungimo duomenys neišsiųsti (nei sesijos slapukas, nei API raktas) arba raktas nerastas.
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
403Veiksmas neleidžiamas: vaidmuo nesuteikia reikiamų teisių, nėra prieigos prie rinkinio ar kortelės, užklausa vykdoma režimu „View as“ arba organizacijos veikla sustabdyta ar organizacija ištrinta (`detail` – objektas su `code: org_suspended | org_deleted`).
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
404Objekto nėra arba jis jums nepasiekiamas. API nepatvirtina, kad ribotos prieigos objektas egzistuoja.
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
409Objekto būsena neleidžia atlikti veiksmo, pvz., dublikatas, vyksta indeksavimas arba darbas jau apdorotas.
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
413Užklausos turinys viršija leistiną dydį.
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
415Failo formatas nepalaikomas.
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
422Validavimo klaida: turinys ar parametrai neatitinka schemos (`detail` – validavimo klaidų sąrašas) arba parametro reikšmė nepatenka į leistiną intervalą (`detail` – pranešimas).
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
429Per daug užklausų (`api.rate_limited`), išnaudota organizacijos minutės, dienos ar mėnesio kvota (`api.quota_exceeded`; `error.details` pateikia `quota`, `limit` ir `reset_at`), pasiektas organizacijos limitas arba atsakymų paslauga užimta (`answers.engine_busy`). Palaukite tiek, kiek nurodyta antraštėje `Retry-After`.
Atsako antraštės
Retry-AfterKiek sekundžių palaukti prieš kartojant užklausą.
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
Klaidų kodai
Kodai, kuriuos ši operacija gali grąžinti lauke error.code, be bendrųjų kodų, galimų bet kuriai užklausai.
- 409api.idempotency_in_progress
- 400api.idempotency_key_invalid
- 409api.idempotency_mismatch
- 401sources.push_key_invalid
- 403sources.feature_disabled
- 400sources.push_document_invalid
- 404sources.push_sync_not_found
- 409sources.push_sync_closed
- 409sources.push_too_many_documents
- 404sources.not_found
- 403api_keys.scope
- 403org.suspended
- 403org.deleted
- 400api.metadata_invalid
- 413api.payload_too_large
- 429api.rate_limited
Saugūs pakartojimai
Su kiekviena POST ir PATCH užklausa siųskite antraštę Idempotency-Key (pavyzdžiui, UUID). Pakartojus užklausą su tuo pačiu raktu per 24 valandas, grąžinamas išsaugotas atsakas, o užklausa iš naujo nevykdoma.
Užklausų dažnio limitai
Atsakuose yra antraštės RateLimit ir RateLimit-Policy bei ankstesnės X-RateLimit-Limit, X-RateLimit-Remaining ir X-RateLimit-Reset. Atsake 429 yra antraštė Retry-After sekundėmis: palaukite ir pakartokite užklausą.