Limity a odolnost
Rate limity (Cloudflare a aplikace), hlavičky RateLimit-*, 429 a jak se chovat slušně.
Tři vrstvy ochrany
Veřejné čtení (API v2, MCP, fact pages) je bez přihlášení. Proti přetížení chrání tři vrstvy:
| Vrstva | Rozsah | Limit | Odpověď při překročení |
|---|---|---|---|
| Cloudflare (edge) | jen /mcp a /api/v2/search | 300 požadavků / 10 s / IP | 429 jako HTML stránka Cloudflare (bez problem+json) |
| Aplikace – anonym | /mcp a /api/v2/search | 600 požadavků / min / IP | 429 application/problem+json, Retry-After |
| Aplikace – partnerský klíč | /mcp a /api/v2/search | 6 000 požadavků / min / klíč | 429 application/problem+json, Retry-After |
- Ostatní cesty (ostatní API v2,
/status, fact pages, docs, OpenAPI) aplikační limit nemají;OPTIONS(CORS preflight) se nepočítá. Okno je klouzavé (1 min). - Limitované cesty vracejí
Cache-Control: private, no-storea na každé odpovědi (i 200)RateLimit-Policy(např.600;w=60) aRateLimit-Remaining. Při 429 jeRateLimit-Remaining: 0,Retry-Afterv sekundách a tělo problem+json (retryAfter,limit,windowSeconds). - IP klienta se bere z
CF-Connecting-IP; partnerský klíč se posílá jakoAuthorization: Bearer …neboX-Hub-Key: …. Neplatný klíč nikdy nevrací 401 – počítá se jako anonym.
Doporučení pro odběratele
- Cachujte podle
Cache-Controla posílejteIf-None-Matchs poslednímETag– odpověď 304 je levná. /statuspollujte nejvýš 1× za 30 s, master data 1× za 5 min;/api/v2/searchnevolejte na každý stisk klávesy (debounce).- Po 429 počkejte
Retry-After, neopakujte okamžitě. UvádějteUser-Agents kontaktem. - Vyšší limit nebo partnerský klíč: přes kontakt provozovatele na www.skiresort.cz.