速率限制
AstroAPI 强制执行速率限制以确保公平使用和平台稳定性。
默认限制
速率限制由您的订阅计划决定:
| 订阅 | 每分钟请求数 | 每月请求数 |
|---|---|---|
| Basic | 60 | 150,000 |
| Gold | 120 | 300,000 |
| Premium | 300 | 750,000 |
| Deluxe | 600 | 1,000,000 |
您的具体速率限制取决于您的有效订阅。在控制台中查看您的当前限制。
速率限制响应头
所有响应均包含速率限制信息:
http
X-RateLimit-Limit: 60
X-RateLimit-Reset: 1699999999处理速率限制
当您超出速率限制时,API 返回 429 Too Many Requests 响应:
json
{
"errors": [{
"status": "429",
"title": "Too Many Requests",
"detail": "Rate limit exceeded. Please retry after 60 seconds."
}]
}重试策略
在收到 429 响应时实施指数退避:
typescript
async function fetchWithRetry(url: string, options: RequestInit, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.status !== 429) {
return response;
}
const retryAfter = response.headers.get('Retry-After') || '60';
await new Promise(resolve =>
setTimeout(resolve, parseInt(retryAfter) * 1000)
);
}
throw new Error('Max retries exceeded');
}端点特定限制
某些端点有额外的限制:
| 端点 | 额外限制 |
|---|---|
/api/chart/* | 每小时 100 次渲染 |
/api/calc/batch | 每分钟 10 次批量请求 |
提高限制
联系支持团队讨论为您的应用程序自定义速率限制。