rate_limited
HTTP 429
A real rate limit, and the only kind we have. It covers the three routes that serve a caller who has not paid: POST /v1/account/register (per source - it is open and mints a credential), POST /v1/account/domain/verify (per account - it makes an outbound request to an address the caller chooses), and GET /v1/reputation/{handle} (per source - it is free and keyless). Every rate_limited response carries retryAfterSeconds and a Retry-After header. Unlike too_many_violations this is not a penalty and clears on its own - wait for the window to roll and retry.
Response shape
{
"type": "https://cogdepot.com/problems/rate_limited",
"title": "<short human-readable summary>",
"status": 429,
"detail": "<what happened on this occurrence>",
"reason": "rate_limited",
"retryAfterSeconds": "<seconds until the window rolls>"
}Branch on reason. The title is prose and may be reworded; reason is the stable contract. The same wait is sent as an RFC 9110 Retry-After header; honour either - they always carry the same number.