limit.rate
Too many requests in a short time; the caller should wait
Example
return fail('limit.rate', undefined, { retryAfter: 30 });The caller getsTerminal
HTTP 429
Retry-After: 30
{
"ok": false,
"error": "Too many requests. Try again shortly.",
"code": "limit.rate"
}And it writes security.limitedTS
{
"intent": "security.limited",
"level": "warn",
"alert": false,
"message": "Too many requests. Try again shortly.",
"data": {
"intent": "limit.rate"
},
"time": "2026-10-09T12:00:00.000Z"
}Choosing between neighbours
Find the row that describes your case, and use the intent on the right.
If it is
Use
Too many requests in a short time; the caller should wait
limit.ratethis page
Connections
Declared in the registry, both directions. Where an intent is used in your own code is something check and the gallery see; this site has no app code.
- Built from
- Writes
For registry authors
Starter intents. These are the intents prongs add errors puts in your registry, raised with fail(). Change the messages to suit your app, and the statuses through the status.* intents they are built from.
The entry prongs add errors writes into your registry. Change the message here, or the status through its status.* ref.
'limit.rate': {
kind: 'semantic',
description: 'Too many requests in a short time; the caller should wait',
refs: ['status.toomany'],
keywords: ['rate', 'throttle', 'too many'],
binding: {
publicMessage: 'Too many requests. Try again shortly.',
retryable: true,
logs: 'security.limited',
},
},