Skip to content

レート制限

AstroAPIは、公正な使用とプラットフォームの安定性を確保するためにレート制限を設けています。

デフォルト制限

レート制限はサブスクリプションプランによって決まります:

サブスクリプションリクエスト/分リクエスト/月
Basic60150,000
Gold120300,000
Premium300750,000
Deluxe6001,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/batch10バッチリクエスト/分

制限の引き上げ

アプリケーションのカスタムレート制限については、サポートにお問い合わせください。

AstroAPI Documentation