Rate Limiting
Understand and work with Audian's rate limiting policies to build reliable integrations.
Overview​
The Audian API implements rate limiting to ensure fair resource usage and service stability. Rate limit information is returned in the API response.
Rate Limit Headers​
API responses include rate limit information:
{
"auth_token": "eyJhbGciOiJSUzI1...",
"data": {...},
"tokens": {
"consumed": 1,
"remaining": 99
},
"status": "success"
}
Token Fields​
| Field | Description |
|---|---|
tokens.consumed | Tokens used by this request |
tokens.remaining | Tokens remaining in current window |
Default Rate Limits​
Standard limits for API calls:
- 100 tokens per minute per account
- Tokens regenerate continuously
Handling Rate Limits​
Check Token Balance​
Monitor your remaining tokens in each response:
import requests
response = requests.get(
'https://api.audian.com:8443/v2/accounts/{ACCOUNT_ID}/users',
headers={
'X-Auth-Token': AUTH_TOKEN,
'Accept': 'application/json'
}
)
data = response.json()
remaining = data.get('tokens', {}).get('remaining', 0)
if remaining < 10:
print(f"Warning: Only {remaining} tokens remaining")
429 Too Many Requests​
When you exceed rate limits:
{
"auth_token": "eyJhbGciOiJSUzI1...",
"data": {
"message": "rate limit exceeded"
},
"error": "429",
"message": "too_many_requests",
"status": "error"
}
Best Practices​
- Implement Exponential Backoff: Retry with increasing delays
- Cache Results: Avoid repeated requests for same data
- Use Webhooks: Subscribe to events instead of polling
- Use
paginate=false: Get all results in one request when possible - Monitor Tokens: Track remaining tokens in responses
Retry Strategy​
Exponential Backoff​
import time
import requests
def make_request_with_backoff(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
data = response.json()
if response.status_code == 429:
wait_time = 2 ** attempt # 1, 2, 4 seconds
print(f"Rate limited, waiting {wait_time}s...")
time.sleep(wait_time)
continue
return data
raise Exception("Max retries exceeded")
# Usage
result = make_request_with_backoff(
'https://api.audian.com:8443/v2/accounts/{ACCOUNT_ID}/users',
headers={'X-Auth-Token': AUTH_TOKEN}
)
Endpoint-Specific Considerations​
Some operations consume more tokens than others:
| Operation | Token Cost |
|---|---|
| List operations | 1 token |
| Create/Update | 1 token |
| Delete | 1 token |
| Bulk operations | Variable |
Getting Higher Limits​
For applications requiring higher rate limits:
- Contact Audian support
- Explain your use case
- Request custom limits for your account
Topics​
- Rate Limit Headers - Understanding response headers
- Best Practices - Optimize your API usage