Use this API to manage projects and the resources they contain, including:

  • Project settings, visibility, access permissions, and security settings.
  • Archiving, transferring, forking, and starring projects.
  • Project issues, issue statistics, and project statistics.
  • Markdown uploads referenced in issues, merge requests, snippets, or wiki pages.
  • Protection rules for container image tags, container repositories, and packages.

If a user is not a member of a private project, a GET request on that project results in a 404 status code.

List CODEOWNERS entries that match a file path

GET /api/v4/code-owners-for-file

Parameters

NameTypeDescription
project_path
Query, required
String—
file_path
Query, required
String—
ref
Query
String—

Responses

CodeDescriptionSchema
200OK—
400Bad Request—
403Forbidden—
404Not found—

List all projects

GET /api/v4/projects

Lists all projects. Unauthenticated requests return only public projects with a limited subset of attributes. You can filter responses by custom attributes.

Parameters

NameTypeDescription
order_by
Query
StringReturn projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to
Allowed values: id, name, path, created_at, updated_at, last_activity_at, similarity, star_count, storage_size, repository_size, wiki_size, packages_size
Default: created_at
sort
Query
StringReturn projects sorted in ascending and descending order
Allowed values: asc, desc
Default: desc
archived
Query
BooleanLimit by archived status
visibility
Query
StringLimit by visibility
Allowed values: private, internal, public
search
Query
StringReturn list of projects matching the search criteria
search_namespaces
Query
BooleanInclude ancestor namespaces when matching search criteria
owned
Query
BooleanLimit by owned by authenticated user
Default: false
starred
Query
BooleanLimit by starred status
Default: false
imported
Query
BooleanLimit by imported by authenticated user
Default: false
membership
Query
BooleanLimit by projects that the current user is a member of
Default: false
with_issues_enabled
Query
BooleanLimit by enabled issues feature
Default: false
with_merge_requests_enabled
Query
BooleanLimit by enabled merge requests feature
Default: false
with_programming_language
Query
StringLimit to repositories which use the given programming language
min_access_level
Query
IntegerLimit by minimum access level of authenticated user
Allowed values: 10, 15, 20, 25, 30, 40, 50
id_after
Query
IntegerLimit results to projects with IDs greater than the specified ID
id_before
Query
IntegerLimit results to projects with IDs less than the specified ID
last_activity_after
Query
String (date-time)Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
last_activity_before
Query
String (date-time)Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
repository_storage
Query
StringWhich storage shard the repository is on. Available only to admins
topic
Query
Array of stringsComma-separated list of topics. Limit results to projects having all topics
topic_id
Query
IntegerLimit results to projects with the assigned topic given by the topic ID
updated_before
Query
String (date-time)Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
updated_after
Query
String (date-time)Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
include_pending_delete
Query
BooleanInclude projects in pending delete state. Can only be set by admins
marked_for_deletion_on
Query
String (date)Date when the project was marked for deletion
active
Query
BooleanLimit by projects that are not archived and not marked for deletion
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20
simple
Query
BooleanReturn only the ID, URL, name, and path of each project
Default: false
statistics
Query
BooleanInclude project statistics
Default: false
with_custom_attributes
Query
BooleanInclude custom attributes in the response
Default: false
custom_attributes
Query
ObjectFilter with custom attributes

Responses

CodeDescriptionSchema
200OKAPIEntitiesBasicProjectDetails
400Bad request—

Create a project

POST /api/v4/projects

Creates a project owned by the authenticated user. If your HTTP repository is not publicly accessible, add authentication information to the URL https://username:password@gitlab.company.com/group/project.git, where password is a public access key with the api scope.

Request body (multipart/form-data)

PropertyTypeDescription
allow_merge_on_skipped_pipelineBooleanAllow to merge if pipeline is skipped
analytics_access_levelStringAnalytics access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
auto_cancel_pending_pipelinesStringAuto-cancel pending pipelines
Allowed values: disabled, enabled
auto_devops_deploy_strategyStringAuto Deploy strategy
Allowed values: continuous, manual, timed_incremental
auto_devops_enabledBooleanFlag indication if Auto DevOps is enabled
autoclose_referenced_issuesBooleanFlag indication if referenced issues auto-closing is enabled
avatarString (binary)Avatar image for project
build_git_strategyStringThe Git strategy. Defaults to fetch
Allowed values: fetch, clone
build_timeoutIntegerBuild timeout
builds_access_levelStringBuilds access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
ci_config_pathStringThe path to CI config file. Defaults to .gitlab-ci.yml
cicd_catalog_enabledBooleanSet whether the project is a CI/CD catalog project
container_expiration_policy_attributesObjectObject that contains information on the container expiration policy
container_expiration_policy_attributes.cadenceStringContainer expiration policy cadence for recurring job
container_expiration_policy_attributes.enabledBooleanFlag indication if container expiration policy is enabled
container_expiration_policy_attributes.keep_nIntegerContainer expiration policy number of images to keep
container_expiration_policy_attributes.name_regexStringContainer expiration policy regex for image removal
container_expiration_policy_attributes.name_regex_keepStringContainer expiration policy regex for image retention
container_expiration_policy_attributes.older_thanStringContainer expiration policy remove images older than value
container_registry_access_levelStringControls visibility of the container registry. One of disabled, private or enabled. private will make the container registry accessible only to project members (reporter role and above). enabled will make the container registry accessible to everyone who has access to the project. disabled will disable the container registry
Allowed values: disabled, private, enabled
container_registry_enabledBooleanDeprecated: Use :container_registry_access_level instead. Flag indication if the container registry is enabled for that project
default_branchStringThe default branch of the project
Example: main
descriptionStringThe description of the project
emails_disabledBooleanDeprecated: Use emails_enabled instead
emails_enabledBooleanEnable email notifications
enforce_auth_checks_on_uploadsBooleanEnforce auth check on uploads
environments_access_levelStringEnvironments access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
feature_flags_access_levelStringFeature flags access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
forking_access_levelStringForks access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
group_runners_enabledBooleanFlag indication if group runners are enabled for that project
import_urlStringURL from which the project is imported. Mutually exclusive with template_name, template_project_id
infrastructure_access_levelStringInfrastructure access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
initialize_with_readmeBooleanInitialize a project with a README.md
issue_branch_templateStringTemplate used to create a branch from an issue
issues_access_levelStringIssues access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
issues_enabledBooleanFlag indication if the issue tracker is enabled
jobs_enabledBooleanFlag indication if jobs are enabled
lfs_enabledBooleanFlag indication if Git LFS is enabled for that project
merge_commit_templateStringTemplate used to create merge commit message
merge_methodStringThe merge method used when merging merge requests
Allowed values: ff, rebase_merge, merge
merge_request_title_regexStringRegex pattern for validating merge request titles
Maximum length: 255
merge_request_title_regex_descriptionStringExample merge request title that matches merge_request_title_regex. Shown when a title does not match
Maximum length: 255
merge_requests_access_levelStringMerge requests access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
merge_requests_enabledBooleanFlag indication if merge requests are enabled
model_experiments_access_levelStringModel experiments access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
model_registry_access_levelStringModel registry access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
monitor_access_levelStringMonitor access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
mr_default_target_selfBooleanMerge requests of this forked project targets itself by default
mr_default_title_templateStringTemplate used to generate the default merge request title. Maximum 100 characters
Maximum length: 100
nameStringThe name of the project
Example: New Project
namespace_idIntegerNamespace ID for the new project. Default to the user namespace
only_allow_merge_if_all_discussions_are_resolvedBooleanOnly allow to merge if all threads are resolved
only_allow_merge_if_pipeline_succeedsBooleanOnly allow to merge if builds succeed
package_registry_access_levelStringControls visibility of the package registry. One of disabled, private, enabled or public. private will make the package registry accessible only to project members (reporter role and above). enabled will make the package registry accessible to everyone who has access to the project. public will make the package registry accessible to everyone. disabled will disable the package registry
Allowed values: disabled, private, enabled, public
packages_enabledBooleanDeprecated: Use :package_registry_access_level instead. Enable project packages feature
pages_access_levelStringPages access level. One of disabled, private, enabled or public
Allowed values: disabled, private, enabled, public
pathStringThe path of the repository
Example: new_project
printing_merge_request_link_enabledBooleanShow link to create/view merge request when pushing from the command line
public_buildsBooleanDeprecated: Use public_jobs instead
public_jobsBooleanPerform public builds
releases_access_levelStringReleases access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
remove_source_branch_after_mergeBooleanRemove the source branch by default after merge
repository_access_levelStringRepository access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
repository_object_formatStringThe object format of the project repository
Allowed values: sha1, sha256
repository_storageStringWhich storage shard the repository is on. Available only to admins
request_access_enabledBooleanAllow users to request member access
resolve_outdated_diff_discussionsBooleanAutomatically resolve merge request diff threads on lines changed with a push
resource_group_default_process_modeStringThe process mode of the resource group
Allowed values: unordered, oldest_first, newest_first, newest_ready_first
security_and_compliance_access_levelStringSecurity and compliance access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
service_desk_enabledBooleanDisable or enable the service desk
shared_runners_enabledBooleanFlag indication if shared runners are enabled for that project
show_default_award_emojisBooleanShow default award emojis
show_diff_preview_in_emailBooleanInclude the code diff preview in merge request notification emails
snippets_access_levelStringSnippets access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
snippets_enabledBooleanFlag indication if snippets are enabled
squash_commit_templateStringTemplate used to create squash commit message
squash_optionStringSquash default for project. One of never, always, default_on, or default_off
Allowed values: never, always, default_on, default_off
suggestion_commit_messageStringThe commit message used to apply merge request suggestions
tag_listArray of stringsDeprecated: Use :topics instead
template_nameStringName of template from which to create project. Mutually exclusive with import_url, template_project_id
template_project_idIntegerProject ID of template from which to create project. Mutually exclusive with import_url, template_name
topicsArray of stringsThe list of topics for a project
visibilityStringThe visibility of the project
Allowed values: private, internal, public
warn_about_potentially_unwanted_charactersBooleanWarn about potentially unwanted characters
wiki_access_levelStringWiki access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
wiki_enabledBooleanFlag indication if the wiki is enabled

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProject
400Bad request—
403Unauthenticated—
404Not found—

Create a project for a user

POST /api/v4/projects/user/{user_id}

Creates a project for a user. Administrators only.

Parameters

NameTypeDescription
user_id
Path, required
IntegerThe ID of a user
Example: 1

Request body (multipart/form-data)

