Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

Rate limits

Ruut Voice has separate controls for API requests, call initiation, and account-level fraud protection. Limits and behavior can vary by deployment.

API request throttles

The Rails Rack::Attack configuration defines these defaults, which operators can override through environment variables:
ScopeDefaultApplied to
OAuth application100 requests per 60 secondsMatching Twilio-compatible API requests with a bearer token
Account30 requests per 60 secondsPOST /2010-04-01/Accounts/:sid/Calls.json
IP address300 requests per 300 secondsSign-in and OAuth routes
The configured matcher targets specific .json API paths; do not assume every endpoint or URL variant has the same throttle. The implementation currently uses an in-process memory store, so counters are not shared across Puma workers or hosts.
A throttled request returns HTTP 429 with a Retry-After header. Respect that header and retry with backoff.

Call initiation

Calls per second (CPS) controls the rate at which an account's outbound calls are started. Calls can be queued while waiting for their turn. Separate fraud and billing checks can reject a call; an accepted API request does not mean the call has connected.