Distributed rate limiting in one atomic call.

Detent is a rate limiter as a service. One HTTP request, one correct decision — no race conditions, no taking your app hostage. Hosted in the EU.

One check = one call.
curl -X POST https://api.detent.fr/v1/limit \
  -H "Authorization: Bearer dt_live_…" \
  -d '{"namespace":"checkout","key":"user_42","algorithm":"sliding_window","limit":100,"window_ms":60000}'

{ "allowed": true, "remaining": 87, "reset_ms": 41230 }

A correct distributed rate limiter is a minefield.

Two instances increment the same counter at the same instant, and your limit blows past. Most home-grown implementations over-admit under load — and the bug only shows up in production, at the worst possible time.

Detent runs every algorithm as a single atomic operation, against one authoritative clock. No race window, no over-admission.

Four algorithms, one guarantee: atomicity.

Sliding window

Precise rolling window, no bursts at the window edge.

Token bucket

Allows bursts up to a capacity, refills at a steady rate.

Fixed window

The simplest, cheapest counter, per fixed interval.

Concurrency (leases)

Limits in-flight requests: acquire a lease, release it when done.

Three ways to call Detent.

curl, TypeScript or Python — same verdict, same contract.

curl -X POST https://api.detent.fr/v1/limit \
  -H "Authorization: Bearer dt_live_…" \
  -d '{"namespace":"checkout","key":"user_42","algorithm":"sliding_window","limit":100,"window_ms":60000}'

Built to never take your app down.

Fail-open

If our infrastructure is briefly unavailable, Detent allows and alerts you. Our outage never becomes yours.

The verdict is data

POST /v1/limit always returns 200 with allowed: true/false. Detent never emits 429 for you — you decide.

Stable error codes

Every error carries a stable machine code, for client-side handling and localization without parsing text.

Observable

Metrics exposed on /metrics: decisions, fail-open, quotas — compatible with your monitoring tools. Wire up your dashboards in minutes.

Flat price per tier. You know exactly what you pay.

Starter

For side projects and early-stage.

€29 / month

  • 5M requests / month
  • 3 namespaces
  • Sliding window + Fixed window
  • Basic dashboard
  • EU region (Paris)
  • Email support
Get started
Most popular

Pro

For SaaS with a public API.

€89 / month

  • 50M requests / month
  • Unlimited namespaces
  • All algorithms + concurrency
  • Webhook on-limit
  • 30-day analytics
  • Priority support
  • <5ms p99 latency (roadmap)
Get started

Scale

For high-traffic APIs.

€249 / month

  • 500M requests / month
  • All algorithms + concurrency
  • Dynamic rules via API
  • Real-time analytics
  • Dedicated onboarding
  • Multi-region (roadmap)
  • 99.9% SLA (roadmap)
Get started

Up to 22× cheaper than per-request pricing like Upstash — and hosted in the EU.

Ready to stop reinventing rate limiting?

Create a free account