PropertyTypeDescription
allow_merge_on_skipped_pipelineBooleanAllow to merge if pipeline is skipped
analytics_access_levelStringAnalytics access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
auto_cancel_pending_pipelinesStringAuto-cancel pending pipelines
Allowed values: disabled, enabled
auto_devops_deploy_strategyStringAuto Deploy strategy
Allowed values: continuous, manual, timed_incremental
auto_devops_enabledBooleanFlag indication if Auto DevOps is enabled
autoclose_referenced_issuesBooleanFlag indication if referenced issues auto-closing is enabled
avatarString (binary)Avatar image for project
build_git_strategyStringThe Git strategy. Defaults to fetch
Allowed values: fetch, clone
build_timeoutIntegerBuild timeout
builds_access_levelStringBuilds access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
ci_config_pathStringThe path to CI config file. Defaults to .gitlab-ci.yml
cicd_catalog_enabledBooleanSet whether the project is a CI/CD catalog project
container_expiration_policy_attributesObjectObject that contains information on the container expiration policy
container_expiration_policy_attributes.cadenceStringContainer expiration policy cadence for recurring job
container_expiration_policy_attributes.enabledBooleanFlag indication if container expiration policy is enabled
container_expiration_policy_attributes.keep_nIntegerContainer expiration policy number of images to keep
container_expiration_policy_attributes.name_regexStringContainer expiration policy regex for image removal
container_expiration_policy_attributes.name_regex_keepStringContainer expiration policy regex for image retention
container_expiration_policy_attributes.older_thanStringContainer expiration policy remove images older than value
container_registry_access_levelStringControls visibility of the container registry. One of disabled, private or enabled. private will make the container registry accessible only to project members (reporter role and above). enabled will make the container registry accessible to everyone who has access to the project. disabled will disable the container registry
Allowed values: disabled, private, enabled
container_registry_enabledBooleanDeprecated: Use :container_registry_access_level instead. Flag indication if the container registry is enabled for that project
default_branchStringThe default branch of the project
Example: main
descriptionStringThe description of the project
emails_disabledBooleanDeprecated: Use emails_enabled instead
emails_enabledBooleanEnable email notifications
enforce_auth_checks_on_uploadsBooleanEnforce auth check on uploads
environments_access_levelStringEnvironments access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
feature_flags_access_levelStringFeature flags access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
forking_access_levelStringForks access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
group_runners_enabledBooleanFlag indication if group runners are enabled for that project
import_urlStringURL from which the project is imported. Mutually exclusive with template_name, template_project_id
infrastructure_access_levelStringInfrastructure access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
initialize_with_readmeBooleanInitialize a project with a README.md
issue_branch_templateStringTemplate used to create a branch from an issue
issues_access_levelStringIssues access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
issues_enabledBooleanFlag indication if the issue tracker is enabled
jobs_enabledBooleanFlag indication if jobs are enabled
lfs_enabledBooleanFlag indication if Git LFS is enabled for that project
merge_commit_templateStringTemplate used to create merge commit message
merge_methodStringThe merge method used when merging merge requests
Allowed values: ff, rebase_merge, merge
merge_request_title_regexStringRegex pattern for validating merge request titles
Maximum length: 255
merge_request_title_regex_descriptionStringExample merge request title that matches merge_request_title_regex. Shown when a title does not match
Maximum length: 255
merge_requests_access_levelStringMerge requests access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
merge_requests_enabledBooleanFlag indication if merge requests are enabled
model_experiments_access_levelStringModel experiments access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
model_registry_access_levelStringModel registry access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
monitor_access_levelStringMonitor access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
mr_default_target_selfBooleanMerge requests of this forked project targets itself by default
mr_default_title_templateStringTemplate used to generate the default merge request title. Maximum 100 characters
Maximum length: 100
name
Required
StringThe name of the project
Example: New Project
namespace_idIntegerNamespace ID for the new project. Default to the user namespace
only_allow_merge_if_all_discussions_are_resolvedBooleanOnly allow to merge if all threads are resolved
only_allow_merge_if_pipeline_succeedsBooleanOnly allow to merge if builds succeed
package_registry_access_levelStringControls visibility of the package registry. One of disabled, private, enabled or public. private will make the package registry accessible only to project members (reporter role and above). enabled will make the package registry accessible to everyone who has access to the project. public will make the package registry accessible to everyone. disabled will disable the package registry
Allowed values: disabled, private, enabled, public
packages_enabledBooleanDeprecated: Use :package_registry_access_level instead. Enable project packages feature
pages_access_levelStringPages access level. One of disabled, private, enabled or public
Allowed values: disabled, private, enabled, public
pathStringThe path of the repository
Example: new_project
printing_merge_request_link_enabledBooleanShow link to create/view merge request when pushing from the command line
public_buildsBooleanDeprecated: Use public_jobs instead
public_jobsBooleanPerform public builds
releases_access_levelStringReleases access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
remove_source_branch_after_mergeBooleanRemove the source branch by default after merge
repository_access_levelStringRepository access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
repository_object_formatStringThe object format of the project repository
Allowed values: sha1, sha256
repository_storageStringWhich storage shard the repository is on. Available only to admins
request_access_enabledBooleanAllow users to request member access
resolve_outdated_diff_discussionsBooleanAutomatically resolve merge request diff threads on lines changed with a push
resource_group_default_process_modeStringThe process mode of the resource group
Allowed values: unordered, oldest_first, newest_first, newest_ready_first
security_and_compliance_access_levelStringSecurity and compliance access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
service_desk_enabledBooleanDisable or enable the service desk
shared_runners_enabledBooleanFlag indication if shared runners are enabled for that project
show_default_award_emojisBooleanShow default award emojis
show_diff_preview_in_emailBooleanInclude the code diff preview in merge request notification emails
snippets_access_levelStringSnippets access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
snippets_enabledBooleanFlag indication if snippets are enabled
squash_commit_templateStringTemplate used to create squash commit message
squash_optionStringSquash default for project. One of never, always, default_on, or default_off
Allowed values: never, always, default_on, default_off
suggestion_commit_messageStringThe commit message used to apply merge request suggestions
tag_listArray of stringsDeprecated: Use :topics instead
template_nameStringName of template from which to create project. Mutually exclusive with import_url, template_project_id
template_project_idIntegerProject ID of template from which to create project. Mutually exclusive with import_url, template_name
topicsArray of stringsThe list of topics for a project
visibilityStringThe visibility of the project
Allowed values: private, internal, public
warn_about_potentially_unwanted_charactersBooleanWarn about potentially unwanted characters
wiki_access_levelStringWiki access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
wiki_enabledBooleanFlag indication if the wiki is enabled

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProject
400Bad request—
403Unauthenticated—
404Not found—

Retrieve a project

GET /api/v4/projects/{id}

Retrieves details on a specified project. This endpoint can be accessed without authentication if the project is publicly accessible.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
statistics
Query
BooleanInclude project statistics
Default: false
with_custom_attributes
Query
BooleanInclude custom attributes in the response
Default: false
custom_attributes
Query
ObjectFilter with custom attributes
license
Query
BooleanInclude project license data
Default: false

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectsWithAccessAndCatalogSetting
400Bad Request—
404Not Found—

Update a project

PUT /api/v4/projects/{id}

Updates an existing project. If your HTTP repository is not publicly accessible, add authentication information to the URL https://username:password@gitlab.company.com/group/project.git, where password is a public access key with the api scope.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (multipart/form-data)

PropertyTypeDescription
allow_merge_on_skipped_pipelineBooleanAllow to merge if pipeline is skipped
allow_pipeline_trigger_approve_deploymentBooleanAllow the pipeline triggerer to approve deployments
analytics_access_levelStringAnalytics access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
auto_cancel_pending_pipelinesStringAuto-cancel pending pipelines
Allowed values: disabled, enabled
auto_devops_deploy_strategyStringAuto Deploy strategy
Allowed values: continuous, manual, timed_incremental
auto_devops_enabledBooleanFlag indication if Auto DevOps is enabled
autoclose_referenced_issuesBooleanFlag indication if referenced issues auto-closing is enabled
automatic_rebase_enabledBooleanEnable automatic rebase of the source branch before merge
avatarString (binary)Avatar image for project
build_git_strategyStringThe Git strategy. Defaults to fetch
Allowed values: fetch, clone
build_timeoutIntegerBuild timeout
builds_access_levelStringBuilds access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
ci_allow_fork_pipelines_to_run_in_parent_projectBooleanAllow fork merge request pipelines to run in parent project
ci_config_pathStringThe path to CI config file. Defaults to .gitlab-ci.yml
ci_default_git_depthIntegerDefault number of revisions for shallow cloning
ci_delete_pipelines_in_secondsIntegerPipelines older than the configured time are deleted
ci_display_pipeline_variablesBooleanDisplay all manually-defined variables in the pipeline details page after running a pipeline manually
ci_forward_deployment_enabledBooleanPrevent older deployment jobs that are still pending
ci_forward_deployment_rollback_allowedBooleanAllow job retries for rollback deployments
ci_id_token_sub_claim_componentsArray of stringsClaims that will be used to build the sub claim in id tokens
ci_pipeline_variables_minimum_override_roleStringLimit ability to override CI/CD variables when triggering a pipeline to only users with at least the set minimum role
Allowed values: no_one_allowed, developer, maintainer, owner
ci_push_repository_for_job_token_allowedBooleanAllow pushing to this project’s repository by authenticating with a CI/CD job token generated in this project
ci_separated_cachesBooleanEnable or disable separated caches based on branch protection
ci_skip_branch_pipelines_for_mrsBooleanSkip the branch pipeline when a branch has an open merge request, and run only the merge request pipeline
cicd_catalog_enabledBooleanSet whether the project is a CI/CD catalog project
container_expiration_policy_attributesObjectObject that contains information on the container expiration policy
container_expiration_policy_attributes.cadenceStringContainer expiration policy cadence for recurring job
container_expiration_policy_attributes.enabledBooleanFlag indication if container expiration policy is enabled
container_expiration_policy_attributes.keep_nIntegerContainer expiration policy number of images to keep
container_expiration_policy_attributes.name_regexStringContainer expiration policy regex for image removal
container_expiration_policy_attributes.name_regex_keepStringContainer expiration policy regex for image retention
container_expiration_policy_attributes.older_thanStringContainer expiration policy remove images older than value
container_registry_access_levelStringControls visibility of the container registry. One of disabled, private or enabled. private will make the container registry accessible only to project members (reporter role and above). enabled will make the container registry accessible to everyone who has access to the project. disabled will disable the container registry
Allowed values: disabled, private, enabled
container_registry_enabledBooleanDeprecated: Use :container_registry_access_level instead. Flag indication if the container registry is enabled for that project
default_branchStringThe default branch of the project
Example: main
descriptionStringThe description of the project
emails_disabledBooleanDeprecated: Use emails_enabled instead
emails_enabledBooleanEnable email notifications
enforce_auth_checks_on_uploadsBooleanEnforce auth check on uploads
environments_access_levelStringEnvironments access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
fe_project_setting_attributesObjectFE project settings attributes
fe_project_setting_attributes.opensearch_indexed_branches_regexStringRegex for indexing additional branches in OpenSearch (default branch is always indexed)
feature_flags_access_levelStringFeature flags access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
feature_flags_minimum_roleStringLimit the ability to create, update, toggle, and delete feature flags to only users with at least the set minimum role
Allowed values: no_one_allowed, developer, maintainer, owner
forking_access_levelStringForks access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
group_runners_enabledBooleanFlag indication if group runners are enabled for that project
infrastructure_access_levelStringInfrastructure access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
issue_branch_templateStringTemplate used to create a branch from an issue
issues_access_levelStringIssues access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
issues_enabledBooleanFlag indication if the issue tracker is enabled
jobs_enabledBooleanFlag indication if jobs are enabled
keep_latest_artifactBooleanIndicates if the latest artifact should be kept for this project
lfs_enabledBooleanFlag indication if Git LFS is enabled for that project
max_artifacts_sizeIntegerSet the maximum file size for each job’s artifacts
max_pipelines_per_merge_trainIntegerSet the maximum number of parallel pipelines for a merge train
merge_commit_templateStringTemplate used to create merge commit message
merge_methodStringThe merge method used when merging merge requests
Allowed values: ff, rebase_merge, merge
merge_pipelines_enabledBooleanEnable or disable merged results pipelines
merge_request_title_regexStringRegex pattern for validating merge request titles
Maximum length: 255
merge_request_title_regex_descriptionStringExample merge request title that matches merge_request_title_regex. Shown when a title does not match
Maximum length: 255
merge_requests_access_levelStringMerge requests access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
merge_requests_enabledBooleanFlag indication if merge requests are enabled
merge_requests_templateString—
merge_train_enforcedBooleanRequire merge requests to merge through a merge train
merge_trains_enabledBooleanEnable or disable merge trains
merge_trains_skip_train_allowedBooleanAllow merge requests to merge immediately without restarting the merge train
model_experiments_access_levelStringModel experiments access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
model_registry_access_levelStringModel registry access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
monitor_access_levelStringMonitor access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
mr_default_target_selfBooleanMerge requests of this forked project targets itself by default
mr_default_title_templateStringTemplate used to generate the default merge request title. Maximum 100 characters
Maximum length: 100
nameStringThe name of the project
Example: project
only_allow_merge_if_all_discussions_are_resolvedBooleanOnly allow to merge if all threads are resolved
only_allow_merge_if_pipeline_succeedsBooleanOnly allow to merge if builds succeed
package_registry_access_levelStringControls visibility of the package registry. One of disabled, private, enabled or public. private will make the package registry accessible only to project members (reporter role and above). enabled will make the package registry accessible to everyone who has access to the project. public will make the package registry accessible to everyone. disabled will disable the package registry
Allowed values: disabled, private, enabled, public
packages_enabledBooleanDeprecated: Use :package_registry_access_level instead. Enable project packages feature
pages_access_levelStringPages access level. One of disabled, private, enabled or public
Allowed values: disabled, private, enabled, public
pathStringThe path of the repository
Example: group/project
printing_merge_request_link_enabledBooleanShow link to create/view merge request when pushing from the command line
protect_merge_request_pipelinesBooleanMake protected CI/CD variables and runners available in merge request pipelines
public_buildsBooleanDeprecated: Use public_jobs instead
public_jobsBooleanPerform public builds
releases_access_levelStringReleases access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
remove_source_branch_after_mergeBooleanRemove the source branch by default after merge
repository_access_levelStringRepository access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
repository_storageStringWhich storage shard the repository is on. Available only to admins
request_access_enabledBooleanAllow users to request member access
resolve_outdated_diff_discussionsBooleanAutomatically resolve merge request diff threads on lines changed with a push
resource_group_default_process_modeStringThe process mode of the resource group
Allowed values: unordered, oldest_first, newest_first, newest_ready_first
restrict_user_defined_variablesBooleanRestrict use of user-defined variables when triggering a pipeline
security_and_compliance_access_levelStringSecurity and compliance access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
service_desk_enabledBooleanDisable or enable the service desk
shared_runners_enabledBooleanFlag indication if shared runners are enabled for that project
show_default_award_emojisBooleanShow default award emojis
show_diff_preview_in_emailBooleanInclude the code diff preview in merge request notification emails
snippets_access_levelStringSnippets access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
snippets_enabledBooleanFlag indication if snippets are enabled
squash_commit_templateStringTemplate used to create squash commit message
squash_optionStringSquash default for project. One of never, always, default_on, or default_off
Allowed values: never, always, default_on, default_off
suggestion_commit_messageStringThe commit message used to apply merge request suggestions
tag_listArray of stringsDeprecated: Use :topics instead
topicsArray of stringsThe list of topics for a project
visibilityStringThe visibility of the project
Allowed values: private, internal, public
warn_about_potentially_unwanted_charactersBooleanWarn about potentially unwanted characters
wiki_access_levelStringWiki access level. One of disabled, private or enabled
Allowed values: disabled, private, enabled
wiki_enabledBooleanFlag indication if the wiki is enabled

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectsWithCatalogSetting
400Bad request—
403Unauthenticated—
404Not Found—

Delete a project

DELETE /api/v4/projects/{id}

Deletes a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
202Accepted—
400Bad Request—
403Unauthenticated—
404Not found—

Search a project

GET /api/v4/projects/{id}/(-/)search

