Skip to main content

REST API のレート制限

REST API のレート制限、それを超えないようにする方法、およびそれを超えた場合の処理方法について説明します。

          GitHub Enterprise Serverでは、レート制限は既定で無効になっています。 インスタンスのレート制限を確認するには、サイト管理者にお問い合わせください。

サイト管理者の場合は、インスタンスに対して、セカンダリ レート制限を含むレート制限を設定できます。 「Configuring rate limits (レート制限を構成する)」を参照してください。

インスタンスの外部でユーザーまたは組織用のアプリを開発する場合は、標準の GitHub レート制限が適用されます。 ドキュメントの GitHub Free を参照してください。

セカンダリ レート制限について

プライマリ レート制限に加えて、GitHub では、乱用を防ぎ、すべてのユーザーが API を使用できるように、セカンダリ レート制限が適用されます。

次の場合、セカンダリ レート制限が発生する可能性があります。

  •         _同時実行要求が多すぎます。_ 同時要求は 100 個以下です。 この制限は、REST API と GraphQL API 全体で共有されます。
    
  •         _1 分あたりの 1 つのエンドポイントに対する要求が多すぎます。_ REST API エンドポイントには 1 分あたり 900 ポイント以下、GraphQL API エンドポイントには 1 分あたり 2,000 ポイント以下を使用できます。 ポイントの詳細については、「[セカンダリ レート制限のポイントの計算](#calculating-points-for-the-secondary-rate-limit)」を参照してください。
    
  •         _1 分あたりの要求が多すぎます。_ リアルタイムの 60 秒あたりの CPU 時間は 90 秒以下です。 GraphQL API、この CPU 時間の 60 秒以下を使用できます。 API 要求の合計応答時間を測定することで、CPU 時間を大まかに見積もることができます。
    
  •         _短時間に過剰なコンピューティングリソースを消費するリクエストを大量に送信します。_
    
  •           _短時間のうちに GitHub 上で過度に多くのコンテンツを作成します。_ 一般に、1 分あたり 80 件以下のコンテンツ生成要求と、1 時間あたり 500 件を超えるコンテンツ生成要求は許可されません。 一部のエンドポイントでは、コンテンツ作成の制限が低くなります。 コンテンツ作成の制限には、GitHub ウェブ インターフェイスに対して実行されるアクションと、REST API と GraphQL API を介して実行されるアクションが含まれます。
    
  •         _短時間で OAuth アクセス トークン要求が多すぎます。_ GitHub Apps と OAuth apps に対して、1 時間あたり 2,000 個以下の OAuth アクセス トークン要求が許可されません。
    

これらのセカンダリ レート制限は、予告なしに変更される場合があります。 また、未公開の理由により、セカンダリ レート制限が発生する可能性もあります。

セカンダリ レート制限のポイントの計算

一部のセカンダリ レート制限は、要求のポイント値によって決まります。 GraphQL 要求の場合、これらのポイント値は、プライマリ レート制限のポイント値の計算とは別です。

要求ポイント
変更のない GraphQL 要求1
変更を含む GraphQL 要求5
ほとんどの REST API GETHEAD、および OPTIONS 要求1
ほとんどの REST API POSTPATCHPUT または DELETE 要求5

一部の REST API エンドポイントでは、パブリックに共有されていないポイント コストが異なります。