Files
documenso/apps/docs
Ephraim Duncan 05f646b326 docs(api): document rate limit headers and 429 variants (#3133)
## Description

The rate limits page claimed "No rate limit headers are currently
provided" and advised a fixed 60-second wait. The middleware has been
setting standard headers on every API response.

## Changes Made

- Documented `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and
`X-RateLimit-Reset` (Unix epoch seconds) on every `/api/v1`, `/api/v2`,
and `/api/v2-beta` response, and `Retry-After` (seconds, min 1) on 429s.
- Explained that windows are fixed epoch-aligned 1-minute buckets, so
the real wait is 1–60s — clients should honor `Retry-After` instead of
sleeping a fixed 60s.
- Showed both 429 body shapes: the global per-IP limiter's `{ "error":
... }` vs AppError-based `code`/`message`/`statusCode`.
- Covered the three distinct 429 sources: global per-IP limit,
organisation windowed limits, and monthly envelope quota (which sends no
rate-limit headers).
- Added `/api/v2-beta/*` to the documented scope; left the
verified-correct 1000/min figure and plan-limits table untouched.

## Testing Performed

Docs-only change. Verified against `rate-limit-middleware.ts`,
`rate-limit.ts`, `check-organisation-rate-limits.ts`,
`check-monthly-quota.ts`, and the remix server router.
2026-08-19 09:28:23 +00:00
..
2026-07-23 13:57:09 +10:00
2026-02-27 22:05:27 +11:00
2026-05-08 16:04:22 +10:00
2026-08-18 12:54:54 +10:00
2026-02-27 22:05:27 +11:00
2026-02-27 22:05:27 +11:00
2026-05-08 16:04:22 +10:00

@documenso/docs

The Documenso documentation site, built with Next.js and Fumadocs. Published at docs.documenso.com.

Content lives under content/docs/ as MDX. See WRITING_STYLE.md for the documentation writing conventions.

# From the monorepo root
npm run dev --filter=@documenso/docs

Structure

  • content/docs/: Documentation pages (MDX).
  • lib/source.ts: Content source adapter.
  • lib/layout.shared.tsx: Shared layout options.