Searches for content in a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
search
Query, required
StringThe expression it should be searched for
scope
Query, required
StringThe scope of the search
Allowed values: issues, work_items, merge_requests, milestones, notes, wiki_blobs, commits, blobs, users
Minimum length: 1
ref
Query
StringThe name of a repository branch or tag. If not given, the default branch is used
state
Query
StringFilter results by state
Allowed values: all, opened, closed, merged
confidential
Query
BooleanFilter results by confidentiality
type
Query
Array of stringsFilter work items by type. Only applies to work_items scope. Available types: issue, task, incident, ticket
fields
Query
Array of stringsArray of fields to search. Only “title” is supported (work_items / issues scope)
language
Query
Array of stringsArray of languages to filter blobs by language
label_name
Query
Array of stringsArray of labels to filter work_items / issues / merge_requests by label
source_branch
Query
StringFilter merge requests by source branch
Maximum length: 255
target_branch
Query
StringFilter merge requests by target branch
Maximum length: 255
not_source_branch
Query
StringExclude merge requests by source branch
Maximum length: 255
not_target_branch
Query
StringExclude merge requests by target branch
Maximum length: 255
author_username
Query
StringFilter merge requests by author username
Maximum length: 255
not_author_username
Query
StringExclude merge requests by author username
Maximum length: 255
num_context_lines
Query
IntegerNumber of context lines around each match. Only supported for blobs scope
Maximum: 20
Minimum: 0
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OK—
400Bad Request—
404Not Found—

Archive a project

POST /api/v4/projects/{id}/archive

Archives a specified project. You must be an administrator or be assigned the Owner role on the project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProject
400Bad Request—
403Unauthenticated—
404Not Found—

Create a fork of a project

POST /api/v4/projects/{id}/fork

Creates a fork of a project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (application/json)

PropertyTypeDescription
branchesStringBranches to fork
descriptionStringThe description that will be assigned to the fork
Example: Description
mr_default_target_selfBooleanMerge requests of this forked project targets itself by default
nameStringThe name that will be assigned to the fork
Example: Fork
namespaceString(deprecated) The ID or name of the namespace that the project will be forked into
Example: gitlab
namespace_idIntegerThe ID of the namespace that the project will be forked into
Example: 1
namespace_pathStringThe path of the namespace that the project will be forked into
Example: new_path/gitlab
pathStringThe path that will be assigned to the fork
Example: fork
visibilityStringThe visibility of the fork
Allowed values: private, internal, public

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProject
400Bad Request—
403Unauthenticated—
404Not found—
409Conflict—

Delete a fork relationship

DELETE /api/v4/projects/{id}/fork

Deletes a fork relationship between projects.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
204No Content—
304Not modified—
400Bad Request—
403Unauthenticated—
404Not found—

Create a fork relationship

POST /api/v4/projects/{id}/fork/{forked_from_id}

Creates a fork relationship between a project and an upstream project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
forked_from_id
Path, required
StringThe ID of the project it was forked from
Example: gitlab

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProject
400Bad Request—
401Unauthorized—
403Unauthenticated—
404Not found—

List all forks of a project

GET /api/v4/projects/{id}/forks

Lists all forks of a project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
order_by
Query
StringReturn projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to
Allowed values: id, name, path, created_at, updated_at, last_activity_at, similarity, star_count, storage_size, repository_size, wiki_size, packages_size
Default: created_at
sort
Query
StringReturn projects sorted in ascending and descending order
Allowed values: asc, desc
Default: desc
archived
Query
BooleanLimit by archived status
visibility
Query
StringLimit by visibility
Allowed values: private, internal, public
search
Query
StringReturn list of projects matching the search criteria
search_namespaces
Query
BooleanInclude ancestor namespaces when matching search criteria
owned
Query
BooleanLimit by owned by authenticated user
Default: false
starred
Query
BooleanLimit by starred status
Default: false
imported
Query
BooleanLimit by imported by authenticated user
Default: false
membership
Query
BooleanLimit by projects that the current user is a member of
Default: false
with_issues_enabled
Query
BooleanLimit by enabled issues feature
Default: false
with_merge_requests_enabled
Query
BooleanLimit by enabled merge requests feature
Default: false
with_programming_language
Query
StringLimit to repositories which use the given programming language
min_access_level
Query
IntegerLimit by minimum access level of authenticated user
Allowed values: 10, 15, 20, 25, 30, 40, 50
id_after
Query
IntegerLimit results to projects with IDs greater than the specified ID
id_before
Query
IntegerLimit results to projects with IDs less than the specified ID
last_activity_after
Query
String (date-time)Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
last_activity_before
Query
String (date-time)Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
repository_storage
Query
StringWhich storage shard the repository is on. Available only to admins
topic
Query
Array of stringsComma-separated list of topics. Limit results to projects having all topics
topic_id
Query
IntegerLimit results to projects with the assigned topic given by the topic ID
updated_before
Query
String (date-time)Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
updated_after
Query
String (date-time)Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
include_pending_delete
Query
BooleanInclude projects in pending delete state. Can only be set by admins
marked_for_deletion_on
Query
String (date)Date when the project was marked for deletion
active
Query
BooleanLimit by projects that are not archived and not marked for deletion
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20
simple
Query
BooleanReturn only the ID, URL, name, and path of each project
Default: false
with_custom_attributes
Query
BooleanInclude custom attributes in the response
Default: false
custom_attributes
Query
ObjectFilter with custom attributes

Responses

CodeDescriptionSchema
200OKAPIEntitiesProject
400Bad Request—
404Not Found—

List all ancestor groups

GET /api/v4/projects/{id}/groups

Lists all ancestor groups for a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
search
Query
StringReturn list of groups matching the search criteria
Example: group
skip_groups
Query
Array of integersArray of group ids to exclude from list
with_shared
Query
BooleanInclude shared groups
Default: false
shared_visible_only
Query
BooleanLimit to shared groups user has access to
Default: false
shared_min_access_level
Query
IntegerLimit returned shared groups by minimum access level to the project
Allowed values: 10, 15, 20, 25, 30, 40, 50
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKAPIEntitiesPublicGroupDetails
400Bad Request—
403Unauthenticated—
404Not found—

Start the housekeeping task for a project

POST /api/v4/projects/{id}/housekeeping

Starts the housekeeping task for a project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (application/json)

PropertyTypeDescription
taskStringprune to trigger manual prune of unreachable objects or eager to trigger eager housekeeping
Allowed values: :eager, :prune
Default: :eager

Responses

CodeDescriptionSchema
201Created—
400Bad Request—
401Unauthorized—
403Unauthenticated—
404Not Found—
409Conflict—

Import members

POST /api/v4/projects/{id}/import_project_members/{project_id}

Imports members from another project. If the role of the importing member for the target project is a Maintainer, then members with the Owner role for the source project are imported with the Maintainer role. If the importing member is an Owner, then members with the Owner role for the source project are imported with the Owner role.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
project_id
Path, required
IntegerThe ID of the source project to import the members from

Responses

CodeDescriptionSchema
200OK—
400Bad Request—
403Forbidden - Project—
404Project Not Found—
422Import failed—

List all invited groups in a project

GET /api/v4/projects/{id}/invited_groups

Lists all invited groups in a project. Unauthenticated requests return only public invited groups. Limited to 60 requests a minute per user account for authenticated requires and per IP address for unauthenticated requests. Supports offset-based pagination (up to 50,000 projects) and keyset-based pagination (greater than 50,000 projects).

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
relation
Query
Array of stringsFilter by group relation
search
Query
StringSearch for a specific group
min_access_level
Query
IntegerLimit by minimum access level of authenticated user
Allowed values: 10, 15, 20, 25, 30, 40, 50
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20
with_custom_attributes
Query
BooleanInclude custom attributes in the response
Default: false
custom_attributes
Query
ObjectFilter with custom attributes

Responses

CodeDescriptionSchema
200OKAPIEntitiesGroup
400Bad Request—
404Not Found—

List all project issues

GET /api/v4/projects/{id}/issues

Lists all issues for a specified project. If the project is private, you need to provide credentials to authorize. In most cases, you should authenticate with a personal access token.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
with_labels_details
Query
BooleanReturn titles of labels and other details
Default: false
state
Query
StringReturn opened, closed, or all issues
Allowed values: opened, closed, all
Default: all
closed_by_id
Query
IntegerReturn issues which were closed by the user with the given ID
order_by
Query
StringReturn issues ordered by created_at, due_date, label_priority, milestone_due, popularity, priority, relative_position, title, or updated_at fields
Allowed values: created_at, due_date, label_priority, milestone_due, popularity, priority, relative_position, title, updated_at
Default: created_at
sort
Query
StringReturn issues sorted in asc or desc order
Allowed values: asc, desc
Default: desc
due_date
Query
StringReturn issues that have no due date (0), or whose due date is this week, this month, between two weeks ago and next month, or which are overdue. Accepts: overdue, week, month, next_month_and_previous_two_weeks, 0
Allowed values: 0, any, today, tomorrow, overdue, week, month, next_month_and_previous_two_weeks, ``
issue_type
Query
StringThe type of the issue. Accepts: issue, incident, test_case, requirement, task, ticket
Allowed values: issue, incident, test_case, requirement, task, ticket
labels
Query
Array of stringsComma-separated list of label names
milestone
Query
StringMilestone title. Mutually exclusive with milestone_id
milestone_id
Query
StringReturn issues assigned to milestones with the specified timebox value (“Any”, “None”, “Upcoming” or “Started”). Mutually exclusive with milestone
Allowed values: Any, None, Upcoming, Started
iids
Query
Array of integersThe IID array of issues
search
Query
StringSearch issues for text present in the title, description, or any combination of these
in
Query
Stringtitle, description, or a string joining them with comma
author_id
Query
IntegerReturn issues which are authored by the user with the given ID. Mutually exclusive with author_username
author_username
Query
StringReturn issues which are authored by the user with the given username. Mutually exclusive with author_id
assignee_id
Query
Integer or stringReturn issues which are assigned to the user with the given ID. Mutually exclusive with assignee_username
assignee_username
Query
Array of stringsReturn issues which are assigned to the user with the given username. Mutually exclusive with assignee_id
created_after
Query
String (date-time)Return issues created after the specified time
created_before
Query
String (date-time)Return issues created before the specified time
updated_after
Query
String (date-time)Return issues updated after the specified time
updated_before
Query
String (date-time)Return issues updated before the specified time
not
Query
ObjectFilters by the specified parameters
not[labels]
Query
Array of stringsComma-separated list of label names
not[milestone]
Query
StringMilestone title. Mutually exclusive with not[milestone_id]
not[milestone_id]
Query
StringReturn issues assigned to milestones without the specified timebox value (“Any”, “None”, “Upcoming” or “Started”). Mutually exclusive with not[milestone]
Allowed values: Any, None, Upcoming, Started
not[iids]
Query
Array of integersThe IID array of issues
not[author_id]
Query
IntegerReturn issues which are not authored by the user with the given ID. Mutually exclusive with not[author_username]
not[author_username]
Query
StringReturn issues which are not authored by the user with the given username. Mutually exclusive with not[author_id]
not[assignee_id]
Query
IntegerReturn issues which are not assigned to the user with the given ID. Mutually exclusive with not[assignee_username]
not[assignee_username]
Query
Array of stringsReturn issues which are not assigned to the user with the given username. Mutually exclusive with not[assignee_id]
scope
Query
StringReturn issues for the given scope: created_by_me, assigned_to_me or all
Allowed values: created-by-me, assigned-to-me, created_by_me, assigned_to_me, all
my_reaction_emoji
Query
StringReturn issues reacted by the authenticated user by the given emoji
confidential
Query
BooleanFilter confidential or public issues
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20
cursor
Query
StringCursor for obtaining the next set of records

Responses

CodeDescriptionSchema
200OKAPIEntitiesIssue
400Bad Request—
404Not Found—

Create an issue

POST /api/v4/projects/{id}/issues

Creates an issue for a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (application/json)

PropertyTypeDescription
add_labelsArray of stringsComma-separated list of label names
assignee_idInteger[Deprecated] The ID of a user to assign issue
assignee_idsArray of integersThe array of user IDs to assign issue
confidentialBooleanBoolean parameter if the issue should be confidential
created_atString (date-time)Date time when the issue was created. Available only for admins and project owners
descriptionStringThe description of an issue
discussion_lockedBooleanBoolean parameter indicating if the issue’s discussion is locked
discussion_to_resolveStringThe ID of a discussion to resolve, also pass merge_request_to_resolve_discussions_of
due_dateStringDate string in the format YEAR-MONTH-DAY
iidIntegerThe internal ID of a project issue. Available only for admins and project owners
issue_typeStringThe type of the issue. Accepts: issue, incident, test_case, requirement, task, ticket
Allowed values: issue, incident, test_case, requirement, task, ticket
labelsArray of stringsComma-separated list of label names
merge_request_to_resolve_discussions_ofIntegerThe IID of a merge request for which to resolve discussions
milestoneStringThe title of a project or ancestor-group milestone to assign the issue to. Mutually exclusive with milestone_id
Maximum length: 255
milestone_idIntegerThe ID of a milestone to assign issue. Mutually exclusive with milestone
remove_labelsArray of stringsComma-separated list of label names
severityStringThe severity of the issue. Only applies to incidents. Accepts: unknown, low, medium, high, critical
Allowed values: unknown, low, medium, high, critical
start_dateStringDate string in the format YEAR-MONTH-DAY
title
Required
StringThe title of an issue

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesIssue
400Bad Request—
404Not Found—

Retrieve a project issue

GET /api/v4/projects/{id}/issues/{issue_iid}

Retrieves a specified issue for a project. If the project is private or the issue is confidential, you need to provide credentials to authorize. In most cases, you should authenticate with a personal access token.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
issue_iid
Path, required
IntegerThe internal ID of a project issue

Responses

CodeDescriptionSchema
200OKAPIEntitiesIssue
400Bad Request—
404Not Found—

Update an issue

PUT /api/v4/projects/{id}/issues/{issue_iid}

