Rate Limiting
The API enforces rate limits to ensure platform stability and fair usage.
Rate Limit
50 requests per minute per API key.
Rate Limit Headers
Each API response includes headers showing your current rate limit status:
Header | Description |
---|---|
X-RateLimit-Limit |
Maximum requests per minute (50) |
X-RateLimit-Remaining |
Requests remaining in current minute |
Example Response Headers
X-RateLimit-Limit: 50
X-RateLimit-Remaining: 42
Exceeding the Limit
If you exceed the rate limit, you'll receive:
Status Code: 429 Too Many Requests
Response:
{
"error": "Rate limit exceeded. Please try again later."
}
Best Practices
Monitor Remaining Requests
const response = await fetch('https://api.teachfloor.com/v0/members', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const remaining = response.headers.get('X-RateLimit-Remaining');
console.log(`Requests remaining: ${remaining}`);
if (remaining < 5) {
// Slow down requests
}
Implement Backoff
async function makeRequest(url) {
try {
const response = await fetch(url, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
if (response.status === 429) {
// Wait 60 seconds and retry
await new Promise(resolve => setTimeout(resolve, 60000));
return makeRequest(url);
}
return response;
} catch (error) {
console.error('Request failed:', error);
}
}
Batch Requests
Optimize your API usage:
- Cache responses when possible
- Combine related data fetches
- Use webhooks for real-time updates instead of polling
Need Higher Limits?
Contact support through your Teachfloor dashboard to discuss your use case.
Next Steps
- Errors - Handle API errors
- Authentication - API key setup