Questions · Published 2026-09-29 · Updated 2026-09-29 · AgentiSend
What does rate_ceiling_exceeded mean?
rate_ceiling_exceeded means the send or the check was refused with that code. The catalogue message is quoted below, retryable is true, and the fix names the next call.
rate_ceiling_exceeded means the request was refused with this code. The error catalogue message is "Per-minute rate ceiling for this key is exhausted." The fix is "Wait the seconds below and send the same request again. Raising the ceiling is a person’s decision, made in the console; a key cannot raise its own." retryable is true.
The fix, and the call it names
The fix says to wait the seconds below and send the same request again. Those seconds are retry_after_seconds, and the response also carries Retry-After. retryable is true. Raising rate_ceiling_per_minute is a person's decision in the console. A key cannot raise its own. GET /limits/keys/{id} returns the ceiling, consumed_in_window, and rate_window_started_at. GET /usage lists the same window for every key. This code counts sends against the key's ceiling. The send that met it was POST /emails. rate_limit_exceeded counts requests against the request limiter, and that page is the other one.
curl -sS -X GET https://api.agentisend.com/limits/keys/9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42 \
-H "Authorization: Bearer $AGENTISEND_API_KEY"200
{
"api_key_id": "9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42",
"budget_per_period": -9007199254740991,
"consumed_in_period": -9007199254740991,
"consumed_in_window": -9007199254740991,
"paused": false,
"paused_at": "2026-09-04T09:14:00.000Z",
"paused_reason": "example",
"period": "hourly",
"period_started_at": "2026-09-04T09:14:00.000Z",
"rate_ceiling_per_minute": -9007199254740991,
"rate_window_started_at": "2026-09-04T09:14:00.000Z",
"updated_at": "2026-09-04T09:14:00.000Z"
}Next
Written by the AgentiSend team.