Updates a specified issue for a project. This request is also used to close or reopen an issue using the state_event parameter. At least one of the following parameters is required for the request to be successful: assignee_id, assignee_ids, confidential, created_at, description, discussion_locked, due_date, issue_type, labels, milestone_id, state_event, title.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
issue_iid
Path, required
IntegerThe internal ID of a project issue

Request body (application/json)

PropertyTypeDescription
add_labelsArray of stringsComma-separated list of label names
assignee_idInteger[Deprecated] The ID of a user to assign issue
assignee_idsArray of integersThe array of user IDs to assign issue
confidentialBooleanBoolean parameter if the issue should be confidential
created_atString—
descriptionStringThe description of an issue
discussion_lockedBooleanBoolean parameter indicating if the issue’s discussion is locked
due_dateStringDate string in the format YEAR-MONTH-DAY
issue_typeStringThe type of the issue. Accepts: issue, incident, test_case, requirement, task, ticket
Allowed values: issue, incident, test_case, requirement, task, ticket
labelsArray of stringsComma-separated list of label names
milestoneStringThe title of a project or ancestor-group milestone to assign the issue to. Mutually exclusive with milestone_id
Maximum length: 255
milestone_idIntegerThe ID of a milestone to assign issue. Mutually exclusive with milestone
remove_labelsArray of stringsComma-separated list of label names
severityStringThe severity of the issue. Only applies to incidents. Accepts: unknown, low, medium, high, critical
Allowed values: unknown, low, medium, high, critical
start_dateStringDate string in the format YEAR-MONTH-DAY
state_eventStringState of the issue
Allowed values: reopen, close
titleStringThe title of an issue
updated_atString (date-time)Date time when the issue was updated. Available only for admins and project owners

Responses

CodeDescriptionSchema
200OKAPIEntitiesIssue
400Bad Request—
404Not Found—

Delete an issue

DELETE /api/v4/projects/{id}/issues/{issue_iid}

Deletes a specified issue.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
issue_iid
Path, required
IntegerThe internal ID of a project issue

Responses

CodeDescriptionSchema
204No Content—
400Bad Request—
404Not Found—

Clone an issue

POST /api/v4/projects/{id}/issues/{issue_iid}/clone

Clones a specified issue to a project. Copies as much data as possible as long as the target project contains equivalent criteria, such as labels or milestones. If you have insufficient permissions, an error message with status code 400 is returned.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
issue_iid
Path, required
IntegerThe internal ID of a project issue

Request body (application/json)

PropertyTypeDescription
to_project_id
Required
IntegerThe ID of the new project
with_notesBooleanClone issue with notes
Default: false

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesIssue
400Bad Request—
404Not Found—

List all merge requests that close an issue on merge

GET /api/v4/projects/{id}/issues/{issue_iid}/closed_by

Lists all merge requests that close a specified issue when merged. If the project is private or the issue is confidential, you need to provide credentials to authorize. In most cases, you should authenticate with a personal access token.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
issue_iid
Path, required
IntegerThe internal ID of a project issue

Responses

CodeDescriptionSchema
200OKAPIEntitiesMergeRequestBasic
400Bad Request—
404Not Found—

Move an issue

POST /api/v4/projects/{id}/issues/{issue_iid}/move

Moves a specified issue to a different project. If the target project is the source project or the user has insufficient permissions, an error message with status code 400 is returned. If a label or milestone with the same name also exists in the target project, it is then assigned to the issue being moved.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
issue_iid
Path, required
IntegerThe internal ID of a project issue

Request body (application/json)

PropertyTypeDescription
to_project_id
Required
IntegerThe ID of the new project

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesIssue
400Bad Request—
404Not Found—

Update the order of an issue

PUT /api/v4/projects/{id}/issues/{issue_iid}/reorder

Updates the order of a specified issue in a project. You can see the results when sorting issues manually.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
issue_iid
Path, required
IntegerThe internal ID of a project issue

Request body (application/json)

PropertyTypeDescription
move_after_idIntegerThe ID of the issue we want to be after
move_before_idIntegerThe ID of the issue we want to be before

Responses

CodeDescriptionSchema
200OKAPIEntitiesIssue
400Bad Request—
404Not Found—

Retrieve issues statistics for a project

GET /api/v4/projects/{id}/issues_statistics

Retrieves statistics for issues in a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
labels
Query
Array of stringsComma-separated list of label names
milestone
Query
StringMilestone title. Mutually exclusive with milestone_id
milestone_id
Query
StringReturn issues assigned to milestones with the specified timebox value (“Any”, “None”, “Upcoming” or “Started”). Mutually exclusive with milestone
Allowed values: Any, None, Upcoming, Started
iids
Query
Array of integersThe IID array of issues
search
Query
StringSearch issues for text present in the title, description, or any combination of these
in
Query
Stringtitle, description, or a string joining them with comma
author_id
Query
IntegerReturn issues which are authored by the user with the given ID. Mutually exclusive with author_username
author_username
Query
StringReturn issues which are authored by the user with the given username. Mutually exclusive with author_id
assignee_id
Query
Integer or stringReturn issues which are assigned to the user with the given ID. Mutually exclusive with assignee_username
assignee_username
Query
Array of stringsReturn issues which are assigned to the user with the given username. Mutually exclusive with assignee_id
created_after
Query
String (date-time)Return issues created after the specified time
created_before
Query
String (date-time)Return issues created before the specified time
updated_after
Query
String (date-time)Return issues updated after the specified time
updated_before
Query
String (date-time)Return issues updated before the specified time
not
Query
ObjectFilters by the specified parameters
not[labels]
Query
Array of stringsComma-separated list of label names
not[milestone]
Query
StringMilestone title. Mutually exclusive with not[milestone_id]
not[milestone_id]
Query
StringReturn issues assigned to milestones without the specified timebox value (“Any”, “None”, “Upcoming” or “Started”). Mutually exclusive with not[milestone]
Allowed values: Any, None, Upcoming, Started
not[iids]
Query
Array of integersThe IID array of issues
not[author_id]
Query
IntegerReturn issues which are not authored by the user with the given ID. Mutually exclusive with not[author_username]
not[author_username]
Query
StringReturn issues which are not authored by the user with the given username. Mutually exclusive with not[author_id]
not[assignee_id]
Query
IntegerReturn issues which are not assigned to the user with the given ID. Mutually exclusive with not[assignee_username]
not[assignee_username]
Query
Array of stringsReturn issues which are not assigned to the user with the given username. Mutually exclusive with not[assignee_id]
scope
Query
StringReturn issues for the given scope: created_by_me, assigned_to_me or all
Allowed values: created-by-me, assigned-to-me, created_by_me, assigned_to_me, all
my_reaction_emoji
Query
StringReturn issues reacted by the authenticated user by the given emoji
confidential
Query
BooleanFilter confidential or public issues

Responses

CodeDescriptionSchema
200OK—
400Bad Request—
404Not Found—

Retrieve programming language usage information

GET /api/v4/projects/{id}/languages

Retrieves information about all programming languages used in a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
200OK—
400Bad Request—
404Not found—

List all package protection rules

GET /api/v4/projects/{id}/packages/protection/rules

Lists all package protection rules for a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectsPackagesProtectionRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—

Create a package protection rule

POST /api/v4/projects/{id}/packages/protection/rules

Creates a package protection rule for a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (application/json)

PropertyTypeDescription
minimum_access_level_for_deleteStringMinimum GitLab access level required to delete a package. Valid values include null, owner or admin. If the value is null, the default minimum access level is maintainer. Must be provided when minimum_access_level_for_push is not set. Behind a feature flag named packages_protected_packages_delete. Disabled by default
Allowed values: owner, admin
minimum_access_level_for_pushStringMinimum GitLab access level required to push a package. Valid values include null, maintainer, owner or admin. If the value is null, the default minimum access level is developer. Must be provided when minimum_access_level_for_delete is not set
Allowed values: maintainer, owner, admin
package_name_pattern
Required
StringPackage name protected by the rule. For example @my-scope/my-package-*. Wildcard character * allowed
package_type
Required
StringPackage type protected by the rule. For example npm
Allowed values: cargo, conan, generic, helm, maven, npm, nuget, pypi, terraform_module
Minimum length: 1

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProjectsPackagesProtectionRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—
422Unprocessable Entity—

Update a package protection rule

PATCH /api/v4/projects/{id}/packages/protection/rules/{package_protection_rule_id}

Updates a package protection rule for a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
package_protection_rule_id
Path, required
IntegerThe ID of the package protection rule

Request body (application/json)

PropertyTypeDescription
minimum_access_level_for_deleteStringMinimum GitLab access level required to delete a package. Valid values include null, owner or admin. If the value is null, the default minimum access level is maintainer. Must be provided when minimum_access_level_for_push is not set. Behind a feature flag named packages_protected_packages_delete. Disabled by default
Allowed values: owner, admin
minimum_access_level_for_pushStringMinimum GitLab access level required to push a package. Valid values include null, maintainer, owner or admin. If the value is null, the default minimum access level is developer. Must be provided when minimum_access_level_for_delete is not set
Allowed values: maintainer, owner, admin
package_name_patternStringPackage name protected by the rule. For example @my-scope/my-package-*. Wildcard character * allowed
package_typeStringPackage type protected by the rule. For example npm
Allowed values: cargo, conan, generic, helm, maven, npm, nuget, pypi, terraform_module

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectsPackagesProtectionRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—
422Unprocessable Entity—

Delete a package protection rule

DELETE /api/v4/projects/{id}/packages/protection/rules/{package_protection_rule_id}

Deletes a package protection rule from a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
package_protection_rule_id
Path, required
IntegerThe ID of the package protection rule

Responses

CodeDescriptionSchema
204204 No Content—
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—

Check pages access of this project

GET /api/v4/projects/{id}/pages_access

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
200OK—
400Bad Request—
403Unauthenticated—
404Not Found—

List all container repository protection rules

GET /api/v4/projects/{id}/registry/protection/repository/rules

Lists all container repository protection rules for a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectsContainerRegistryProtectionRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—

Create a container repository protection rule

POST /api/v4/projects/{id}/registry/protection/repository/rules

Creates a container repository protection rule for a specified project to control who can push or delete container images.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (application/json)

PropertyTypeDescription
minimum_access_level_for_deleteStringMinimum GitLab access level to allow to delete container images in the container registry. For example maintainer, owner or admin
Allowed values: maintainer, owner, admin
minimum_access_level_for_pushStringMinimum GitLab access level to allow to push container images to the container registry. For example maintainer, owner or admin
Allowed values: maintainer, owner, admin
repository_path_pattern
Required
StringContainer repository path pattern protected by the protection rule. For example flight/flight-*. Wildcard character * allowed

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProjectsContainerRegistryProtectionRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—
422Unprocessable Entity—

Update a container repository protection rule

PATCH /api/v4/projects/{id}/registry/protection/repository/rules/{protection_rule_id}

Updates a container repository protection rule for a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
protection_rule_id
Path, required
IntegerThe ID of the container protection rule

Request body (application/json)

PropertyTypeDescription
minimum_access_level_for_deleteStringMinimum GitLab access level to allow to delete container images in the container registry. For example maintainer, owner or admin. To unset the value, use an empty string ""
Allowed values: maintainer, owner, admin, ``
minimum_access_level_for_pushStringMinimum GitLab access level to allow to push container images to the container registry. For example maintainer, owner or admin. To unset the value, use an empty string ""
Allowed values: maintainer, owner, admin, ``
repository_path_patternStringContainer repository path pattern protected by the protection rule. For example flight/flight-*. Wildcard character * allowed

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectsContainerRegistryProtectionRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—
422Unprocessable Entity—

Delete a container repository protection rule

DELETE /api/v4/projects/{id}/registry/protection/repository/rules/{protection_rule_id}

Deletes a specified container repository protection rule.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
protection_rule_id
Path, required
IntegerThe ID of the container protection rule

Responses

CodeDescriptionSchema
204204 No Content—
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—

List all container registry protection tag rules

GET /api/v4/projects/{id}/registry/protection/tag/rules

Lists all container registry protection tag rules for a project. This feature was introduced in GitLab 18.7.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectsContainerRegistryProtectionTagRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—

Create a container registry protection tag rule

POST /api/v4/projects/{id}/registry/protection/tag/rules

Creates a container registry protection tag rule for a project to control who can push or delete container tags. This feature was introduced in GitLab 18.8.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (application/json)

PropertyTypeDescription
minimum_access_level_for_delete
Required
StringMinimum GitLab access level required to delete container tags. For example, Maintainer, Owner, or Admin
Allowed values: maintainer, owner, admin
Minimum length: 1
minimum_access_level_for_push
Required
StringMinimum GitLab access level required to push container tags. For example, Maintainer, Owner, or Admin
Allowed values: maintainer, owner, admin
Minimum length: 1
tag_name_pattern
Required
StringContainer tag name pattern protected by the protection rule. For example, v*-release. Wildcard character * allowed

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProjectsContainerRegistryProtectionTagRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—
422Unprocessable Entity—

Update a container registry protection tag rule

PATCH /api/v4/projects/{id}/registry/protection/tag/rules/{protection_rule_id}

Updates a container registry protection tag rule for a project. This feature was introduced in GitLab 18.9.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
protection_rule_id
Path, required
IntegerThe ID of the container protection tag rule

Request body (application/json)

PropertyTypeDescription
minimum_access_level_for_deleteStringMinimum GitLab access level required to delete container tags. For example, Maintainer, Owner, or Admin. To unset the value, use an empty string ("")
Allowed values: maintainer, owner, admin, ``
minimum_access_level_for_pushStringMinimum GitLab access level required to push container tags. For example, Maintainer, Owner, or Admin. To unset the value, use an empty string ("")
Allowed values: maintainer, owner, admin, ``
tag_name_patternStringContainer tag name pattern protected by the protection rule. For example, v*-release. Wildcard character * allowed

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectsContainerRegistryProtectionTagRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—
422Unprocessable Entity—

