Plan limits API

Introduced in GitLab 13.10.

The plan limits API allows you to maintain the application limits for the existing subscription plans.

The existing plans depend on the GitLab edition. In the Community Edition, only the plan default is available. In the Enterprise Edition, additional plans are available as well.

Administrator access is required to use this API.

Get current plan limits

List the current limits of a plan on the GitLab instance.

GET /application/plan_limits
AttributeTypeRequiredDescription
plan_namestringnoName of the plan to get the limits from. Default: default.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/application/plan_limits"

Example response:

{
  "ci_pipeline_size": 0,
  "ci_active_jobs": 0,
  "ci_project_subscriptions": 2,
  "ci_pipeline_schedules": 10,
  "ci_needs_size_limit": 50,
  "ci_registered_group_runners": 1000,
  "ci_registered_project_runners": 1000,
  "conan_max_file_size": 3221225472,
  "enforcement_limit": 10000,
  "generic_packages_max_file_size": 5368709120,
  "helm_max_file_size": 5242880,
  "notification_limit": 10000,
  "maven_max_file_size": 3221225472,
  "npm_max_file_size": 524288000,
  "nuget_max_file_size": 524288000,
  "pypi_max_file_size": 3221225472,
  "terraform_module_max_file_size": 1073741824,
  "storage_size_limit": 15000
}

Change plan limits

Modify the limits of a plan on the GitLab instance.

PUT /application/plan_limits
AttributeTypeRequiredDescription
plan_namestringyesName of the plan to update.
ci_pipeline_sizeintegernoMaximum number of jobs in a single pipeline. Introduced in GitLab 15.0.
ci_active_jobsintegernoTotal number of jobs in currently active pipelines. Introduced in GitLab 15.0.
ci_project_subscriptionsintegernoMaximum number of pipeline subscriptions to and from a project. Introduced in GitLab 15.0.
ci_pipeline_schedulesintegernoMaximum number of pipeline schedules. Introduced in GitLab 15.0.
ci_needs_size_limitintegernoMaximum number of DAG dependencies that a job can have. Introduced in GitLab 15.0.
ci_registered_group_runnersintegernoMaximum number of runners registered per group. Introduced in GitLab 15.0.
ci_registered_project_runnersintegernoMaximum number of runners registered per project. Introduced in GitLab 15.0.
conan_max_file_sizeintegernoMaximum Conan package file size in bytes.
enforcement_limitintegernoMaximum storage size for root namespace limit enforcement in MiB.
generic_packages_max_file_sizeintegernoMaximum generic package file size in bytes.
helm_max_file_sizeintegernoMaximum Helm chart file size in bytes.
maven_max_file_sizeintegernoMaximum Maven package file size in bytes.
notification_limitintegernoMaximum storage size for root namespace limit notifications in MiB.
npm_max_file_sizeintegernoMaximum NPM package file size in bytes.
nuget_max_file_sizeintegernoMaximum NuGet package file size in bytes.
pypi_max_file_sizeintegernoMaximum PyPI package file size in bytes.
terraform_module_max_file_sizeintegernoMaximum Terraform Module package file size in bytes.
storage_size_limitintegernoMaximum storage size for the root namespace in MiB.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/application/plan_limits?plan_name=default&conan_max_file_size=3221225472"

Example response:

{
  "ci_pipeline_size": 0,
  "ci_active_jobs": 0,
  "ci_project_subscriptions": 2,
  "ci_pipeline_schedules": 10,
  "ci_needs_size_limit": 50,
  "ci_registered_group_runners": 1000,
  "ci_registered_project_runners": 1000,
  "conan_max_file_size": 3221225472,
  "generic_packages_max_file_size": 5368709120,
  "helm_max_file_size": 5242880,
  "maven_max_file_size": 3221225472,
  "npm_max_file_size": 524288000,
  "nuget_max_file_size": 524288000,
  "pypi_max_file_size": 3221225472,
  "terraform_module_max_file_size": 1073741824
}