Retry-After header’s value.
What triggers it
- Burst exceeded the per-key write limit on
POST /v1/posts. - Burst exceeded the per-key media-upload limit on
POST /v1/media. - Suspicious patterns flagged by the rate limiter.
Retry-After and you’ll never need the number.
Response shape
rate_limited.json
Retry-After is set on the response in seconds.
Every response (not just 429s) also carries X-RateLimit-Limit — the static per-route ceiling — so a client can size concurrency without first probing a 429. We deliberately do not publish Remaining or Reset until per-key counting lands; those values would be misleading across tenants in v1.
How to handle
handle.ts
Distinct from upstream rate limits
This error is letmepost’s own per-key limit. When the upstream platform rate-limits us you’ll seeplatform_rejected or platform_unavailable with the upstream’s headers attached.
Related
- Authentication — keys are the unit of rate limiting.
platform_unavailable— upstream is the limiter, not us.

