Пређите на садржај
Sursa Developers

POST/v1/push/sources/{source_id}/documents/batch

Слање пакета докумената

push_upsert_documents

Шаље до 500 JSON докумената (највише 50 MiB по захтеву; од верзије 1.62.0, раније 100 и 20 MB) и до 1000 брисања по external_id (deletes, од верзије 1.62.0) у једном захтеву. Сваки документ је као у push_upsert_document; фајлови се шаљу само као отпремања у деловима (upload_id, attachments). Резултат се наводи за сваки документ: created, updated, unchanged, deleted, not_found или error са разлогом, а од верзије 1.62.0 и резултат документа: status (pending, processing, indexed, failed, removed), card_id и неутрални код reason. Без atomic грешка у једном документу не отказује остале. Са atomic: true пакет се примењује у целини или се не примењује уопште: прво одбијање враћа 422 sources.push_batch_rejected са резултатом сваког документа у error.details.results (документи без грешака су skipped). Понављање пакета са истим Idempotency-Key враћа претходни одговор; понављање без кључа не креира друге картице, јер је исти документ unchanged.

Аутентификација

Пошаљите API кључ у заглављу Authorization: Authorization: Bearer <кључ>.

Параметри путање

  • source_idintegerобавезно

Параметри заглавља

  • Idempotency-Keystring

    Кључ за безбедан поновни покушај уписа: од 1 до 255 штампаних ASCII знакова; препоручује се UUID v4 за сваку логичку операцију. Поновни покушај са истим кључем у року од 24 сата не извршава операцију поново: враћа сачувани одговор (статус, заглавља и тело) са заглављем Idempotency-Replayed: true. Исти кључ са другим методом, путањом, Content-Type или телом враћа 409 api.idempotency_mismatch; док се први захтев још извршава – 409 api.idempotency_in_progress са Retry-After: 1. После одговора 5xx или 429 кључ се ослобађа и поновни покушај поново извршава операцију. Кључ важи у оквиру организације и позиваоца (API кључ, корисник или кључ сопственог извора).

    length ≥ 1, length ≤ 255

Тело захтева

application/json

Објекат: PushDocumentBatch

  • sync_numberinteger

    Број отворене синхронизације. Без њега се документи уписују као директно креирање или замена.

  • documentsarray of PushDocument

    items ≤ 500

  • deletesarray of string

    external_id докумената за брисање (од верзије 1.62.0). Унутар синхронизације брисање се појављује у резултатима докумената синхронизације. Исти external_id не може бити и у documents и у deletes.

    items ≤ 1000

  • atomicboolean

    Све или ништа (од верзије 1.62.0): ако је било који документ одбијен, одговор је 422 sources.push_batch_rejected и ништа се не уписује.

    Подразумевано: false

Одговори

200Резултати по документима

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

  • Idempotency-Replayed

    true значи да је одговор поново послат из одговора сачуваног за овај Idempotency-Key: операција није поново извршена.

application/json

Објекат: PushDocumentBatchResult

  • resultsarray of PushDocumentResultобавезно

    Резултати редоследом из пакета: прво документи, затим брисања.

400Захтев није исправан: вредност параметра или стање објекта не дозвољава радњу (`detail` је порука).

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

401Акредитиви нису послати (ни колачић сесије ни API кључ) или кључ није пронађен.

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

403Радња није дозвољена: улога није довољна, нема приступа колекцији или картици, захтев се извршава у режиму „View as“ или је организација суспендована или обрисана (`detail` је објекат са `code: org_suspended | org_deleted`).

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

404Објекат не постоји или вам није доступан. API не потврђује да објекат са ограниченим приступом постоји.

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

409Стање објекта не дозвољава радњу, на пример дупликат, индексирање у току или посао који је већ обрађен.

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

413Тело захтева прелази дозвољену величину.

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

422Грешка валидације: тело или параметри не одговарају шеми (`detail` је листа грешака валидације) или је вредност параметра ван дозвољеног распона (`detail` је порука).

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

429Превише захтева (`api.rate_limited`), квота организације за минут, дан или месец је потрошена (`api.quota_exceeded`; `error.details` садржи `quota`, `limit` и `reset_at`), достигнуто је ограничење организације или је сервис за одговоре заузет (`answers.engine_busy`). Сачекајте време наведено у заглављу `Retry-After`.

Заглавља одговора

  • Retry-After

    Број секунди које треба сачекати пре поновног покушаја захтева.

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

Кодови грешака

Кодови које ова операција може да врати у error.code, поред општих кодова сваког захтева.

Безбедни поновни покушаји

Уз сваки POST и PATCH захтев пошаљите заглавље Idempotency-Key (на пример UUID). Поновни покушај са истим кључем у року од 24 сата враћа сачувани одговор уместо да поново изврши захтев.

Ограничења учесталости

Одговори садрже заглавља RateLimit и RateLimit-Policy, као и старија X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset. Одговор 429 садржи заглавље Retry-After у секундама: сачекајте и поновите захтев.

← sources · API референца