The Outlier Lab

Rate Limiting and Throttling

Capping how fast any entity can hit an endpoint (logins, OTP sends, card adds, promo claims, balance checks) so enumeration and volume attacks become slow and expensive.

What it is

Rate limiting is the cheapest control in this vault and one of the most often misconfigured. Teams often treat it as an infrastructure concern (protect the servers). For fraud, the questions are which entity you're counting, on which endpoint, and what happens over the limit.

This note covers request-level limits on endpoints. Value-level limits on how much money can move are in Velocity and Exposure Limits. The two are complementary: rate limits stop discovery (finding a working card, code or password), and exposure limits cap what a discovery is worth.

What it stops (and what it doesn't)

EndpointCount byWhy it matters
LoginPer account, per credential pair, per device, per IP/subnet/ASN, global failure ratioStuffing and spraying; account lockout abuse
OTP send / verifyPer account, per phone number, per device; verify attempts per codeOTP guessing, SMS traffic pumping, push fatigue
Password reset / recoveryPer account, per contact point, per deviceRecovery flooding, enumeration of registered emails
Card add / checkout authPer account, per device, per BIN range, per merchant sessionCard Testing
Promo / coupon validationPer account, per device, per code prefixCode enumeration
Gift card balance checkPer device, per IP, per card-number rangeBalance enumeration
Receipt / claim submissionPer account, per device, per merchant/storeScripted submission waves
Payee / bank-account validation lookupsPer account, per deviceUsing your own validation APIs as an oracle
Username / email existence checksPer device, per IPAccount enumeration before stuffing

It doesn't stop:

Design considerations

  • Count several entities. Per-IP limits alone are easily defeated by IP rotation. Key limits on device identifiers and accounts as well as IPs, enrich IPs with IP Reputation and Proxy Detection, and feed over-limit events into Velocity Signals so downstream models see them. Layer per-account, per-device, per-credential, per-instrument and per-target (for example, per BIN range) limits, plus global failure-ratio monitors that catch distributed attacks no single-entity limit sees.
  • Don't lock out the real customer. Hard account lockout after N failed passwords lets anyone lock out any user. Prefer exponential back-off and step-up challenges over lockout, and don't count failures from clearly unrelated devices against the owner's own device. NIST SP 800-63B-4 caps consecutive failed attempts on one authenticator at 100 before it must be disabled, and recommends that prior failures be disregarded after a successful authentication.
  • Respond in graded steps: slow down (tarpit), then challenge, then soft-fail, then block. A silent soft-fail (a generic response with no real validation) denies attackers a clean signal.
  • Return uniform responses. Make sure the response to an over-limit request doesn't reveal whether the underlying credential, card or code was valid.
  • Limit at the business layer as well as the edge. Edge and CDN limits see IPs, while the application sees accounts, cards and codes, so you need both.
  • Watch for SMS and voice traffic pumping. OTP endpoints that send messages to attacker-chosen numbers can be abused for telecom revenue fraud. Limit per destination number and per destination prefix.
  • Treat partner and aggregator traffic separately. Legitimate aggregators may need higher limits with their own credentials and monitoring.

Implementation path

StageWhat it looks likePrerequisites
CrawlPer-IP and per-account limits on login, OTP and reset; back-off on failures; per-account limits on card add and promo validationAPI gateway or WAF; endpoint inventory
WalkMulti-key limits (device, credential, instrument, BIN range); global failure-ratio alerts per endpoint; graded responses; uniform error behavior; limits on all value-relevant endpoints including mobile APIsDevice identifiers; real-time counters store; endpoint dashboards
RunAdaptive limits that tighten under attack automatically; per-segment baselines; limit outcomes feed bot and transaction models; tabletop drillsStreaming counters; Bot Management and CAPTCHA integration; incident runbooks

Customer friction and trade-offs

  • Well-tuned limits are invisible to nearly all customers. Friction shows up at the edges: shared IPs (offices, universities, carrier NAT), families on one device, and power users of validation flows (for example, someone adding several cards at once).
  • Aggressive lockout produces support calls and gives attackers a denial-of-service lever against specific customers.
  • Overly loose limits are invisible until card-network fines or a drained promo budget make them visible.

Measuring effectiveness

  • Per-endpoint failure ratio and absolute failure volume, with alerting on deviations from baseline.
  • Over-limit events per day by key type. Watch for a shift toward distributed patterns, which suggests the attackers have adapted.
  • Card-testing outcomes: authorization decline ratios, small-amount auths, network program alerts.
  • Customer impact: lockout-related support contacts; genuine customers hitting limits, which can be estimated from those who later succeed from the same device.
  • Time to detect a distributed attack (global-ratio alert) versus time to loss.

Common failure modes

  • IP-only limits.
  • Unthrottled endpoints: OTP send/verify, balance-check or validation endpoints with no limit at all.
  • Inconsistent coverage: limits on web but not on mobile or partner APIs.
  • Lockout-as-defense, which harms real customers.
  • Over-informative responses that reveal whether a credential, card or code is valid.
  • Per-node counters: limits that reset on deploy or are counted per server instead of globally.

Regulatory and policy notes

  • NIST SP 800-63B-4 §3.2.2:
    • Verifiers must limit consecutive failed attempts on an authenticator to no more than 100.
    • Disabled authenticators must be rebound before use.
    • Bot detection, increasing delays and risk signals are optional supplements.
  • Card networks monitor merchants for excessive authorization attempts and card-testing patterns. Rate limits on card-add and checkout are a first-line way to stay out of those programs (see Card Network Dispute Rules).
  • Telecom. SMS traffic pumping costs you money and can breach messaging-provider terms of service.

Mechanisms addressed

Sources and further reading