レート制限
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-Remaining: 55
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バッチリクエスト/分 |
制限の引き上げ
アプリケーションのカスタムレート制限については、サポートにお問い合わせください。