# REST API 的速率限制

了解 REST API 速率限制、如何避免超过速率限制，以及如果超过了该怎么办。

默认情况下 GitHub Enterprise Server禁用速率限制。 请与站点管理员联系，以确认实例的速率限制。

如果你是网站管理员，则可以为实例设置速率限制，包括次要速率限制。 请参阅“[配置速率限制](/zh/enterprise-server@3.22/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-rate-limits)”。

如果为超出您实例范围的用户或组织开发应用程序，则适用标准 GitHub 速率限制。 请参阅 [](/zh/rest/using-the-rest-api/rate-limits-for-the-rest-api) 文档中的 GitHub Free。

## 关于二级速率限制

除了主要速率限制以外，GitHub 还强制执行次要速率限制以阻止滥用，让 API 可供所有用户所使用。

可能会在以下情况中遇到二级速率限制：

* *发出的并发请求过多。* 并发请求数量不能超过 100 个。 REST API 和 GraphQL API 都应用此限制。
* *每分钟向单个终结点发出的请求数过多。* REST API 终结点每分钟允许发出的请求数不超过 900 点，GraphQL API 终结点每分钟允许发出的请求数不过超 2,000 点。 有关计分的详细信息，请参阅“[计算次要速率限制的点数](#calculating-points-for-the-secondary-rate-limit)”。
* *每分钟发出的请求数过多。* 实时每 60 秒允许的 CPU 时间不超过 90 秒。 此 CPU 时间最多可以用于 GraphQL API 的时间不能超过 60 秒。 可以通过衡量 API 请求的总响应时间来大致估算出 CPU 时间。
* *发出过多的请求，它们在短时间内会消耗过多的计算资源。*
* *短时间内在 GitHub 上创建的内容过多。* 一般情况下，每分钟不超过 80 个内容生成请求，允许每小时不超过 500 个内容生成请求。 某些终结点的内容创建限制较低。 内容创建限制包括在 GitHub 的 Web 界面以及通过 REST API 和 GraphQL API 进行的操作。
* *在短时间内发出过多的 OAuth 访问令牌请求。* 每小时对于 GitHub Apps 和 OAuth apps 的 OAuth 访问令牌请求不允许超过 2,000 次。

上述次要速率限制可能随时更改，恕不另行通知。 您可能会因为某些未公开的原因而遇到次级速率限制。

### 计算次要速率限制的点数

某些次要速率限制由请求的点值确定。 对于 GraphQL 请求，这些点值与主要速率限制的点值分开来进行计算。

| 请求                                              | 积分 |
| ----------------------------------------------- | -- |
| 不具有突变的 GraphQL 请求                               | 1  |
| 具有突变的 GraphQL 请求                                | 5  |
| 大多数 REST API `GET`、`HEAD` 和 `OPTIONS` 请求        | 1  |
| 大多数 REST API `POST`、`PATCH`、`PUT` 或 `DELETE` 请求 | 5  |

某些 REST API 终结点具有不公开共享的不同点成本。

请参阅“[关于创建GitHub应用](/zh/enterprise-server@3.22/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps)”。