Rate Limits
Creed Space API uses rate limiting to ensure fair usage and system stability.
Default Limits
| Tier | Requests/minute | Requests/day |
|---|---|---|
| Free | 10 | 100 |
| Pro | 100 | 10,000 |
| Enterprise | Custom | Custom |
Rate Limit Headers
Every API response includes rate limit information:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1704067200| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per minute |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when limit resets |
Handling Rate Limits
When you exceed the rate limit, you'll receive a 429 response:
json
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded: 100 requests per minute",
"retry_after": 45
}The response includes:
Retry-Afterheader with seconds to waitretry_afterfield in the response body
Best Practices
python
import time
from creed_sdk import CreedSpace
from creed_sdk.exceptions import RateLimitError
client = CreedSpace(api_key="...")
def evaluate_with_retry(text: str, max_retries: int = 3):
for attempt in range(max_retries):
try:
return client.safety.evaluate(text)
except RateLimitError as e:
if attempt < max_retries - 1:
time.sleep(e.retry_after)
else:
raiseExponential Backoff
For production systems, implement exponential backoff:
python
import random
import time
def evaluate_with_backoff(text: str, max_retries: int = 5):
base_delay = 1
max_delay = 60
for attempt in range(max_retries):
try:
return client.safety.evaluate(text)
except RateLimitError as e:
if attempt < max_retries - 1:
delay = min(base_delay * (2 ** attempt), max_delay)
jitter = random.uniform(0, delay * 0.1)
time.sleep(delay + jitter)
else:
raisePer-Key Limits
API keys can have custom rate limits set during creation:
rate_limit_rpm- Custom requests per minuterate_limit_rpd- Custom requests per day
View your key's limits in the Dashboard.
Increasing Limits
Need higher limits?
- Pro tier - Upgrade your plan for 10x higher limits
- Enterprise - Contact sales for custom limits
Monitoring Usage
Track your usage in real-time:
- Dashboard → Usage - Visual analytics
- Per-key usage in Dashboard → API Keys
- Rate limit headers in every response