Docs / Platform

Rate limits

Limits keep the early-access service fair and stable for everyone. They are set per workspace and apply across all of that workspace's API keys.

Plans and limits are indicative and subject to change at general availability. See pricing for current plan prices.

Limits by plan

Limit Free sandbox Builder Business Enterprise
Price $0 $29/mo ($22 yearly) $249/mo ($199 yearly) Custom
Included audio 10 min/month Plan allowance Plan allowance Custom
REST requests per minute 20 120 600 Custom
Concurrent streams / calls 1 5 25 Custom
TTS characters per request 1,000 5,000 5,000 5,000
STT file length 10 min 1 hour 2 hours 2 hours
Voice cloning no 3 voices 20 voices Custom
Dubbing (preview) no no on request yes
Agents sandbox sandbox sandbox + pilot numbers yes

Sandbox keys (wrd_test_) always use the Free sandbox limits, whatever your plan.

Rate limit headers

Every REST response includes:

Header Meaning
X-RateLimit-Limit Requests allowed in the current one-minute window
X-RateLimit-Remaining Requests left in the window
X-RateLimit-Reset Seconds until the window resets

When you hit a limit

Requests over the limit return 429 with code rate_limited and a Retry-After header in seconds. Too many open streams close with WebSocket code 4029. Using up your monthly audio returns 429 with code quota_exceeded.

Retry with exponential backoff and a little jitter. The SDKs do this for you, up to 3 times.

from waridi import Waridi

client = Waridi(max_retries=5)  # default is 3
import { Waridi } from "@waridi/sdk";

const client = new Waridi({ maxRetries: 5 }); // default is 3
# cURL does not retry 429s by default. Respect Retry-After:
curl --retry 5 --retry-all-errors https://api.waridi.io/v1/tts ...

Need more?

If you are planning a launch, a large backfill or a busy phone line, write to hello@waridi.io a week ahead and we will raise your limits for the pilot.