Delete a container registry protection tag rule

DELETE /api/v4/projects/{id}/registry/protection/tag/rules/{protection_rule_id}

Deletes a container registry protection tag rule from a project. This feature was introduced in GitLab 18.9.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
protection_rule_id
Path, required
IntegerThe ID of the container protection tag rule

Responses

CodeDescriptionSchema
204Delete a container protection tag rule—
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—

Start a task to recalculate repository size for a project

POST /api/v4/projects/{id}/repository_size

This feature was introduced in GitLab 15.0.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
201Created—
400Bad Request—
401Unauthorized—
403Unauthenticated—
404Not Found—

Restore a project marked for deletion

POST /api/v4/projects/{id}/restore

Restores a specified project that was marked for deletion.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProject
400Bad Request—
404Not Found—

List all runners for a project

GET /api/v4/projects/{id}/runners

List all runners available in the project, including from ancestor groups and any allowed shared runners.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project owned by the authenticated user
scope
Query
StringDeprecated: Use type or status instead. The scope of runners to return
Allowed values: specific, shared, instance_type, group_type, project_type, active, paused, online, offline, never_contacted, stale
type
Query
StringThe type of runners to return
Allowed values: instance_type, group_type, project_type
paused
Query
BooleanWhether to include only runners that are accepting or ignoring new jobs
status
Query
StringThe status of runners to return
Allowed values: active, paused, online, offline, never_contacted, stale
tag_list
Query
Array of stringsA list of runner tags
Example: ["macos","shell"]
version_prefix
Query
StringThe version prefix of runners to return
Pattern: (?<=^|\n(?!$))[\d+.]+
Example: 15.1.
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKAPIEntitiesCiRunner
400Scope contains invalid value—
403No access granted—
404Not Found—

Assign a runner to a project

POST /api/v4/projects/{id}/runners

Assigns an available project runner to a project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project owned by the authenticated user

Request body (application/json)

PropertyTypeDescription
runner_id
Required
IntegerThe ID of a runner

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesCiRunner
400Bad Request—
403Runner is locked—
404Runner not found—

Reset runner registration token

POST /api/v4/projects/{id}/runners/reset_registration_token

FE version

Parameters

NameTypeDescription
id
Path, required
StringThe ID of a project

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesCiResetTokenResult
400Bad Request—
401Unauthorized—
403Forbidden—
404Project Not Found—

Unassign a runner from a project

DELETE /api/v4/projects/{id}/runners/{runner_id}

Unassigns a specified project runner from a project. You cannot unassign a runner from the owner project. Use the delete a runner operation instead.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project owned by the authenticated user
runner_id
Path, required
IntegerThe ID of a runner

Responses

CodeDescriptionSchema
200OKAPIEntitiesCiRunner
400Bad Request—
403You cannot unassign a runner from the owner project. Delete the runner instead—
404Runner not found—
412Precondition Failed—

Share a project with a group

POST /api/v4/projects/{id}/share

Shares a specified project with a group.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (application/json)

PropertyTypeDescription
expires_atString (date)Share expiration date
group_access
Required
IntegerThe group access level
Allowed values: 10, 15, 20, 25, 30, 40, 50
group_id
Required
IntegerThe ID of a group
Example: 1

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProjectGroupLink
400Bad request—
403Unauthenticated—
404Not found—

DELETE /api/v4/projects/{id}/share/{group_id}

Deletes a shared project link in a group.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
group_id
Path, required
IntegerThe ID of the group

Responses

CodeDescriptionSchema
204No Content—
400Bad request—
404Not found—

List all groups available to invite to a project

GET /api/v4/projects/{id}/share_locations

Lists all groups that can be invited to a project.

Parameters

NameTypeDescription
id
Path, required
IntegerThe id of the project
search
Query
StringReturn list of groups matching the search criteria

Responses

CodeDescriptionSchema
200OKAPIEntitiesGroup
400Bad Request—
404Not Found—

Star a project

POST /api/v4/projects/{id}/star

Stars a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProject
304Not modified—
400Bad Request—
403Unauthenticated—
404Not Found—

List all users who starred a project

GET /api/v4/projects/{id}/starrers

Lists all users who starred a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
search
Query
StringReturn list of users matching the search criteria
Example: user
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKAPIEntitiesUserBasic
400Bad Request—
403Unauthenticated—
404Not found—

Retrieve the statistics of the last 30 days

GET /api/v4/projects/{id}/statistics

Retrieves the clone and pull statistics for the last 30 days from a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectDailyStatistics
400Bad Request—
401401 Unauthorized—
404404 Project Not Found—

Retrieve the path to repository storage

GET /api/v4/projects/{id}/storage

Retrieves the path to repository storage for a specified project. If you are using Gitaly Cluster (Praefect), see Praefect-generated replica paths instead. Administrators only.

Parameters

NameTypeDescription
id
Path, required
StringID of a project

Responses

CodeDescriptionSchema
200OKAPIEntitiesProjectRepositoryStorage
400Bad Request—
403Unauthenticated—
404Not Found—

List all Terraform state protection rules for a project

GET /api/v4/projects/{id}/terraform/state_protection_rules

Lists all Terraform state protection rules for a project. This feature was introduced in GitLab 18.11.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
200OKAPIEntitiesTerraformStateProtectionRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—

Create a Terraform state protection rule for a project

POST /api/v4/projects/{id}/terraform/state_protection_rules

This feature was introduced in GitLab 19.1.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (application/json)

PropertyTypeDescription
allowed_fromStringSource restriction for write requests. Default: anywhere. Valid values: anywhere, ci_only, ci_on_protected_branch_only
Allowed values: anywhere, ci_only, ci_on_protected_branch_only
minimum_access_level_for_write
Required
StringMinimum GitLab access level required to write to the Terraform state. Valid values: developer, maintainer, owner, admin
Allowed values: developer, maintainer, owner, admin
Minimum length: 1
state_name
Required
StringTerraform state name to protect. Maximum 255 characters. Must be unique per project
Maximum length: 255

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesTerraformStateProtectionRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—
422Unprocessable Entity—

Update a Terraform state protection rule for a project

PATCH /api/v4/projects/{id}/terraform/state_protection_rules/{terraform_state_protection_rule_id}

This feature was introduced in GitLab 19.0.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
terraform_state_protection_rule_id
Path, required
IntegerThe ID of the Terraform state protection rule

Request body (application/json)

PropertyTypeDescription
allowed_fromStringIf defined, write requests must be made from the specific source
Allowed values: anywhere, ci_only, ci_on_protected_branch_only
minimum_access_level_for_writeStringIf defined, sets the minimum GitLab access level required to write to the Terraform state
Allowed values: developer, maintainer, owner, admin
state_nameStringTerraform state name to protect

Responses

CodeDescriptionSchema
200OKAPIEntitiesTerraformStateProtectionRule
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—
422Unprocessable Entity—

Delete a Terraform state protection rule

DELETE /api/v4/projects/{id}/terraform/state_protection_rules/{terraform_state_protection_rule_id}

This feature was introduced in GitLab 19.0.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
terraform_state_protection_rule_id
Path, required
IntegerThe ID of the Terraform state protection rule

Responses

CodeDescriptionSchema
204204 No Content—
400Bad Request—
401Unauthorized—
403Forbidden—
404Not Found—

Transfer a project to another namespace

PUT /api/v4/projects/{id}/transfer

Transfers a project to another namespace.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (application/json)

PropertyTypeDescription
namespace
Required
StringThe ID or path of the new namespace
Example: gitlab

Responses

CodeDescriptionSchema
200OKAPIEntitiesProject
400Bad request—
403Unauthenticated—
404Not found—

List all transferable namespaces for a project

GET /api/v4/projects/{id}/transfer_locations

Lists all namespaces where a specified project can be transferred.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
search
Query
StringReturn list of namespaces matching the search criteria
Example: search
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKAPIEntitiesPublicGroupDetails
400Bad Request—
403Unauthenticated—
404Not Found—

Unarchive a project

POST /api/v4/projects/{id}/unarchive

Unarchives a specified project. You must be an administrator or have the Owner role on the project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProject
400Bad Request—
403Unauthenticated—
404Not Found—

Unstar a project

POST /api/v4/projects/{id}/unstar

Unstars a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProject
304Not modified—
400Bad Request—
403Unauthenticated—
404Not Found—

List all uploads

GET /api/v4/projects/{id}/uploads

Lists all uploads of a project sorted by created_at in descending order. You must have the Maintainer or Owner role for the project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKAPIEntitiesMarkdownUploadAdmin
400Bad Request—
403Unauthenticated—
404Not found—

Create an upload

POST /api/v4/projects/{id}/uploads

Creates an upload.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Request body (multipart/form-data)

PropertyTypeDescription
file
Required
String (binary)The attachment file to be uploaded

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesProjectUpload
400Bad Request—
404Not found—

Workhorse authorize the file upload

POST /api/v4/projects/{id}/uploads/authorize

This feature was introduced in GitLab 13.11

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project

Responses

CodeDescriptionSchema
200OK—
400Bad Request—
404Not found—

Download an uploaded file by secret and filename

GET /api/v4/projects/{id}/uploads/{secret}/{filename}

Downloads an uploaded file with a specified secret and filename. You must have the Guest, Planner, Reporter, Developer, Maintainer, or Owner role for the project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
secret
Path, required
StringThe 32-character secret of a project upload
filename
Path, required
StringThe filename of a project upload

Responses

CodeDescriptionSchema
200OKString (binary) (application/octet-stream)
400Bad Request—
403Unauthenticated—
404Not found—

Delete an uploaded file by secret and filename

DELETE /api/v4/projects/{id}/uploads/{secret}/{filename}

Deletes an uploaded file with a specified secret and filename. You must have the Maintainer or Owner role for the project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
secret
Path, required
StringThe 32-character secret of a project upload
filename
Path, required
StringThe filename of a project upload

Responses

CodeDescriptionSchema
204No Content—
400Bad request—
403Unauthenticated—
404Not found—

Download an uploaded file by ID

GET /api/v4/projects/{id}/uploads/{upload_id}

Downloads an uploaded file with a specified ID. You must have the Maintainer or Owner role for the project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
upload_id
Path, required
IntegerThe ID of a project upload

Responses

CodeDescriptionSchema
200OKString (binary) (application/octet-stream)
400Bad Request—
403Unauthenticated—
404Not found—

Delete an uploaded file by ID

DELETE /api/v4/projects/{id}/uploads/{upload_id}

Deletes an uploaded file with a specified ID. You must have the Maintainer or Owner role for the project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
upload_id
Path, required
IntegerThe ID of a project upload

Responses

CodeDescriptionSchema
204No Content—
400Bad request—
403Unauthenticated—
404Not found—

List all members of a project

GET /api/v4/projects/{id}/users

Lists all members with access to a specified project.

Parameters

NameTypeDescription
id
Path, required
String or integerThe ID or URL-encoded path of the project
search
Query
StringReturn list of users matching the search criteria
Example: user
skip_users
Query
Array of integersFilter out users with the specified IDs
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKAPIEntitiesUserBasic
400Bad Request—
403Unauthenticated—
404Not found—

Get projects associated with a runner

GET /api/v4/runners/{id}/projects

Get a paginated list of all projects associated with the specified runner. Access is restricted based on user permissions.

Parameters

NameTypeDescription
id
Path, required
IntegerThe ID of a runner
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKAPIEntitiesBasicProjectDetails
400Bad Request—
401Unauthorized—
403No access granted—
404Runner not found—

List all projects contributions for a user

GET /api/v4/users/{user_id}/contributed_projects

Lists all contributions to visible projects for a specified user. Returns only contributions in the past year.

Parameters

NameTypeDescription
user_id
Path, required
StringThe ID or username of the user
order_by
Query
StringReturn projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to
Allowed values: id, name, path, created_at, updated_at, last_activity_at, similarity, star_count, storage_size, repository_size, wiki_size, packages_size
Default: created_at
sort
Query
StringReturn projects sorted in ascending and descending order
Allowed values: asc, desc
Default: desc
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20
simple
Query
BooleanReturn only the ID, URL, name, and path of each project
Default: false

Responses

CodeDescriptionSchema
200OKAPIEntitiesBasicProjectDetails
400Bad Request—
404404 User Not Found—

List all personal projects for a user

GET /api/v4/users/{user_id}/projects

Lists all personal projects for a specified user. Does not return group or subgroup projects. If the user profile is private, returns only an empty list.

Parameters

