Rate Limiting
Aby nedošlo k přílišnému zahlcení API požadavky, ať už neúmyslně špatným návrhem anebo úmyslně, je používání API omezeno.
Omezení přihlášení
Je omezený počet pokusů o přihlášení, tzn. že můžete udělat pouze 5 špatných přihlášení za 1 hodinu na jednu IP adresu. Potom API zablokuje přístup a vrací stav 403. Používá se Floating Time Window.
Omezení velikosti požadavku
Je omezena velikost PUT požadavku, tzn. že v JSONu může být maximálně 100 položek. Pokud je tento počet překročen, neprovede se žádná operace (API veškerá data ignoruje) a vrací stav 413. Další informace najdete v popisech jednotlivých endpointů.
Zpoplatnění API
Zpoplatnění API a omezení počtu požadavků se nevztahuje na ověřené doplňky vytvářené agenturou, jejichž účelem je nabídnout určitou službu všem klientům Upgates.
Omezení počtu požadavků
Omezení probíhá na základě dvou limitů (Základní a Individuální), které se sčítají.
Základní limit
Limit podle vybraného tarifu (viz ceník).
| Tarif | Hodinový limit | Denni limit | Celkem* |
|---|---|---|---|
| Bronze | 10 | 100 | 340 |
| Silver | 15 | 300 | 660 |
| Gold | 50 | 600 | 1800 |
| Platinum | 100 | 1500 | 3900 |
| Exclusive | 100 | 1500 | 3900 (+ možnosti individuálního rozšíření) |
*Celkem = hodinový limit * 24 + denní limit
**Stahování počtu požadavků probíhá vždy nejdříve z hodinového limitu a teprve poté z denního limitu. Hodinový limit se nuluje vždy počátkem nové hodiny.
Individuální limit
Tento individuální limit si může klient určit sám (v administraci Doplňky / API). Je tvořen samostatnými "balíčky", které jsou tvořeny po 1000 požadavcích. Těchto 1000 požadavků je rozděleno mezi denní a hodinový limit.
Celkem tedy 600 (25 za hodinu x 24 hodin) + 400 den = 1000
Maximální počet balíčků, který lze dokoupit je 60. To odpovídá 60 000 požadavků za den. Větší limit je možný pouze na tarifu Exclusive, pro přechod na něj kontaktujte technickou podporu.
Uplatnění limitu
Pro omezení se používají pevné časové intervaly. Hodinou je myšlen interval vždy od první do poslední vteřiny aktuální hodiny, stejně tak dnem je myšlen interval od první do poslední vteřiny aktuálního dne.
Každou hodinu je k dispozici počet požadavků ve výši hodinového limitu. Požadavky nad tento limit se odečtou z denního limitu. Pokud je vyčerpán denní limit, bude k dispozici každou hodinu pouze hodinový limit.
Po překročení maximálního počtu požadavků vrací API stav 429.
Aby bylo možné limity poznat automaticky ve vaší aplikaci, vrací API tyto hlavičky:
X-Rate-Limit-Hour- aktuálně nastavený hodinový limitX-Rate-Limit-Day- aktuálně nastavený denní limitX-Rate-Limit-Hour-Remaining- zbývající počet požadavků v hodinovém limituX-Rate-Limit-Day-Remaining- zbývající počet požadavků v denním limituX-Rate-Limit-Total-Remaining- celkový zbývající počet požadavkůRetry-After- datum a čas kdy je možné udělat další požadavek který už nebude omezen. Časový údaj je v GMT. Hlavička je pouze v odpovědi se stavem429.
Souběžné požadavky
Na API je možno provádět pouze 3 souběžné požadavky. Pokud je tento počet překročen, API vrací stav 429. Větší limit je možný pouze na tarifu Exclusive, pro přechod na něj kontaktujte technickou podporu.
POZOR
Souběžné požadavky se počítají na skupinu API přístupu, nikoliv na jeden API přístup. Proto pokud napojujete doplňkovou funkci kterou využívá více klientů, zvažte napojení přes náš systém doplňků. Přes doplňky dostane váš API přístup vlastní skupinu a nebudou ho omezovat ostatní přístupy.