API Limits
Per-plan rate limits and concurrency limits, plus per-endpoint character limits
The Speechify API enforces three kinds of limit:
Rate and concurrency limits are enforced per account, not per API key. On Build audio they are shared across every synthesis endpoint - /v1/audio/speech, /v1/audio/stream, and /v1/audio/stream/with-timestamps all draw from one budget, so a request to any of them counts against the same rate and concurrency ceiling. Exceeding either returns 429 Too Many Requests.
Character limits
Character counts include SSML tags. For text longer than the limit, split it into multiple requests.
Rate limits
Rate limits differ by product because the workloads differ. Build audio is cost-per-call. Agents is chatty interactive traffic.
Build audio
Applies to every Build audio synthesis endpoint - /v1/audio/speech, /v1/audio/stream, and /v1/audio/stream/with-timestamps - which share one per-account rate budget.
Agents
Applies to every Agents endpoint under /v1/agents/*: agents, conversations, knowledge bases, tools, tests, memories, audio assets, batch calls, IVR menus, and telephony.
Burst is the peak bucket capacity. A fresh bucket absorbs the burst in a single second, then refills at the sustained rate. This lets a console page load or batch operation fire many parallel requests without hitting 429, while still capping long-running abuse at the sustained rate.
Concurrency limits
Concurrency limits cap the number of simultaneous in-flight requests per account.
Build audio
Applies to every Build audio synthesis endpoint - /v1/audio/speech, /v1/audio/stream, and /v1/audio/stream/with-timestamps - which share one per-account concurrency budget.
Agents
Applies to the authenticated Agents endpoints listed above. The primary target is POST /v1/agents/{id}/conversations, which allocates a live-call session.
All limits apply per account, not per API key. Enterprise values are starting points, not caps - every limit can be raised in your contract.
Reading your budget
Every response on a rate-limited endpoint carries the request-rate budget headers, so clients can pace themselves before hitting 429:
The same values are mirrored as X-RateLimit-* for clients predating the IETF draft names.
Every Speechify-specific header follows the same rule: the canonical name is un-prefixed and namespaced (Speechify-Request-Id, Speechify-Version, Speechify-Signature), and any pre-2026 X- spelling is still accepted and still emitted alongside it until 2027-07-24.
Handling 429 responses
When you exceed rate or concurrency limits, the API returns 429 Too Many Requests with a Retry-After header. The error body names the limit your plan allows and links back to this page (error.docs_url); the two cases are distinguishable by error.code: rate_limited (requests per second) vs concurrency_limit_reached (too many at once).
Need more headroom? Every limit above rises with your plan - upgrade in the console under Billing, or contact us for Enterprise terms.
Python
TypeScript
Processing long texts
For texts exceeding 20,000 characters, split into chunks and process sequentially:
FAQ
What is the Speechify API rate limit?
It depends on your plan. Build audio ranges from 1 request/second on Free to 150 request/second on Enterprise, each with a short burst allowance on top. See the rate limits table for every plan. Limits are per account, not per API key.
How many concurrent requests can I make?
Build audio allows from 1 simultaneous request on Free to 100 on Enterprise. See the concurrency limits table for every plan.
Do streaming and word-timestamp requests count against a separate limit?
No. /v1/audio/speech, /v1/audio/stream, and /v1/audio/stream/with-timestamps share one per-account rate budget and one per-account concurrency budget. A request to any of them draws from the same buckets, so mixing endpoints does not raise your ceiling.
What happens if I exceed the character limit?
The request is rejected with an error response. Split your text into smaller chunks within the allowed limits.
How do I get higher limits?
Upgrade to a paid plan for 20 req/sec on Build audio (with 15 concurrent requests) and 20 req/sec + 60 burst on Agents endpoints. Enterprise customers can request custom limits: contact sales.
How can I monitor my usage?
Track usage through the Speechify Console dashboard.