NameTypeDescription
user_id
Path, required
StringThe ID or username of the user
order_by
Query
StringReturn projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to
Allowed values: id, name, path, created_at, updated_at, last_activity_at, similarity, star_count, storage_size, repository_size, wiki_size, packages_size
Default: created_at
sort
Query
StringReturn projects sorted in ascending and descending order
Allowed values: asc, desc
Default: desc
archived
Query
BooleanLimit by archived status
visibility
Query
StringLimit by visibility
Allowed values: private, internal, public
search
Query
StringReturn list of projects matching the search criteria
search_namespaces
Query
BooleanInclude ancestor namespaces when matching search criteria
owned
Query
BooleanLimit by owned by authenticated user
Default: false
starred
Query
BooleanLimit by starred status
Default: false
imported
Query
BooleanLimit by imported by authenticated user
Default: false
membership
Query
BooleanLimit by projects that the current user is a member of
Default: false
with_issues_enabled
Query
BooleanLimit by enabled issues feature
Default: false
with_merge_requests_enabled
Query
BooleanLimit by enabled merge requests feature
Default: false
with_programming_language
Query
StringLimit to repositories which use the given programming language
min_access_level
Query
IntegerLimit by minimum access level of authenticated user
Allowed values: 10, 15, 20, 25, 30, 40, 50
id_after
Query
IntegerLimit results to projects with IDs greater than the specified ID
id_before
Query
IntegerLimit results to projects with IDs less than the specified ID
last_activity_after
Query
String (date-time)Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
last_activity_before
Query
String (date-time)Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
repository_storage
Query
StringWhich storage shard the repository is on. Available only to admins
topic
Query
Array of stringsComma-separated list of topics. Limit results to projects having all topics
topic_id
Query
IntegerLimit results to projects with the assigned topic given by the topic ID
updated_before
Query
String (date-time)Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
updated_after
Query
String (date-time)Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
include_pending_delete
Query
BooleanInclude projects in pending delete state. Can only be set by admins
marked_for_deletion_on
Query
String (date)Date when the project was marked for deletion
active
Query
BooleanLimit by projects that are not archived and not marked for deletion
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20
simple
Query
BooleanReturn only the ID, URL, name, and path of each project
Default: false
statistics
Query
BooleanInclude project statistics
Default: false
with_custom_attributes
Query
BooleanInclude custom attributes in the response
Default: false
custom_attributes
Query
ObjectFilter with custom attributes

Responses

CodeDescriptionSchema
200OKAPIEntitiesBasicProjectDetails
400Bad Request—
404404 User Not Found—

List all projects starred by a user

GET /api/v4/users/{user_id}/starred_projects

Lists all visible projects starred by a specified user. Unauthenticated requests return only public projects.

Parameters

NameTypeDescription
user_id
Path, required
StringThe ID or username of the user
order_by
Query
StringReturn projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to
Allowed values: id, name, path, created_at, updated_at, last_activity_at, similarity, star_count, storage_size, repository_size, wiki_size, packages_size
Default: created_at
sort
Query
StringReturn projects sorted in ascending and descending order
Allowed values: asc, desc
Default: desc
archived
Query
BooleanLimit by archived status
visibility
Query
StringLimit by visibility
Allowed values: private, internal, public
search
Query
StringReturn list of projects matching the search criteria
search_namespaces
Query
BooleanInclude ancestor namespaces when matching search criteria
owned
Query
BooleanLimit by owned by authenticated user
Default: false
starred
Query
BooleanLimit by starred status
Default: false
imported
Query
BooleanLimit by imported by authenticated user
Default: false
membership
Query
BooleanLimit by projects that the current user is a member of
Default: false
with_issues_enabled
Query
BooleanLimit by enabled issues feature
Default: false
with_merge_requests_enabled
Query
BooleanLimit by enabled merge requests feature
Default: false
with_programming_language
Query
StringLimit to repositories which use the given programming language
min_access_level
Query
IntegerLimit by minimum access level of authenticated user
Allowed values: 10, 15, 20, 25, 30, 40, 50
id_after
Query
IntegerLimit results to projects with IDs greater than the specified ID
id_before
Query
IntegerLimit results to projects with IDs less than the specified ID
last_activity_after
Query
String (date-time)Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
last_activity_before
Query
String (date-time)Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
repository_storage
Query
StringWhich storage shard the repository is on. Available only to admins
topic
Query
Array of stringsComma-separated list of topics. Limit results to projects having all topics
topic_id
Query
IntegerLimit results to projects with the assigned topic given by the topic ID
updated_before
Query
String (date-time)Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
updated_after
Query
String (date-time)Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ
include_pending_delete
Query
BooleanInclude projects in pending delete state. Can only be set by admins
marked_for_deletion_on
Query
String (date)Date when the project was marked for deletion
active
Query
BooleanLimit by projects that are not archived and not marked for deletion
page
Query
IntegerCurrent page number
Default: 1
Example: 1
per_page
Query
IntegerNumber of items per page
Default: 20
Example: 20
simple
Query
BooleanReturn only the ID, URL, name, and path of each project
Default: false
statistics
Query
BooleanInclude project statistics
Default: false

Responses

CodeDescriptionSchema
200OKAPIEntitiesBasicProjectDetails
400Bad Request—
404404 User Not Found—

Validate CODEOWNERS file by project full path

GET /api/v4/validate-code-owner-file

Parameters

NameTypeDescription
project_path
Query, required
String—
ref
Query
String—
file_path
Query
String—

Responses

CodeDescriptionSchema
200OK—
400Bad Request—
403Unauthenticated—
404Not found—

Schemas

Objects returned by the operations above and objects nested in their request bodies.

APIEntitiesBasicProjectDetails

PropertyTypeDescription
avatar_urlStringExample: http://example.com/uploads/project/avatar/3/uploads/avatar.png
created_atString (date-time)Example: 2020-05-07T04:27:17.016Z
custom_attributesAPIEntitiesCustomAttribute—
default_branchStringExample: main
descriptionStringExample: desc
forks_countIntegerExample: 1
http_url_to_repoStringExample: https://gitlab.example.com/gitlab/gitlab.git
idInteger (int64)Example: 1
last_activity_atString (date-time)Example: 2013-09-30T13:46:02Z
licenseAPIEntitiesLicenseBasic—
license_urlStringExample: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE
nameStringExample: project1
name_with_namespaceStringExample: John Doe / project1
namespaceAPIEntitiesNamespaceBasic—
pathStringExample: project1
path_with_namespaceStringExample: namespace1/project1
readme_urlStringExample: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md
repository_storageStringExample: default
ssh_url_to_repoStringExample: git@gitlab.example.com:gitlab/gitlab.git
star_countIntegerExample: 1
tag_listArray of stringsExample: ["tag"]
topicsArray of stringsExample: ["topic"]
visibilityStringExample: public
web_urlStringExample: https://gitlab.example.com/gitlab/gitlab

APIEntitiesCiResetTokenResult

PropertyTypeDescription
tokenString—
token_expires_atString—

APIEntitiesCiRunner

PropertyTypeDescription
activeBooleanExample: true
created_atString (date-time)Example: 2025-05-03T00:00:00.000Z
created_byAPIEntitiesUserBasic—
descriptionStringExample: test-1-20150125
idInteger (int64)Example: 8
ip_addressStringExample: 127.0.0.1
is_sharedBooleanExample: true
job_execution_statusStringAllowed values: active, idle
Example: idle
nameStringExample: test
onlineBooleanExample: true
pausedBooleanExample: false
runner_typeStringAllowed values: instance_type, group_type, project_type
Example: instance_type
statusStringExample: online

APIEntitiesContainerExpirationPolicy

PropertyTypeDescription
cadenceString—
enabledString—
keep_nString—
name_regexString—
name_regex_keepString—
next_run_atString—
older_thanString—

APIEntitiesCustomAttribute

PropertyTypeDescription
keyStringExample: foo
valueStringExample: bar

APIEntitiesGroup

PropertyTypeDescription
archivedBoolean—
auto_devops_enabledString—
avatar_urlString—
created_atString—
crm_enabledBoolean—
custom_attributesAPIEntitiesCustomAttribute—
default_branchString—
default_branch_protectionInteger—
default_branch_protection_defaultsString—
descriptionString—
emails_disabledBoolean—
emails_enabledBoolean—
full_nameString—
full_pathString—
idInteger (int64)—
lfs_enabledBoolean—
lock_math_rendering_limits_enabledBoolean—
lock_resource_access_token_notify_inheritedBoolean—
marked_for_deletion_onString—
math_rendering_limits_enabledBoolean—
max_artifacts_sizeInteger—
mentions_disabledString—
nameStringExample: Diaspora
organization_idInteger (int64)—
parent_idString—
pathString—
project_creation_levelString—
request_access_enabledBoolean—
require_two_factor_authenticationBoolean—
resource_access_token_notify_inheritedBoolean—
root_storage_statisticsAPIEntitiesNamespaceRootStorageStatistics—
share_with_group_lockBoolean—
shared_runners_settingString—
show_diff_preview_in_emailBoolean—
statisticsObject—
statistics.job_artifacts_sizeString—
statistics.lfs_objects_sizeString—
statistics.packages_sizeString—
statistics.pipeline_artifacts_sizeString—
statistics.repository_sizeString—
statistics.snippets_sizeString—
statistics.storage_sizeString—
statistics.uploads_sizeString—
statistics.wiki_sizeString—
subgroup_creation_levelString—
two_factor_grace_periodInteger—
visibilityString—
web_urlStringExample: http://gitlab.example.com/groups/diaspora

APIEntitiesGroupAccess

PropertyTypeDescription
access_levelString—
notification_levelString—

APIEntitiesIssuableReferences

PropertyTypeDescription
fullStringExample: test&6
relativeStringExample: &6
shortStringExample: &6

APIEntitiesIssuableTimeStats

PropertyTypeDescription
human_time_estimateStringExample: 3h 30m
human_total_time_spentStringExample: 1h
time_estimateIntegerExample: 12600
total_time_spentIntegerExample: 3600

APIEntitiesIssue

PropertyTypeDescription
_linksObject—
_links.award_emojiStringExample: http://example.com/api/v4/projects/1/issues/2/award_emoji
_links.closed_as_duplicate_ofStringExample: http://example.com/api/v4/projects/1/issues/75
_links.notesStringExample: http://example.com/api/v4/projects/1/issues/2/notes
_links.projectStringExample: http://example.com/api/v4/projects/1
_links.selfStringExample: http://example.com/api/v4/projects/1/issues/2
assigneeAPIEntitiesUserBasic—
assigneesAPIEntitiesUserBasic—
authorAPIEntitiesUserBasic—
closed_atString (date-time)Example: 2022-11-15T08:30:55.232Z
closed_byAPIEntitiesUserBasic—
confidentialBoolean—
created_atString (date-time)Example: 2022-08-17T12:46:35.053Z
descriptionStringExample: Repellendus impedit et vel velit dignissimos.
discussion_lockedBoolean—
downvotesInteger—
due_dateString (date)Example: 2022-11-20
has_tasksBooleanExample: true
idInteger (int64)Example: 84
iidIntegerExample: 14
importedBooleanExample: false
imported_fromStringExample: github
issue_typeStringExample: issue
labelsArray of stringsExample: ["bug"]
merge_requests_countInteger—
milestoneAPIEntitiesMilestone—
moved_to_idInteger (int64)Example: 1
project_idInteger (int64)Example: 4
referencesAPIEntitiesIssuableReferences—
service_desk_reply_toStringExample: user@example.com
severityStringOne of [“UNKNOWN”, “LOW”, “MEDIUM”, “HIGH”, “CRITICAL”]
start_dateString (date)Example: 2022-11-18
stateStringExample: closed
subscribedBooleanExample: false
task_completion_statusAPIEntitiesTaskCompletionStatus—
task_statusStringExample: 2 of 4 tasks completed
time_statsAPIEntitiesIssuableTimeStats—
titleStringExample: Impedit et ut et dolores vero provident ullam est
typeStringOne of [“ISSUE”, “INCIDENT”, “TEST_CASE”, “REQUIREMENT”, “TASK”, “TICKET”]
Example: ISSUE
updated_atString (date-time)Example: 2022-11-14T17:22:01.470Z
upvotesInteger—
user_notes_countInteger—
web_urlStringExample: http://example.com/example/example/issues/14

APIEntitiesLicenseBasic

PropertyTypeDescription
html_urlStringExample: http://choosealicense.com/licenses/gpl-3.0
keyStringExample: gpl-3.0
nameStringExample: GNU General Public License v3.0
nicknameStringExample: GNU GPLv3
source_urlString—

APIEntitiesMarkdownUploadAdmin

PropertyTypeDescription
created_atString (date-time)Example: 2012-06-28T10:52:04Z
filenameStringExample: image.png
idInteger (int64)Example: 1
sizeIntegerExample: 1024
uploaded_byAPIEntitiesUserSafe—

APIEntitiesMergeRequestBasic

PropertyTypeDescription
allow_collaborationBoolean—
allow_maintainer_to_pushBoolean—
assigneeAPIEntitiesUserBasic—
assigneesAPIEntitiesUserBasic—
authorAPIEntitiesUserBasic—
blocking_discussions_resolvedBoolean—
closed_atString (date-time)Example: 2022-01-31T15:10:45.080Z
closed_byAPIEntitiesUserBasic—
created_atString (date-time)Example: 2022-08-17T12:46:35.053Z
descriptionStringExample: Repellendus impedit et vel velit dignissimos.
description_htmlString—
detailed_merge_statusStringExample: mergeable
discussion_lockedBoolean—
downvotesInteger—
draftBoolean—
force_remove_source_branchBoolean—
has_conflictsBoolean—
idInteger (int64)Example: 84
iidIntegerExample: 14
importedBoolean—
imported_fromStringExample: bitbucket
labelsArray of strings—
merge_afterString (date-time)Example: 2022-01-31T15:10:45.080Z
merge_commit_shaStringExample: 1234abcd
merge_statusStringExample: unchecked
merge_userAPIEntitiesUserBasic—
merge_when_pipeline_succeedsBoolean—
merged_atString (date-time)Example: 2022-01-31T15:10:45.080Z
merged_byAPIEntitiesUserBasic—
milestoneAPIEntitiesMilestone—
prepared_atString (date-time)Example: 2022-01-31T15:10:45.080Z
project_idInteger (int64)Example: 4
referenceStringExample: !1
referencesAPIEntitiesIssuableReferences—
reviewersAPIEntitiesUserBasic—
shaStringExample: 1234abcd
should_remove_source_branchBoolean—
source_branchString—
source_project_idInteger (int64)—
squashBoolean—
squash_commit_shaStringExample: 1234abcd
squash_on_mergeBoolean—
stateStringExample: closed
target_branchString—
target_project_idInteger (int64)—
task_completion_statusAPIEntitiesTaskCompletionStatus—
time_statsAPIEntitiesIssuableTimeStats—
titleStringExample: Impedit et ut et dolores vero provident ullam est
title_htmlString—
updated_atString (date-time)Example: 2022-11-14T17:22:01.470Z
upvotesInteger—
user_notes_countInteger—
web_urlStringExample: https://gitlab.example.com/my-group/my-project/-/merge_requests/1
work_in_progressBoolean—

