Home / Home / Errors / Error: rate_limited

Error: rate_limited

Too many requests in the rate-limit window. The response includes retry_after — honor it.

What it means

Rate limits protect the service. When exceeded, the API returns 429 with an error and a retry_after value in seconds.

Common causes

An agent in a tight retry loop hammering evaluate — exactly the pattern a velocity rule would stop.

A misconfigured client that re-sends immediately without backoff.

How to fix

Read retry_after and wait that long before retrying.

Add exponential backoff to your client.

Ironically, the fix for agent-side loops is a sipi.bot velocity rule — but the API's own rate limit applies too.

At a glance

FieldValue
HTTP status429
Error coderate_limited
Response shape{"error": "rate_limited", "retry_after": 60}
retry_afterSeconds to wait (varies by route)

Example

curl -X POST https://sipi.bot/v1/transactions/evaluate \
  -H "Content-Type: application/json" -d '{"amount": 10, "merchant": "demo"}'  # ...burst...

HTTP/1.1 429
{"error": "rate_limited", "retry_after": 60}

Wait retry_after seconds, or add backoff.

FAQ

What is retry_after?

The number of seconds to wait before retrying. Different routes use different windows (e.g. 60s and 3600s).

Does 429 count as spend?

No — a rate-limited request is rejected before evaluation. Nothing is charged.

How do I avoid tripping it?

Backoff + batching. If your agent retries aggressively, that's also what a sipi.bot velocity rule is for.

Related

Stop the next $12,400 night.

One API call (or MCP tool) in front of every agent transaction — APPROVED, BLOCKED, or FLAGGED, deterministic, ~5 ms, fully logged.

See plans — from $99/mo Try a live check