Rate Limits
Request quotas per endpoint category and retry guidance.
Rate limits are enforced per API key. Limits reset on a 60-second rolling window. Exceeded requests return 429 rate_limit_exceeded with a Retry-After header.
Limits by category
| Category | Endpoints | Req / min (live) | Req / min (test) |
|---|---|---|---|
| Agent Management | POST/PATCH/DELETE /agents | 120 | 300 |
| Agent Reads | GET /agents, GET /agents/:id | 600 | 1200 |
| Spend Authorise | POST /spend/authorise | 1200 | 3000 |
| Wallet Operations | GET/POST /wallets/* | 300 | 600 |
| Transactions | GET /transactions | 300 | 600 |
| Webhook Management | POST/DELETE /webhooks | 60 | 120 |
Handling 429s
typescriptnomiqon.com
// The SDK handles retries automatically with exponential backoff.
// If you use raw fetch, implement backoff manually:
async function withRetry<T>(fn: () => Promise<T>, maxRetries = 3): Promise<T> {
for (let attempt = 0; attempt <= maxRetries; attempt++) {
try {
return await fn();
} catch (err: unknown) {
const isRateLimit = err instanceof NomiqonError && err.status === 429;
if (!isRateLimit || attempt === maxRetries) throw err;
const delay = Math.pow(2, attempt) * 500 + Math.random() * 200;
await new Promise(r => setTimeout(r, delay));
}
}
throw new Error("unreachable");
}