APIEntitiesMilestone

PropertyTypeDescription
created_atString—
descriptionString—
due_dateString—
expiredBoolean—
group_idString—
idInteger (int64)—
iidInteger (int64)—
project_idInteger (int64)—
start_dateString—
stateString—
titleString—
updated_atString—
web_urlString—

APIEntitiesNamespaceBasic

PropertyTypeDescription
avatar_urlStringExample: https://example.com/avatar/12345
full_pathStringExample: group/my_project
idInteger (int64)Example: 2
kindStringExample: project
nameStringExample: project
parent_idInteger (int64)Example: 1
pathStringExample: my_project
web_urlStringExample: https://example.com/group/my_project

APIEntitiesNamespaceRootStorageStatistics

PropertyTypeDescription
build_artifacts_sizeIntegerCI artifacts size in bytes
container_registry_sizeIntegercontainer registry size in bytes
container_registry_size_is_estimatedBooleanIndicates whether the deduplicated container registry size for the namespace is an estimated value or not
dependency_proxy_sizeIntegerDependency Proxy sizes in bytes
lfs_objects_sizeIntegerLFS objects size in bytes
packages_sizeIntegerPackages size in bytes
pipeline_artifacts_sizeIntegerCI pipeline artifacts size in bytes
repository_sizeIntegerGit repository size in bytes
snippets_sizeIntegerSnippets size in bytes
storage_sizeIntegerTotal storage in bytes
uploads_sizeIntegerUploads size in bytes
wiki_sizeIntegerWiki size in bytes

APIEntitiesProject

PropertyTypeDescription
_linksObject—
_links.cluster_agentsStringExample: https://gitlab.example.com/api/v4/projects/4/cluster_agents
_links.eventsStringExample: https://gitlab.example.com/api/v4/projects/4/events
_links.issuesStringExample: https://gitlab.example.com/api/v4/projects/4/issues
_links.labelsStringExample: https://gitlab.example.com/api/v4/projects/4/labels
_links.membersStringExample: https://gitlab.example.com/api/v4/projects/4/members
_links.merge_requestsStringExample: https://gitlab.example.com/api/v4/projects/4/merge_requests
_links.repo_branchesStringExample: https://gitlab.example.com/api/v4/projects/4/repository/branches
_links.selfStringExample: https://gitlab.example.com/api/v4/projects/4
allow_merge_on_skipped_pipelineBoolean—
allow_pipeline_trigger_approve_deploymentBoolean—
analytics_access_levelStringExample: enabled
archivedBoolean—
auto_cancel_pending_pipelinesStringExample: enabled
auto_devops_deploy_strategyStringExample: continuous
auto_devops_enabledBoolean—
autoclose_referenced_issuesBoolean—
automatic_rebase_enabledBoolean—
avatar_urlStringExample: http://example.com/uploads/project/avatar/3/uploads/avatar.png
build_git_strategyStringExample: fetch
build_timeoutIntegerExample: 3600
builds_access_levelStringExample: enabled
can_create_merge_request_inBoolean—
ci_allow_fork_pipelines_to_run_in_parent_projectBoolean—
ci_config_pathStringExample: ``
ci_default_git_depthIntegerExample: 20
ci_delete_pipelines_in_secondsIntegerExample: 86400
ci_display_pipeline_variablesBoolean—
ci_forward_deployment_enabledBoolean—
ci_forward_deployment_rollback_allowedBoolean—
ci_id_token_sub_claim_componentsArray of strings—
ci_job_token_scope_enabledBoolean—
ci_pipeline_variables_minimum_override_roleString—
ci_push_repository_for_job_token_allowedBoolean—
ci_separated_cachesBoolean—
ci_skip_branch_pipelines_for_mrsBoolean—
container_expiration_policyAPIEntitiesContainerExpirationPolicy—
container_registry_access_levelStringExample: enabled
container_registry_enabledBoolean—
container_registry_image_prefixStringExample: registry.gitlab.example.com/gitlab/gitlab-client
created_atString (date-time)Example: 2020-05-07T04:27:17.016Z
creator_idInteger (int64)Example: 1
custom_attributesAPIEntitiesCustomAttribute—
default_branchStringExample: main
descriptionStringExample: desc
description_htmlString—
emails_disabledBoolean—
emails_enabledBoolean—
empty_repoBoolean—
enforce_auth_checks_on_uploadsBoolean—
environments_access_levelStringExample: enabled
fe_project_setting_attributesObject—
feature_flags_access_levelStringExample: enabled
forked_from_projectAPIEntitiesBasicProjectDetails—
forking_access_levelStringExample: enabled
forks_countIntegerExample: 1
group_runners_enabledBoolean—
http_url_to_repoStringExample: https://gitlab.example.com/gitlab/gitlab.git
idInteger (int64)Example: 1
import_errorStringExample: Import error
import_statusStringExample: none
import_typeStringExample: git
import_urlStringExample: https://gitlab.com/gitlab/gitlab.git
infrastructure_access_levelStringExample: enabled
issue_branch_templateStringExample: %(title)
issues_access_levelStringExample: enabled
issues_enabledBoolean—
jobs_enabledBoolean—
keep_latest_artifactBoolean—
last_activity_atString (date-time)Example: 2013-09-30T13:46:02Z
lfs_enabledBoolean—
licenseAPIEntitiesLicenseBasic—
license_urlStringExample: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE
marked_for_deletion_atString (date-time)Example: 2020-05-07T04:27:17.016Z
marked_for_deletion_onString (date-time)Example: 2020-05-07T04:27:17.016Z
max_artifacts_sizeInteger—
max_pipelines_per_merge_trainInteger—
merge_commit_templateStringExample: %(title)
merge_methodStringExample: merge
merge_pipelines_enabledBoolean—
merge_request_title_regexString—
merge_request_title_regex_descriptionString—
merge_requests_access_levelStringExample: enabled
merge_requests_enabledBoolean—
merge_train_enforcedBoolean—
merge_trains_enabledBoolean—
merge_trains_skip_train_allowedBoolean—
model_experiments_access_levelStringExample: enabled
model_registry_access_levelStringExample: enabled
monitor_access_levelStringExample: enabled
mr_default_target_selfBoolean—
mr_default_title_templateStringExample: %(source_branch)
nameStringExample: project1
name_with_namespaceStringExample: John Doe / project1
namespaceAPIEntitiesNamespaceBasic—
only_allow_merge_if_all_discussions_are_resolvedBoolean—
only_allow_merge_if_pipeline_succeedsBoolean—
open_issues_countIntegerExample: 1
ownerAPIEntitiesUserBasic—
package_registry_access_levelStringExample: enabled
packages_enabledBoolean—
pages_access_levelStringExample: enabled
pathStringExample: project1
path_with_namespaceStringExample: namespace1/project1
printing_merge_request_link_enabledBoolean—
protect_merge_request_pipelinesBoolean—
public_jobsBoolean—
readme_urlStringExample: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md
releases_access_levelStringExample: enabled
remove_source_branch_after_mergeBoolean—
repository_access_levelStringExample: enabled
repository_object_formatStringExample: sha1
repository_storageStringExample: default
request_access_enabledBoolean—
resolve_outdated_diff_discussionsBoolean—
resource_group_default_process_modeStringExample: unordered
restrict_user_defined_variablesBoolean—
runner_token_expiration_intervalIntegerExample: 3600
runners_tokenStringExample: b8547b1dc37721d05889db52fa2f02
security_and_compliance_access_levelStringExample: enabled
service_desk_addressStringExample: address@example.com
service_desk_enabledBoolean—
shared_runners_enabledBoolean—
shared_with_groupsArray of objects—
show_diff_preview_in_emailBoolean—
snippets_access_levelStringExample: enabled
snippets_enabledBoolean—
squash_commit_templateStringExample: %(source_branch)
squash_optionStringExample: default_off
ssh_url_to_repoStringExample: git@gitlab.example.com:gitlab/gitlab.git
star_countIntegerExample: 1
statisticsAPIEntitiesProjectStatistics—
suggestion_commit_messageStringExample: Suggestion message
tag_listArray of stringsExample: ["tag"]
topicsArray of stringsExample: ["topic"]
updated_atString (date-time)Example: 2020-05-07T04:27:17.016Z
visibilityStringExample: public
warn_about_potentially_unwanted_charactersBoolean—
web_urlStringExample: https://gitlab.example.com/gitlab/gitlab
wiki_access_levelStringExample: enabled
wiki_enabledBoolean—

APIEntitiesProjectAccess

PropertyTypeDescription
access_levelString—
notification_levelString—

APIEntitiesProjectDailyFetches

PropertyTypeDescription
countIntegerExample: 3
dateString (date)Example: 2022-01-01

APIEntitiesProjectDailyStatistics

PropertyTypeDescription
fetchesObject—
fetches.daysArray of APIEntitiesProjectDailyFetches—
fetches.totalIntegerExample: 3
PropertyTypeDescription
expires_atString (date)Example: 2016-09-26
group_accessIntegerExample: 10
group_idInteger (int64)Example: 1
idInteger (int64)Example: 1
project_idInteger (int64)Example: 1

APIEntitiesProjectRepositoryStorage

PropertyTypeDescription
created_atString (date-time)Example: 2012-10-12T17:04:47Z
disk_pathStringExample: @hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b
project_idInteger (int64)Example: 1
repository_storageStringExample: default

APIEntitiesProjectsContainerRegistryProtectionRule

PropertyTypeDescription
idInteger (int64)Example: 1
minimum_access_level_for_deleteStringExample: maintainer
minimum_access_level_for_pushStringExample: maintainer
project_idInteger (int64)Example: 1
repository_path_patternStringExample: flightjs/flight0

APIEntitiesProjectsContainerRegistryProtectionTagRule

PropertyTypeDescription
idInteger (int64)Example: 1
minimum_access_level_for_deleteStringExample: maintainer
minimum_access_level_for_pushStringExample: maintainer
project_idInteger (int64)Example: 123
tag_name_patternStringExample: v*-release

APIEntitiesProjectsPackagesProtectionRule

PropertyTypeDescription
idInteger (int64)Example: 1
minimum_access_level_for_deleteStringExample: owner
minimum_access_level_for_pushStringExample: maintainer
package_name_patternStringExample: flightjs/flight
package_typeStringExample: npm
project_idInteger (int64)Example: 1

APIEntitiesProjectStatistics

PropertyTypeDescription
commit_countIntegerExample: 37
container_registry_sizeIntegerExample: 0
job_artifacts_sizeIntegerExample: 0
lfs_objects_sizeIntegerExample: 0
packages_sizeIntegerExample: 0
pipeline_artifacts_sizeIntegerExample: 0
repository_sizeIntegerExample: 1.03809e+06
snippets_sizeIntegerExample: 0
storage_sizeIntegerExample: 1.03809e+06
uploads_sizeIntegerExample: 0
wiki_sizeIntegerExample: 0

APIEntitiesProjectsWithAccessAndCatalogSetting

