Přeskočit na obsah

Rate limity

Frontmail omezuje, jak rychle lze posílat požadavky, aby chránil vaše kredity před zneužitím a vaše poskytovatele před nárazovou zátěží. Limity se počítají v pevných časových oknech (u limitu tarifu a klíče jednosekundových, u limitu na IP adresu v okně, které si nastavíte).

Na organizaci (podle tarifu)

Sekce “Na organizaci (podle tarifu)”

Všechny požadavky organizace dohromady – s public i private key – sdílejí limit, který závisí na tarifu:

TarifPožadavků za sekundu (na organizaci i na klíč)Testovací odeslání / den
Free220
Starter520
Pro2020
Business 50k5020
Business 100k5020
Business 200k5020

Hromadný požadavek se do rate limitu počítá jako jeden požadavek, ale každá zpráva v něm spotřebuje kredit – pro hromadné odesílání ze serverů používejte /v1/send-batch.

Požadavky s public key jsou navíc omezené podle IP adresy klienta, aby jeden návštěvník nebo bot nemohl vyčerpat limit celé organizace. Výchozí hodnota je 10 požadavků za 60 sekund na IP adresu. Vlastník a admini ji mění v Zabezpečení → Limit požadavků na IP adresu dvěma poli, Požadavků a Za (sekund) – stránka to shrne větou Nejvýš N požadavků za M sekund z jedné IP adresy. Požadavky s private key se podle IP adresy neomezují. Klienty s IPv6 počítáme po sítích /64 (blok, který obvykle dostane jedna domácí nebo serverová přípojka), takže botovi nepomůže střídat adresy uvnitř něj. Adresu klienta bereme z CDN Frontmailu; požadavky, které se ji snaží obejít, odmítáme.

Požadavky se počítají i po jednotlivých klíčích, se stejným limitem za sekundu jako u tarifu.

U požadavků s public key se do limitů tarifu a klíče (i do detekce anomálií) počítají jen požadavky, které prošly vyhledáním šablony a – pokud ji šablona vyžaduje – kontrolou CAPTCHA. Záplavu neplatných požadavků (neexistující template_id, chybějící token Turnstile) odmítneme, aniž by spotřebovala limit, který potřebují vaši skuteční návštěvníci; na takové požadavky platí jen velkorysá pojistka proti záplavě (nejméně 50 požadavků za sekundu na organizaci). Každému serveru nebo úloze dejte vlastní private key: když se některý z nich začne chovat podivně, uvidíte to v Zabezpečení → Privátní klíče (Naposledy použit) a můžete zneplatnit jen ten jeden klíč.

Když narazíte na limit

Sekce “Když narazíte na limit”

API odpoví 429 rate_limited s hlavičkou Retry-After v sekundách. SDK automaticky počkají a požadavek zopakují (pokud je Retry-After nejvýše 60 sekund). Požadavky odmítnuté kvůli rate limitu nespotřebují kredity.

HTTP/1.1 429 Too Many Requests
Retry-After: 2
{ "error": { "code": "rate_limited", "message": "Too many requests.", "docs_url": "https://docs.frontmail.dev/reference/errors/#rate-limited" } }

Vlastní limity má i váš e-mailový poskytovatel (například Amazon SES v režimu sandbox povoluje 1 zprávu za sekundu). Odesílač je dodržuje tím, že doručování rozloží v čase – zprávy se tak zpozdí, ale vaše požadavky se neodmítnou.

  • Detekce anomálií zpomalí náhlé, neobvyklé špičky požadavků s public key na jeden požadavek za dvě sekundy.
  • Nahrávání přes předpodepsané URL s public key (POST /v1/uploads) má denní limit objemu na organizaci (200 × limit příloh vašeho tarifu).
  • Volba limitRate v SDK omezí jeden konkrétní prohlížeč (viz Ochrana proti botům).
  • Edge vrstva (CloudFront + AWS WAF) zablokuje záplavy požadavků dřív, než se dostanou k API.
  • Dashboard má vlastní limity na uživatele, např. 10 testovacích odeslání za minutu navíc k dennímu limitu testovacích odeslání z tabulky výše.