Skip to content

Chyby a limity

Tvar chyby

Obe API používajú rovnaký tvar chyby na úrovni požiadavky:

json
{ "error": "invalid_key", "message": "Unknown or malformed public key." }

error je stabilný kód určený na programové vetvenie. message je anglický text pre človeka; jeho znenie sa môže zmeniť, preto naň neviažte logiku aplikácie.

kódHTTPčo s tým
missing_key401v query chýba parameter key (Search API)
invalid_key403neznámy alebo nesprávne sformovaný verejný kľúč
invalid_credentials401chýbajúca alebo neplatná hlavička Authorization (Catalog API)
insecure_transport400požiadavka so secret kľúčom prišla cez HTTP (Catalog API); použite HTTPS
invalid_parameter422nepodporovaná hodnota parametra (sort, include, per_page, limit, cena) alebo stránka za hranicou 200 výsledkov
invalid_payload400telo nie je platný JSON, nie je zoznamom produktov alebo neobsahuje ids
batch_too_large400dávka obsahuje viac než 100 produktov
catalog_mode_conflict409e-shop je v režime feed, zápisy sú zakázané
generation_incomplete, generation_committed409commit syncu neprešiel poistkou
not_found404neznámy identifikátor syncu
rate_limited429prekročený limit; riaďte sa hlavičkou Retry-After

Chyby jednotlivých produktov

Tieto kódy nevracia požiadavka ako celok, ale jednotlivá položka v poli results pri PUT, PATCH a DELETE:

kódpríčina
invalid_idid chýba, je prázdne alebo presahuje 255 znakov
missing_name, missing_urlpri PUT chýba povinné pole
invalid_name, invalid_url, invalid_brand, invalid_image, invalid_descriptionpole nie je neprázdny reťazec
invalid_price, invalid_list_pricecena nie je JSON number, napríklad prišla ako reťazec
invalid_in_stockin_stock nie je boolean
invalid_paramsparams nie je mapou názov → skalárna hodnota alebo je názov prázdny či príliš dlhý
invalid_categoryprázdna cesta kategórie
not_foundPATCH alebo DELETE smeroval na neexistujúci produkt

Rate limity

endpointlimit
GET /suggest1800 / min
GET /search600 / min
/catalog/*120 / min

Limit sa počíta na verejný kľúč, pri zápisoch na secret kľúč, takže jeden integrátor neovplyvní ostatných. Väčšia dávka spotrebuje viac: k jednému tokenu sa pripočíta ďalší za každých 256 KB tela požiadavky.

Pri prekročení limitu vrátime 429 s hlavičkami Retry-After, X-RateLimit-Limit a X-RateLimit-Remaining.

Odporúčaná stratégia opakovania

  • 429 — počkajte podľa hlavičky Retry-After a požiadavku zopakujte.
  • 5xx — zopakujte s exponenciálnym backoffom.
  • ostatné 4xx — opakovanie nepomôže, požiadavku treba opraviť.

Opakovanie zápisovej dávky je bezpečné, pretože zápis prebieha podľa id.

Dokumentácia Metty