PropertyTypeDescription
_linksObject—
_links.cluster_agentsStringExample: https://gitlab.example.com/api/v4/projects/4/cluster_agents
_links.eventsStringExample: https://gitlab.example.com/api/v4/projects/4/events
_links.issuesStringExample: https://gitlab.example.com/api/v4/projects/4/issues
_links.labelsStringExample: https://gitlab.example.com/api/v4/projects/4/labels
_links.membersStringExample: https://gitlab.example.com/api/v4/projects/4/members
_links.merge_requestsStringExample: https://gitlab.example.com/api/v4/projects/4/merge_requests
_links.repo_branchesStringExample: https://gitlab.example.com/api/v4/projects/4/repository/branches
_links.selfStringExample: https://gitlab.example.com/api/v4/projects/4
allow_merge_on_skipped_pipelineBoolean—
allow_pipeline_trigger_approve_deploymentBoolean—
analytics_access_levelStringExample: enabled
archivedBoolean—
auto_cancel_pending_pipelinesStringExample: enabled
auto_devops_deploy_strategyStringExample: continuous
auto_devops_enabledBoolean—
autoclose_referenced_issuesBoolean—
automatic_rebase_enabledBoolean—
avatar_urlStringExample: http://example.com/uploads/project/avatar/3/uploads/avatar.png
build_git_strategyStringExample: fetch
build_timeoutIntegerExample: 3600
builds_access_levelStringExample: enabled
can_create_merge_request_inBoolean—
ci_allow_fork_pipelines_to_run_in_parent_projectBoolean—
ci_config_pathStringExample: ``
ci_default_git_depthIntegerExample: 20
ci_delete_pipelines_in_secondsIntegerExample: 86400
ci_display_pipeline_variablesBoolean—
ci_forward_deployment_enabledBoolean—
ci_forward_deployment_rollback_allowedBoolean—
ci_id_token_sub_claim_componentsArray of strings—
ci_job_token_scope_enabledBoolean—
ci_pipeline_variables_minimum_override_roleString—
ci_push_repository_for_job_token_allowedBoolean—
ci_separated_cachesBoolean—
ci_skip_branch_pipelines_for_mrsBoolean—
cicd_catalog_enabledBoolean—
container_expiration_policyAPIEntitiesContainerExpirationPolicy—
container_registry_access_levelStringExample: enabled
container_registry_enabledBoolean—
container_registry_image_prefixStringExample: registry.gitlab.example.com/gitlab/gitlab-client
created_atString (date-time)Example: 2020-05-07T04:27:17.016Z
creator_idInteger (int64)Example: 1
custom_attributesAPIEntitiesCustomAttribute—
default_branchStringExample: main
descriptionStringExample: desc
description_htmlString—
emails_disabledBoolean—
emails_enabledBoolean—
empty_repoBoolean—
enforce_auth_checks_on_uploadsBoolean—
environments_access_levelStringExample: enabled
fe_project_setting_attributesObject—
feature_flags_access_levelStringExample: enabled
forked_from_projectAPIEntitiesBasicProjectDetails—
forking_access_levelStringExample: enabled
forks_countIntegerExample: 1
group_runners_enabledBoolean—
http_url_to_repoStringExample: https://gitlab.example.com/gitlab/gitlab.git
idInteger (int64)Example: 1
import_errorStringExample: Import error
import_statusStringExample: none
import_typeStringExample: git
import_urlStringExample: https://gitlab.com/gitlab/gitlab.git
infrastructure_access_levelStringExample: enabled
issue_branch_templateStringExample: %(title)
issues_access_levelStringExample: enabled
issues_enabledBoolean—
jobs_enabledBoolean—
keep_latest_artifactBoolean—
last_activity_atString (date-time)Example: 2013-09-30T13:46:02Z
lfs_enabledBoolean—
licenseAPIEntitiesLicenseBasic—
license_urlStringExample: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE
marked_for_deletion_atString (date-time)Example: 2020-05-07T04:27:17.016Z
marked_for_deletion_onString (date-time)Example: 2020-05-07T04:27:17.016Z
max_artifacts_sizeInteger—
max_pipelines_per_merge_trainInteger—
merge_commit_templateStringExample: %(title)
merge_methodStringExample: merge
merge_pipelines_enabledBoolean—
merge_request_title_regexString—
merge_request_title_regex_descriptionString—
merge_requests_access_levelStringExample: enabled
merge_requests_enabledBoolean—
merge_train_enforcedBoolean—
merge_trains_enabledBoolean—
merge_trains_skip_train_allowedBoolean—
model_experiments_access_levelStringExample: enabled
model_registry_access_levelStringExample: enabled
monitor_access_levelStringExample: enabled
mr_default_target_selfBoolean—
mr_default_title_templateStringExample: %(source_branch)
nameStringExample: project1
name_with_namespaceStringExample: John Doe / project1
namespaceAPIEntitiesNamespaceBasic—
only_allow_merge_if_all_discussions_are_resolvedBoolean—
only_allow_merge_if_pipeline_succeedsBoolean—
open_issues_countIntegerExample: 1
ownerAPIEntitiesUserBasic—
package_registry_access_levelStringExample: enabled
packages_enabledBoolean—
pages_access_levelStringExample: enabled
pathStringExample: project1
path_with_namespaceStringExample: namespace1/project1
permissionsObject—
permissions.group_accessAPIEntitiesGroupAccess—
permissions.project_accessAPIEntitiesProjectAccess—
printing_merge_request_link_enabledBoolean—
protect_merge_request_pipelinesBoolean—
public_jobsBoolean—
readme_urlStringExample: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md
releases_access_levelStringExample: enabled
remove_source_branch_after_mergeBoolean—
repository_access_levelStringExample: enabled
repository_object_formatStringExample: sha1
repository_storageStringExample: default
request_access_enabledBoolean—
resolve_outdated_diff_discussionsBoolean—
resource_group_default_process_modeStringExample: unordered
restrict_user_defined_variablesBoolean—
runner_token_expiration_intervalIntegerExample: 3600
runners_tokenStringExample: b8547b1dc37721d05889db52fa2f02
security_and_compliance_access_levelStringExample: enabled
service_desk_addressStringExample: address@example.com
service_desk_enabledBoolean—
shared_runners_enabledBoolean—
shared_with_groupsArray of objects—
show_diff_preview_in_emailBoolean—
snippets_access_levelStringExample: enabled
snippets_enabledBoolean—
squash_commit_templateStringExample: %(source_branch)
squash_optionStringExample: default_off
ssh_url_to_repoStringExample: git@gitlab.example.com:gitlab/gitlab.git
star_countIntegerExample: 1
statisticsAPIEntitiesProjectStatistics—
suggestion_commit_messageStringExample: Suggestion message
tag_listArray of stringsExample: ["tag"]
topicsArray of stringsExample: ["topic"]
updated_atString (date-time)Example: 2020-05-07T04:27:17.016Z
visibilityStringExample: public
warn_about_potentially_unwanted_charactersBoolean—
web_urlStringExample: https://gitlab.example.com/gitlab/gitlab
wiki_access_levelStringExample: enabled
wiki_enabledBoolean—

APIEntitiesProjectsWithCatalogSetting

PropertyTypeDescription
_linksObject—
_links.cluster_agentsStringExample: https://gitlab.example.com/api/v4/projects/4/cluster_agents
_links.eventsStringExample: https://gitlab.example.com/api/v4/projects/4/events
_links.issuesStringExample: https://gitlab.example.com/api/v4/projects/4/issues
_links.labelsStringExample: https://gitlab.example.com/api/v4/projects/4/labels
_links.membersStringExample: https://gitlab.example.com/api/v4/projects/4/members
_links.merge_requestsStringExample: https://gitlab.example.com/api/v4/projects/4/merge_requests
_links.repo_branchesStringExample: https://gitlab.example.com/api/v4/projects/4/repository/branches
_links.selfStringExample: https://gitlab.example.com/api/v4/projects/4
allow_merge_on_skipped_pipelineBoolean—
allow_pipeline_trigger_approve_deploymentBoolean—
analytics_access_levelStringExample: enabled
archivedBoolean—
auto_cancel_pending_pipelinesStringExample: enabled
auto_devops_deploy_strategyStringExample: continuous
auto_devops_enabledBoolean—
autoclose_referenced_issuesBoolean—
automatic_rebase_enabledBoolean—
avatar_urlStringExample: http://example.com/uploads/project/avatar/3/uploads/avatar.png
build_git_strategyStringExample: fetch
build_timeoutIntegerExample: 3600
builds_access_levelStringExample: enabled
can_create_merge_request_inBoolean—
ci_allow_fork_pipelines_to_run_in_parent_projectBoolean—
ci_config_pathStringExample: ``
ci_default_git_depthIntegerExample: 20
ci_delete_pipelines_in_secondsIntegerExample: 86400
ci_display_pipeline_variablesBoolean—
ci_forward_deployment_enabledBoolean—
ci_forward_deployment_rollback_allowedBoolean—
ci_id_token_sub_claim_componentsArray of strings—
ci_job_token_scope_enabledBoolean—
ci_pipeline_variables_minimum_override_roleString—
ci_push_repository_for_job_token_allowedBoolean—
ci_separated_cachesBoolean—
ci_skip_branch_pipelines_for_mrsBoolean—
cicd_catalog_enabledBoolean—
container_expiration_policyAPIEntitiesContainerExpirationPolicy—
container_registry_access_levelStringExample: enabled
container_registry_enabledBoolean—
container_registry_image_prefixStringExample: registry.gitlab.example.com/gitlab/gitlab-client
created_atString (date-time)Example: 2020-05-07T04:27:17.016Z
creator_idInteger (int64)Example: 1
custom_attributesAPIEntitiesCustomAttribute—
default_branchStringExample: main
descriptionStringExample: desc
description_htmlString—
emails_disabledBoolean—
emails_enabledBoolean—
empty_repoBoolean—
enforce_auth_checks_on_uploadsBoolean—
environments_access_levelStringExample: enabled
fe_project_setting_attributesObject—
feature_flags_access_levelStringExample: enabled
forked_from_projectAPIEntitiesBasicProjectDetails—
forking_access_levelStringExample: enabled
forks_countIntegerExample: 1
group_runners_enabledBoolean—
http_url_to_repoStringExample: https://gitlab.example.com/gitlab/gitlab.git
idInteger (int64)Example: 1
import_errorStringExample: Import error
import_statusStringExample: none
import_typeStringExample: git
import_urlStringExample: https://gitlab.com/gitlab/gitlab.git
infrastructure_access_levelStringExample: enabled
issue_branch_templateStringExample: %(title)
issues_access_levelStringExample: enabled
issues_enabledBoolean—
jobs_enabledBoolean—
keep_latest_artifactBoolean—
last_activity_atString (date-time)Example: 2013-09-30T13:46:02Z
lfs_enabledBoolean—
licenseAPIEntitiesLicenseBasic—
license_urlStringExample: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE
marked_for_deletion_atString (date-time)Example: 2020-05-07T04:27:17.016Z
marked_for_deletion_onString (date-time)Example: 2020-05-07T04:27:17.016Z
max_artifacts_sizeInteger—
max_pipelines_per_merge_trainInteger—
merge_commit_templateStringExample: %(title)
merge_methodStringExample: merge
merge_pipelines_enabledBoolean—
merge_request_title_regexString—
merge_request_title_regex_descriptionString—
merge_requests_access_levelStringExample: enabled
merge_requests_enabledBoolean—
merge_train_enforcedBoolean—
merge_trains_enabledBoolean—
merge_trains_skip_train_allowedBoolean—
model_experiments_access_levelStringExample: enabled
model_registry_access_levelStringExample: enabled
monitor_access_levelStringExample: enabled
mr_default_target_selfBoolean—
mr_default_title_templateStringExample: %(source_branch)
nameStringExample: project1
name_with_namespaceStringExample: John Doe / project1
namespaceAPIEntitiesNamespaceBasic—
only_allow_merge_if_all_discussions_are_resolvedBoolean—
only_allow_merge_if_pipeline_succeedsBoolean—
open_issues_countIntegerExample: 1
ownerAPIEntitiesUserBasic—
package_registry_access_levelStringExample: enabled
packages_enabledBoolean—
pages_access_levelStringExample: enabled
pathStringExample: project1
path_with_namespaceStringExample: namespace1/project1
printing_merge_request_link_enabledBoolean—
protect_merge_request_pipelinesBoolean—
public_jobsBoolean—
readme_urlStringExample: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md
releases_access_levelStringExample: enabled
remove_source_branch_after_mergeBoolean—
repository_access_levelStringExample: enabled
repository_object_formatStringExample: sha1
repository_storageStringExample: default
request_access_enabledBoolean—
resolve_outdated_diff_discussionsBoolean—
resource_group_default_process_modeStringExample: unordered
restrict_user_defined_variablesBoolean—
runner_token_expiration_intervalIntegerExample: 3600
runners_tokenStringExample: b8547b1dc37721d05889db52fa2f02
security_and_compliance_access_levelStringExample: enabled
service_desk_addressStringExample: address@example.com
service_desk_enabledBoolean—
shared_runners_enabledBoolean—
shared_with_groupsArray of objects—
show_diff_preview_in_emailBoolean—
snippets_access_levelStringExample: enabled
snippets_enabledBoolean—
squash_commit_templateStringExample: %(source_branch)
squash_optionStringExample: default_off
ssh_url_to_repoStringExample: git@gitlab.example.com:gitlab/gitlab.git
star_countIntegerExample: 1
statisticsAPIEntitiesProjectStatistics—
suggestion_commit_messageStringExample: Suggestion message
tag_listArray of stringsExample: ["tag"]
topicsArray of stringsExample: ["topic"]
updated_atString (date-time)Example: 2020-05-07T04:27:17.016Z
visibilityStringExample: public
warn_about_potentially_unwanted_charactersBoolean—
web_urlStringExample: https://gitlab.example.com/gitlab/gitlab
wiki_access_levelStringExample: enabled
wiki_enabledBoolean—

APIEntitiesProjectUpload

PropertyTypeDescription
altStringExample: filename
full_pathStringExample: /-/project/1/uploads/secret/filename
idInteger (int64)Example: 1
markdownStringExample: [filename](/uploads/secret/filename)
urlStringExample: /uploads/secret/filename

APIEntitiesPublicGroupDetails

PropertyTypeDescription
avatar_urlStringExample: http://gitlab.example.com/uploads/group/avatar/1/avatar.png
full_nameStringExample: Foobar Group
full_pathStringExample: foo-bar
idInteger (int64)—
nameStringExample: Diaspora
web_urlStringExample: http://gitlab.example.com/groups/diaspora

APIEntitiesTaskCompletionStatus

PropertyTypeDescription
completed_countIntegerExample: 3
countIntegerExample: 5

APIEntitiesTerraformStateProtectionRule

PropertyTypeDescription
allowed_fromStringExample: ci_only
idInteger (int64)Example: 1
minimum_access_level_for_writeStringExample: maintainer
project_idInteger (int64)Example: 1
state_nameStringExample: production

APIEntitiesUserBasic

PropertyTypeDescription
avatar_pathStringExample: /user/avatar/28/The-Big-Lebowski-400-400.png
avatar_urlStringExample: https://gravatar.com/avatar/1
custom_attributesArray of APIEntitiesCustomAttribute—
idInteger (int64)Example: 1
lockedBoolean—
nameStringExample: Administrator
public_emailStringExample: john@example.com
stateStringExample: active
usernameStringExample: admin
web_urlStringExample: https://gitlab.example.com/root

APIEntitiesUserSafe

PropertyTypeDescription
idInteger (int64)Example: 1
nameStringExample: Administrator
public_emailStringExample: john@example.com
usernameStringExample: admin