
Limits exist in four shapes and each returns a different code, so your retry logic can tell "wait" apart from "buy more".

Free — 3,000 events a month, 1 agent, 30 sends an hour, 300 a day.
Pro ($20/mo) — 50,000 sends and 50,000 inbound a month, 5 agents, 500 an hour, 5,000 a day.
Scale ($99/mo) — 250,000 sends and 500,000 inbound a month, unlimited agents, 2,000 an hour, 20,000 a day.
hourly_limit_exceeded / daily_limit_exceeded — a time window. Wait; retryAfter tells you how long. These are 429.
free_tier_exceeded / monthly_limit_exceeded — capacity you must buy. Waiting does not help; upgrading does.
fanout_limit_exceeded — you have reached the number of distinct new recipients allowed in 24 hours (25 on Free, 100 on Pro, 250 on Scale). Sending again to an address you have already mailed is never limited, so replies and follow-ups keep working. The allowance rises automatically as a workspace matures.
workspace_not_approved — sending is held pending an anti-abuse review. Email [email protected] and we will look at it.
See your usageThe distinct-recipient cap is the one people meet first and understand last. It limits how many NEW people you can mail in a day, not how much mail you can send — which is exactly the shape of the abuse it exists to stop.