Skip to main content

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​

FieldDescription
tokens.consumedTokens used by this request
tokens.remainingTokens 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​

  1. Implement Exponential Backoff: Retry with increasing delays
  2. Cache Results: Avoid repeated requests for same data
  3. Use Webhooks: Subscribe to events instead of polling
  4. Use paginate=false: Get all results in one request when possible
  5. 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:

OperationToken Cost
List operations1 token
Create/Update1 token
Delete1 token
Bulk operationsVariable

Getting Higher Limits​

For applications requiring higher rate limits:

  1. Contact Audian support
  2. Explain your use case
  3. Request custom limits for your account

Topics​