Rate Limits
CloudVNO API rate limits, how they work, and how to handle 429 responses.
Overview
CloudVNO API endpoints are rate limited to protect the platform and ensure fair usage for all customers. Rate limits are enforced per API key.
Default Limits
| Endpoint Group | Requests per Second | Requests per Minute |
|---|---|---|
| Messages (SMS/MMS) | 100 | 3,000 |
| Voice calls | 20 | 1,000 |
| Phone Verification | 50 | 2,000 |
| Number lookups | 100 | 5,000 |
| Number provisioning | 10 | 200 |
| Proxy sessions | 20 | 500 |
Rate Limit Headers
Every API response includes rate limit headers:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1709728800
X-RateLimit-Limit: Maximum requests allowed in the current windowX-RateLimit-Remaining: Requests remaining in the current windowX-RateLimit-Reset: Unix timestamp when the current window resets
Handling 429 Responses
When you exceed the rate limit, the API returns HTTP 429 Too Many Requests:
{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Please slow down.",
"retry_after": 2
}
}
Implement exponential backoff in your code:
import time
import cloudvno
from cloudvno.exceptions import RateLimitError
def send_with_retry(client, **kwargs, max_retries=3):
for attempt in range(max_retries):
try:
return client.messages.send(**kwargs)
except RateLimitError as e:
if attempt == max_retries - 1:
raise
wait = (2 ** attempt) + 0.1
time.sleep(wait)
High-Volume Sending
For bulk sending operations (>100 messages/second), use our batch messaging API and contact us at sales@cloudvno.com to discuss higher throughput limits.
Throughput limits per number type:
- Long codes: 1 message/second per number
- Short codes: 500 messages/second
- Toll-free: 3 messages/second per number