POST/v1/push/sources/{source_id}/documents/batch
Nosūtīt dokumentu partiju
push_upsert_documents
Vienā pieprasījumā nosūta līdz 500 JSON dokumentiem (ne vairāk kā 50 MiB pieprasījumā; kopš 1.62.0, iepriekš 100 un 20 MB) un līdz 1000 dzēšanām pēc external_id (deletes, kopš 1.62.0). Katrs dokuments ir tāds pats kā push_upsert_document; faili tiek sūtīti tikai kā augšupielādes pa daļām (upload_id, attachments). Rezultāts tiek norādīts katram dokumentam: created, updated, unchanged, deleted, not_found vai error ar iemeslu, un kopš 1.62.0 arī dokumenta rezultāts: status (pending, processing, indexed, failed, removed), card_id un neitrāls reason kods. Bez atomic kļūda vienā dokumentā neatceļ pārējos. Ar atomic: true partija tiek piemērota pilnībā vai nemaz: pirmais noraidījums atgriež 422 sources.push_batch_rejected ar katra dokumenta rezultātu laukā error.details.results (dokumenti bez kļūdām ir skipped). Partijas atkārtojums ar to pašu Idempotency-Key atgriež iepriekšējo atbildi; atkārtojums bez atslēgas neizveido otras kartītes, jo tas pats dokuments ir unchanged.
Autentifikācija
Nosūtiet API atslēgu galvenē Authorization: Authorization: Bearer <atslēga>.
Ceļa parametri
source_idintegerobligāts
Galvenes parametri
Idempotency-KeystringAtslēga drošam rakstīšanas darbības atkārtojumam: 1–255 drukājamas ASCII rakstzīmes; ieteicams viens UUID v4 katrai loģiskajai operācijai. Atkārtojums ar to pašu atslēgu 24 stundu laikā operāciju neizpilda vēlreiz: tiek atgriezta saglabātā atbilde (statuss, galvenes un saturs) ar galveni
Idempotency-Replayed: true. Tā pati atslēga ar citu metodi, ceļu,Content-Typevai saturu atgriež409 api.idempotency_mismatch; kamēr pirmais pieprasījums vēl izpildās –409 api.idempotency_in_progressarRetry-After: 1. Pēc atbildes 5xx vai 429 atslēga tiek atbrīvota, un atkārtojums izpilda operāciju vēlreiz. Atslēga ir piesaistīta organizācijai un izsaucējam (API atslēgai, lietotājam vai pielāgotā avota atslēgai).length ≥ 1, length ≤ 255
Pieprasījuma saturs
application/json
sync_numberintegerAtvērtās sinhronizācijas numurs. Bez tā dokumenti tiek ierakstīti tieši – izveidoti vai aizstāti.
documentsarray of PushDocumentitems ≤ 500
deletesarray of stringDzēšamo dokumentu
external_id(kopš 1.62.0). Sinhronizācijas ietvaros dzēšana parādās sinhronizācijas dokumentu rezultātos. Viensexternal_idnevar būt gandocuments, gandeletes.items ≤ 1000
atomicbooleanViss vai nekas (kopš 1.62.0): ja kāds dokuments tiek noraidīts, atbilde ir
422 sources.push_batch_rejected, un nekas netiek ierakstīts.Noklusējums: false
Atbildes
200Rezultāti pa dokumentiem
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
Idempotency-Replayedtruenozīmē, ka atbilde ir atkārtota no šaiIdempotency-Keysaglabātās atbildes: operācija netika izpildīta vēlreiz.
application/json
Objekts: PushDocumentBatchResult
Rezultāti partijas secībā: vispirms dokumenti, tad dzēšanas.
400Pieprasījums nav derīgs: parametra vērtība vai objekta stāvoklis neļauj veikt darbību (`detail` ir ziņojums).
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
401Nav nosūtīti akreditācijas dati (ne sesijas sīkdatne, ne API atslēga), vai atslēga nav atrasta.
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
403Darbība nav atļauta: loma nav pietiekama, nav piekļuves kolekcijai vai kartītei, pieprasījums izpildās režīmā „View as“ vai organizācija ir apturēta vai dzēsta (`detail` ir objekts ar `code: org_suspended | org_deleted`).
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
404Objekts neeksistē vai jums nav pieejams. API neapstiprina, ka ierobežotas piekļuves objekts eksistē.
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
409Objekta stāvoklis neļauj veikt darbību, piemēram, dublikāts, notiekoša indeksēšana vai jau apstrādāts darbs.
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
413Pieprasījuma saturs pārsniedz atļauto izmēru.
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
422Validācijas kļūda: saturs vai parametri neatbilst shēmai (`detail` ir validācijas kļūdu saraksts), vai parametra vērtība ir ārpus pieļaujamā diapazona (`detail` ir ziņojums).
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
429Pārāk daudz pieprasījumu (`api.rate_limited`), organizācijas minūtes, dienas vai mēneša kvota ir izlietota (`api.quota_exceeded`; `error.details` satur `quota`, `limit` un `reset_at`), sasniegts organizācijas limits vai atbilžu pakalpojums ir aizņemts (`answers.engine_busy`). Pagaidiet galvenē `Retry-After` norādīto laiku.
Atbildes galvenes
Retry-AfterSekunžu skaits, kas jāpagaida, pirms atkārtojat pieprasījumu.
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
Kļūdu kodi
Kodi, ko šī operācija var atgriezt laukā error.code papildus vispārīgajiem kodiem, kas iespējami jebkuram pieprasījumam.
- 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
- 422sources.push_batch_rejected
- 404sources.not_found
- 403api_keys.scope
- 403org.suspended
- 403org.deleted
- 413api.payload_too_large
- 429api.rate_limited
Droši atkārtojumi
Ar katru POST un PATCH pieprasījumu nosūtiet galveni Idempotency-Key (piemēram, UUID). Atkārtots pieprasījums ar to pašu atslēgu 24 stundu laikā atgriež saglabāto atbildi, nevis izpilda pieprasījumu vēlreiz.
Pieprasījumu biežuma limiti
Atbildēs ir galvenes RateLimit un RateLimit-Policy, kā arī agrākās X-RateLimit-Limit, X-RateLimit-Remaining un X-RateLimit-Reset. Atbildē 429 ir galvene Retry-After sekundēs: nogaidiet un atkārtojiet pieprasījumu.