# REST API のレート制限

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

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

サイト管理者の場合は、インスタンスに対して、セカンダリ レート制限を含むレート制限を設定できます。 「[Configuring rate limits (レート制限を構成する)](/ja/enterprise-server@3.22/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-rate-limits)」を参照してください。

インスタンスの外部でユーザーまたは組織用のアプリを開発する場合は、標準の GitHub レート制限が適用されます。
[
](/ja/rest/using-the-rest-api/rate-limits-for-the-rest-api)ドキュメントの 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 `GET`、 `HEAD`、および `OPTIONS` 要求       | 1    |
| ほとんどの REST API `POST`、`PATCH`、`PUT` または `DELETE` 要求 | 5    |

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