Repository files API rate limits

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab Self-Managed, GitLab Dedicated

The Repository files API enables you to fetch, create, update, and delete files in your repository. To improve the security and durability of your web application, you can enforce rate limits on this API. Any rate limits you create for the Files API override the general user and IP rate limits.

Define Files API rate limits

Rate limits for the Files API are disabled by default. When enabled, they supersede the general user and IP rate limits for requests to the Repository files API. You can keep any general user and IP rate limits already in place, and increase or decrease the rate limits for the Files API. No other new features are provided by this override.

Prerequisites:

  • You must have administrator access to the instance.

To override the general user and IP rate limits for requests to the Repository files API:

  1. In the upper-right corner, select Admin.
  2. In the left sidebar, select Settings > Network.
  3. Expand Files API Rate Limits.
  4. Select the checkboxes for the types of rate limits you want to enable:
    • Unauthenticated API request rate limit
    • Authenticated API request rate limit
  5. If you selected unauthenticated:
    1. Select the Max unauthenticated API requests per period per IP.
    2. Select the Unauthenticated API rate limit period in seconds.
  6. If you selected authenticated:
    1. Select the Max authenticated API requests per period per user.
    2. Select the Authenticated API rate limit period in seconds.

Configure file blame rate limits

The file blame endpoint and the GraphQL blame field on RepositoryBlob share these rate limits. For GraphQL, each blob in a query counts as one request. These limits apply in addition to the Files API rate limits, and are enabled by default.

Request typeDefault limitApplies toApplication setting
Authenticated400 requests every minuteEach user and projectproject_repositories_blame_limit
Unauthenticated400 requests every minuteEach IP addressproject_repositories_blame_unauthenticated_limit

To change a limit, use the application settings API. Set a limit to 0 to disable it.