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

Endpoint responses might vary based on the permissions of the authenticated user in the group. If a user isn’t a member of a private group, requests to that group return a 404 Not Found status code.

For project members, use the project members API.

List all groups

GET /api/v4/groups

Lists all visible groups for the authenticated user. Unauthenticated requests return only public groups.

Parameters

NameTypeDescription
statistics
Query
BooleanIf true, includes group statistics. Administrators only
Default: false
archived
Query
BooleanIf true, returns only archived groups or projects
skip_groups
Query
Array of integersSkip the specified group IDs
all_available
Query
BooleanIf true, returns all accessible groups. If false, returns only groups where the user is a member. When omitted, administrators receive all groups and other authenticated users receive only their own. Unauthenticated requests always return all public groups. The owned and min_access_level attributes take precedence
visibility
Query
StringReturn groups with the specified visibility
Allowed values: private, internal, public
search
Query
StringReturn the list of authorized groups matching the search criteria
owned
Query
BooleanIf true, returns only groups explicitly owned by the current user
Default: false
order_by
Query
StringSort results by the specified field
Allowed values: name, path, id, similarity
Default: name
sort
Query
StringSort results in ascending or descending order
Allowed values: asc, desc
Default: asc
min_access_level
Query
IntegerReturn groups where the current user has at least the specified access level. For a list of values, see roles
Allowed values: 10, 15, 20, 25, 30, 40, 50
top_level_only
Query
BooleanIf true, returns only top-level groups, excluding subgroups
marked_for_deletion_on
Query
String (date)Return groups that are marked for deletion on this date. Premium and Ultimate only. Introduced in GitLab 17.1
active
Query
BooleanIf true, returns only groups that are not archived and not marked for deletion
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20
with_custom_attributes
Query
BooleanIf true, includes custom attributes in the response. Administrators only
Default: false
custom_attributes
Query
ObjectFilter by custom attributes that match all of the specified key and value pairs. Administrators only

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesGroup
400Bad Request—

Create a group

POST /api/v4/groups

Creates a project group. Available only for users who can create groups.

Request body (multipart/form-data)

PropertyTypeDescription
auto_devops_enabledBooleanDefault to Auto DevOps pipeline for all projects within this group
avatarString (binary)Avatar image for the group
crm_enabledBooleanEnable Customer Relations Management for this group
default_branchStringThe default branch of group’s projects
Example: main
default_branch_protectionIntegerDetermine if developers can push to default branch
Allowed values: 0, 3, 1, 2, 4
default_branch_protection_defaultsObjectDetermine if developers can push to default branch
default_branch_protection_defaults.allow_force_pushBooleanAllow force push for all users with push access
default_branch_protection_defaults.allowed_to_mergeArray of objectsAn array of access levels allowed to merge
default_branch_protection_defaults.allowed_to_merge[].access_level
Required
IntegerA valid access level
Allowed values: 30, 40, 60, 0
default_branch_protection_defaults.allowed_to_pushArray of objectsAn array of access levels allowed to push
default_branch_protection_defaults.allowed_to_push[].access_level
Required
IntegerA valid access level
Allowed values: 30, 40, 60, 0
default_branch_protection_defaults.code_owner_approval_requiredBooleanRequire approval from code owners
default_branch_protection_defaults.developer_can_initial_pushBooleanAllow developers to initial push
descriptionStringThe description of the group
emails_disabledBoolean(Deprecated) Disable email notifications. Use: emails_enabled
emails_enabledBooleanEnable email notifications
enabled_git_access_protocolStringAllow only the selected protocols to be used for Git access
Allowed values: ssh, http, all
lfs_enabledBooleanEnable/disable LFS for the projects in this group
lock_resource_access_token_notify_inheritedBooleanPrevent subgroups from overriding the access token expiry notification setting
mentions_disabledBooleanDisable a group from getting mentioned
name
Required
StringThe name of the group
organization_idIntegerThe organization id for the group
parent_idIntegerThe parent group id for creating nested group
path
Required
StringThe path of the group
project_creation_levelStringDetermine if developers can create projects in the group
Allowed values: noone, owner, maintainer, developer, administrator
request_access_enabledBooleanAllow users to request member access
require_two_factor_authenticationBooleanRequire all users in this group to setup Two-factor authentication
resource_access_token_notify_inheritedBooleanSend access token expiry notifications to all inherited members of the group
share_with_group_lockBooleanPrevent sharing a project with another group within this group
show_diff_preview_in_emailBooleanInclude the code diff preview in merge request notification emails
subgroup_creation_levelStringAllowed to create subgroups
Allowed values: owner, maintainer
two_factor_grace_periodIntegerTime before Two-factor authentication is enforced
visibilityStringThe visibility of the group
Allowed values: private, internal, public

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesGroup
400Bad Request—

Retrieve a group

GET /api/v4/groups/{id}

Retrieves a specified group by ID or path.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
with_custom_attributes
Query
BooleanIf true, includes custom attributes in the response. Administrators only
Default: false
custom_attributes
Query
ObjectFilter by custom attributes that match all of the specified key and value pairs. Administrators only
with_projects
Query
BooleanIf true, includes details of the projects that belong to the group. Deprecated and scheduled for removal in API v5. To list the projects in a group, use the List all projects in a group operation instead
Default: true

Responses

CodeDescriptionSchema
200OKAPIEntitiesGroupDetail
400Bad Request—
404Not Found—

Update group attributes

PUT /api/v4/groups/{id}

Updates the attributes for a specified group. You must be an administrator or have the Owner role for the group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Request body (multipart/form-data)

PropertyTypeDescription
auto_devops_enabledBooleanDefault to Auto DevOps pipeline for all projects within this group
avatarString (binary)Avatar image for the group
crm_enabledBooleanEnable Customer Relations Management for this group
default_branchStringThe default branch of group’s projects
Example: main
default_branch_protectionIntegerDetermine if developers can push to default branch
Allowed values: 0, 3, 1, 2, 4
default_branch_protection_defaultsObjectDetermine if developers can push to default branch
default_branch_protection_defaults.allow_force_pushBooleanAllow force push for all users with push access
default_branch_protection_defaults.allowed_to_mergeArray of objectsAn array of access levels allowed to merge
default_branch_protection_defaults.allowed_to_merge[].access_level
Required
IntegerA valid access level
Allowed values: 30, 40, 60, 0
default_branch_protection_defaults.allowed_to_pushArray of objectsAn array of access levels allowed to push
default_branch_protection_defaults.allowed_to_push[].access_level
Required
IntegerA valid access level
Allowed values: 30, 40, 60, 0
default_branch_protection_defaults.code_owner_approval_requiredBooleanRequire approval from code owners
default_branch_protection_defaults.developer_can_initial_pushBooleanAllow developers to initial push
descriptionStringThe description of the group
emails_disabledBoolean(Deprecated) Disable email notifications. Use: emails_enabled
emails_enabledBooleanEnable email notifications
enabled_git_access_protocolStringAllow only the selected protocols to be used for Git access
Allowed values: ssh, http, all
lfs_enabledBooleanEnable/disable LFS for the projects in this group
lock_math_rendering_limits_enabledBooleanIndicates if math rendering limits are locked for all descendent groups
lock_require_sha_for_mergeBooleanEnforce the require_sha_for_merge setting for all descendant groups
lock_resource_access_token_notify_inheritedBooleanPrevent subgroups from overriding the access token expiry notification setting
math_rendering_limits_enabledBooleanIndicates if math rendering limits are used for this group
max_artifacts_sizeIntegerSet the maximum file size for each job’s artifacts
mentions_disabledBooleanDisable a group from getting mentioned
nameStringThe name of the group
pathStringThe path of the group
prevent_sharing_groups_outside_hierarchyBooleanPrevent sharing groups within this namespace with any groups outside the namespace. Only available on top-level groups
project_creation_levelStringDetermine if developers can create projects in the group
Allowed values: noone, owner, maintainer, developer, administrator
request_access_enabledBooleanAllow users to request member access
require_sha_for_mergeBooleanIndicates whether merge requests in this group require a valid commit SHA for calls to the merge a merge request endpoint
require_two_factor_authenticationBooleanRequire all users in this group to setup Two-factor authentication
resource_access_token_notify_inheritedBooleanSend access token expiry notifications to all inherited members of the group
share_with_group_lockBooleanPrevent sharing a project with another group within this group
shared_runners_settingStringEnable/disable shared runners for the group and its subgroups and projects
Allowed values: disabled_and_unoverridable, disabled_and_overridable, enabled
show_diff_preview_in_emailBooleanInclude the code diff preview in merge request notification emails
step_up_auth_required_oauth_providerStringOAuth provider required for step-up authentication. Pass empty string to disable
subgroup_creation_levelStringAllowed to create subgroups
Allowed values: owner, maintainer
two_factor_grace_periodIntegerTime before Two-factor authentication is enforced
visibilityStringThe visibility of the group
Allowed values: private, internal, public

Responses

CodeDescriptionSchema
200OKAPIEntitiesGroup
400Bad Request—
404Not Found—

Schedule a group for deletion

DELETE /api/v4/groups/{id}

Schedules a group for deletion. Groups are deleted at the end of the retention period (30 days by default). Use the permanently_remove param to override the retention period.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Responses

CodeDescriptionSchema
202Accepted—
400Bad Request—
404Not Found—

Archive a group

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

Archives a specified group. You must be an administrator or have the Owner role for the group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Responses

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

List all descendant groups

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

Lists all descendant groups for a specified group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
statistics
Query
BooleanIf true, includes group statistics. Administrators only
Default: false
archived
Query
BooleanIf true, returns only archived groups or projects
skip_groups
Query
Array of integersSkip the specified group IDs
all_available
Query
BooleanIf true, returns all accessible groups. If false, returns only groups where the user is a member. When omitted, administrators receive all groups and other authenticated users receive only their own. Unauthenticated requests always return all public groups. The owned and min_access_level attributes take precedence
visibility
Query
StringReturn groups with the specified visibility
Allowed values: private, internal, public
search
Query
StringReturn the list of authorized groups matching the search criteria
owned
Query
BooleanIf true, returns only groups explicitly owned by the current user
Default: false
order_by
Query
StringSort results by the specified field
Allowed values: name, path, id, similarity
Default: name
sort
Query
StringSort results in ascending or descending order
Allowed values: asc, desc
Default: asc
min_access_level
Query
IntegerReturn groups where the current user has at least the specified access level. For a list of values, see roles
Allowed values: 10, 15, 20, 25, 30, 40, 50
top_level_only
Query
BooleanIf true, returns only top-level groups, excluding subgroups
marked_for_deletion_on
Query
String (date)Return groups that are marked for deletion on this date. Premium and Ultimate only. Introduced in GitLab 17.1
active
Query
BooleanIf true, returns only groups that are not archived and not marked for deletion
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20
with_custom_attributes
Query
BooleanIf true, includes custom attributes in the response. Administrators only
Default: false
custom_attributes
Query
ObjectFilter by custom attributes that match all of the specified key and value pairs. Administrators only

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesGroup
400Bad Request—
404Not Found—

List all shared groups

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

Lists all groups shared with a specified group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
skip_groups
Query
Array of integersSkip the specified group IDs
visibility
Query
StringReturn groups with the specified visibility
Allowed values: private, internal, public
search
Query
StringReturn the list of authorized groups matching the search criteria
min_access_level
Query
IntegerReturn groups where the current user has at least the specified access level. For a list of values, see roles
Allowed values: 10, 15, 20, 25, 30, 40, 50
order_by
Query
StringSort results by the specified field
Allowed values: name, path, id, similarity
Default: name
sort
Query
StringSort results in ascending or descending order
Allowed values: asc, desc
Default: asc
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20
with_custom_attributes
Query
BooleanIf true, includes custom attributes in the response. Administrators only
Default: false
custom_attributes
Query
ObjectFilter by custom attributes that match all of the specified key and value pairs. Administrators only

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesGroup
400Bad Request—
404Not Found—

List all invited groups

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

Lists all groups invited to a specified group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
relation
Query
Array of stringsFilter groups by relation
search
Query
StringReturn the list of authorized groups matching the search criteria
min_access_level
Query
IntegerReturn groups where the current user has at least the specified access level. For a list of values, see roles
Allowed values: 10, 15, 20, 25, 30, 40, 50
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20
with_custom_attributes
Query
BooleanIf true, includes custom attributes in the response. Administrators only
Default: false
custom_attributes
Query
ObjectFilter by custom attributes that match all of the specified key and value pairs. Administrators only

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesGroup
400Bad Request—
404Not Found—

List all issues for a group

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

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

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
with_labels_details
Query
BooleanIf true, the response returns more details for each label in the labels field: name, color, description, description_html, text_color
Default: false
state
Query
StringFilter issues by state
Allowed values: opened, closed, all
Default: all
closed_by_id
Query
IntegerReturn issues closed by the user with the given ID
order_by
Query
StringSort results by the specified field
Allowed values: created_at, due_date, label_priority, milestone_due, popularity, priority, relative_position, title, updated_at
Default: created_at
sort
Query
StringSort results in ascending or descending order
Allowed values: asc, desc
Default: desc
due_date
Query
StringReturn issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month
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. None means no labels are assigned. Any means at least one label is assigned. No+Label (deprecated) means no labels are assigned. Set to an empty string to unassign all labels. If a label does not already exist, this creates a new project label and assigns it to the issue. Predefined names are case-insensitive
milestone
Query
StringMilestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone. Support for None and Any is planned for removal. Use the milestone_id attribute instead. Mutually exclusive with milestone_id
milestone_id
Query
StringReturn issues assigned to milestones with a given timebox value. None lists all issues with no milestone. Any lists all issues that have an assigned milestone. Upcoming lists all issues assigned to milestones due in the future. Started lists all issues assigned to open, started milestones. The logic for Upcoming and Started differs from the logic used in the GraphQL API. Mutually exclusive with milestone
Allowed values: Any, None, Upcoming, Started
iids
Query
Array of integersReturn only the issues having the given iid
search
Query
StringSearch issues against their title and description
in
Query
StringModify the scope of the search attribute to title, description, or title,description. If omitted, defaults to title,description
author_id
Query
IntegerReturn issues created by the given user ID. Combine with scope=all or scope=assigned_to_me. Mutually exclusive with author_username
author_username
Query
StringReturn issues created by the given username. Mutually exclusive with author_id
assignee_id
Query
Integer or stringReturn issues assigned to the given user id. None returns unassigned issues and Any returns issues with an assignee. Mutually exclusive with assignee_username
assignee_username
Query
Array of stringsReturn issues assigned to the given username. In GitLab Community Edition, only a single value is accepted. Otherwise, an invalid parameter error is returned. When multiple usernames are given, only issues assigned to all of them are returned. Mutually exclusive with assignee_id
created_after
Query
String (date-time)Return issues created on or after the specified time
created_before
Query
String (date-time)Return issues created on or before the specified time
updated_after
Query
String (date-time)Return issues updated on or after the specified time
updated_before
Query
String (date-time)Return issues updated on or before the specified time
not
Query
ObjectReturn issues that do not match 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. Mutually exclusive with not[milestone]
Allowed values: Any, None, Upcoming, Started
not[iids]
Query
Array of integersInternal IDs of issues to exclude
not[author_id]
Query
IntegerReturn issues not authored by the user with the given ID. Mutually exclusive with not[author_username]
not[author_username]
Query
StringReturn issues not authored by the user with the given username. Mutually exclusive with not[author_id]
not[assignee_id]
Query
IntegerReturn issues not assigned to the user with the given ID. Mutually exclusive with not[assignee_username]
not[assignee_username]
Query
Array of stringsReturn issues not assigned to the user with the given username. Mutually exclusive with not[assignee_id]
scope
Query
StringReturn issues for the given scope
Allowed values: created-by-me, assigned-to-me, created_by_me, assigned_to_me, all
my_reaction_emoji
Query
StringReturn issues reacted to by the authenticated user with the given emoji. None returns issues with no reaction and Any returns issues with at least one reaction
confidential
Query
BooleanIf true, returns only confidential issues. If false, returns only public issues
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20
non_archived
Query
BooleanIf true, returns only issues from non-archived projects. If false, returns issues from both archived and non-archived projects
Default: true

Responses

CodeDescriptionSchema
200OKAPIEntitiesIssue
400Bad Request—
404Not Found—

Retrieve issues statistics for a group

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

Retrieves statistics for issues in a specified group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
labels
Query
Array of stringsComma-separated list of label names. None means no labels are assigned. Any means at least one label is assigned. No+Label (deprecated) means no labels are assigned. Set to an empty string to unassign all labels. If a label does not already exist, this creates a new project label and assigns it to the issue. Predefined names are case-insensitive
milestone
Query
StringMilestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone. Support for None and Any is planned for removal. Use the milestone_id attribute instead. Mutually exclusive with milestone_id
milestone_id
Query
StringReturn issues assigned to milestones with a given timebox value. None lists all issues with no milestone. Any lists all issues that have an assigned milestone. Upcoming lists all issues assigned to milestones due in the future. Started lists all issues assigned to open, started milestones. The logic for Upcoming and Started differs from the logic used in the GraphQL API. Mutually exclusive with milestone
Allowed values: Any, None, Upcoming, Started
iids
Query
Array of integersReturn only the issues having the given iid
search
Query
StringSearch issues against their title and description
in
Query
StringModify the scope of the search attribute to title, description, or title,description. If omitted, defaults to title,description
author_id
Query
IntegerReturn issues created by the given user ID. Combine with scope=all or scope=assigned_to_me. Mutually exclusive with author_username
author_username
Query
StringReturn issues created by the given username. Mutually exclusive with author_id
assignee_id
Query
Integer or stringReturn issues assigned to the given user id. None returns unassigned issues and Any returns issues with an assignee. Mutually exclusive with assignee_username
assignee_username
Query
Array of stringsReturn issues assigned to the given username. In GitLab Community Edition, only a single value is accepted. Otherwise, an invalid parameter error is returned. When multiple usernames are given, only issues assigned to all of them are returned. Mutually exclusive with assignee_id
created_after
Query
String (date-time)Return issues created on or after the specified time
created_before
Query
String (date-time)Return issues created on or before the specified time
updated_after
Query
String (date-time)Return issues updated on or after the specified time
updated_before
Query
String (date-time)Return issues updated on or before the specified time
not
Query
ObjectReturn issues that do not match 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. Mutually exclusive with not[milestone]
Allowed values: Any, None, Upcoming, Started
not[iids]
Query
Array of integersInternal IDs of issues to exclude
not[author_id]
Query
IntegerReturn issues not authored by the user with the given ID. Mutually exclusive with not[author_username]
not[author_username]
Query
StringReturn issues not authored by the user with the given username. Mutually exclusive with not[author_id]
not[assignee_id]
Query
IntegerReturn issues not assigned to the user with the given ID. Mutually exclusive with not[assignee_username]
not[assignee_username]
Query
Array of stringsReturn issues not assigned to the user with the given username. Mutually exclusive with not[assignee_id]
scope
Query
StringReturn issues for the given scope
Allowed values: created-by-me, assigned-to-me, created_by_me, assigned_to_me, all
my_reaction_emoji
Query
StringReturn issues reacted to by the authenticated user with the given emoji. None returns issues with no reaction and Any returns issues with at least one reaction
confidential
Query
BooleanIf true, returns only confidential issues. If false, returns only public issues

Responses

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

Retrieve pending reassignments

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

Retrieves a CSV file with a list of pending reassignments. This feature was introduced in GitLab 17.10.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Responses

CodeDescriptionSchema
200OKString (text/csv)
400Bad Request—
404Not Found—

Reassign placeholders

POST /api/v4/groups/{id}/placeholder_reassignments

Reassigns placeholder users with an uploaded CSV file.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Request body (multipart/form-data)

PropertyTypeDescription
file
Required
String (binary)The CSV file containing the reassignments

Responses

CodeDescriptionSchema
201Created—
400Bad Request—
404Not Found—

Workhorse authorization for the reassignment CSV file

POST /api/v4/groups/{id}/placeholder_reassignments/authorize

Authorizes Workhorse to handle CSV file uploads for placeholder reassignments. This feature was introduced in GitLab 17.10

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Responses

CodeDescriptionSchema
201Created—
400Bad Request—
404Not Found—

List all projects in a group

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

Lists all projects in a specified group accessible to the authenticated user. Unauthenticated requests return only public projects with a limited subset of attributes.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
active
Query
BooleanIf true, returns active projects. If false, returns projects that are archived or marked for deletion. Introduced in GitLab 18.8
archived
Query
BooleanIf true, returns only archived groups or projects
visibility
Query
StringReturn groups with the specified visibility
Allowed values: private, internal, public
search
Query
StringReturn the list of authorized projects matching the search criteria
order_by
Query
StringSort results by the specified field
Allowed values: id, name, path, created_at, updated_at, last_activity_at, similarity, star_count
Default: created_at
sort
Query
StringSort results in ascending or descending order
Allowed values: asc, desc
Default: desc
simple
Query
BooleanIf true, returns only limited fields for each project. Without authentication, only limited fields are returned regardless of this setting
Default: false
owned
Query
BooleanIf true, returns only groups explicitly owned by the current user
Default: false
starred
Query
BooleanIf true, returns only projects starred by the current user
Default: false
with_issues_enabled
Query
BooleanIf true, returns only projects that have the issues feature enabled
Default: false
with_merge_requests_enabled
Query
BooleanIf true, returns only projects that have the merge requests feature enabled
Default: false
with_shared
Query
BooleanIf true, includes projects shared with the group
Default: true
include_subgroups
Query
BooleanIf true, includes projects in subgroups of this group
Default: false
include_ancestor_groups
Query
BooleanIf true, includes projects in the ancestors of this group
Default: false
min_access_level
Query
IntegerReturn projects where the current user has at least the specified access level. For a list of values, see roles
Allowed values: 10, 15, 20, 25, 30, 40, 50
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20
with_custom_attributes
Query
BooleanIf true, includes custom attributes in the response. Administrators only
Default: false
custom_attributes
Query
ObjectFilter by custom attributes that match all of the specified key and value pairs. Administrators only

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesProject
400Bad Request—
404Not Found—

List all shared projects

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

Lists all projects shared with a specified group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
archived
Query
BooleanIf true, returns only archived groups or projects
visibility
Query
StringReturn groups with the specified visibility
Allowed values: private, internal, public
search
Query
StringReturn the list of authorized projects matching the search criteria
order_by
Query
StringSort results by the specified field
Allowed values: id, name, path, created_at, updated_at, last_activity_at, star_count
Default: created_at
sort
Query
StringSort results in ascending or descending order
Allowed values: asc, desc
Default: desc
simple
Query
BooleanIf true, returns only limited fields for each project. Without authentication, only limited fields are returned regardless of this setting
Default: false
starred
Query
BooleanIf true, returns only projects starred by the current user
Default: false
with_issues_enabled
Query
BooleanIf true, returns only projects that have the issues feature enabled
Default: false
with_merge_requests_enabled
Query
BooleanIf true, returns only projects that have the merge requests feature enabled
Default: false
min_access_level
Query
IntegerReturn projects where the current user has at least the specified access level. For a list of values, see roles
Allowed values: 10, 15, 20, 25, 30, 40, 50
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20
with_custom_attributes
Query
BooleanIf true, includes custom attributes in the response. Administrators only
Default: false
custom_attributes
Query
ObjectFilter by custom attributes that match all of the specified key and value pairs. Administrators only

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesProject
400Bad Request—
404Not Found—

Transfer a project to a group

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

Transfers a specified project to another group. Administrators only.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
project_id
Path, required
StringID or URL-encoded path of the project

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesGroupDetail
400Bad Request—
404Not Found—

Restore a group

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

Restores a specified group that was previously scheduled for deletion. Can not restore groups outside of the retention period (30 days by default).

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Responses

CodeDescriptionSchema
201Created—
400Bad Request—
404Not Found—

List all runners in a group

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

Lists all runners available in a specified group and any ancestor groups, including any allowed instance runners.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
type
Query
StringType of runners to return
Allowed values: instance_type, group_type, project_type
paused
Query
BooleanIf true, returns only runners that are ignoring new jobs. If false, returns only runners that are accepting new jobs
status
Query
StringStatus of runners to return
Allowed values: active, paused, online, offline, never_contacted, stale
tag_list
Query
Array of stringsList of runner tags
Example: ["macos","shell"]
version_prefix
Query
StringVersion prefix of runners to return
Pattern: (?<=^|\n(?!$))[\d+.]+
Example: 15.1.
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKAPIEntitiesCiRunner
400Scope contains invalid value—
403Forbidden—
404Not Found—

Reset runner registration token

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

FE version

Parameters

NameTypeDescription
id
Path, required
StringThe ID of a group

Responses

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

Add a group to a group

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

Adds a group to a group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Request body (application/json)

PropertyTypeDescription
expires_atString (date)Date when the share expires
group_access
Required
IntegerAccess level to grant to the invited group. For a list of values, see roles
Allowed values: 10, 15, 20, 25, 30, 40, 50
group_id
Required
IntegerID of the group to invite
member_role_idIntegerID of a custom role to assign to the invited group. If set, group_access must match the base role used to create the custom role

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesGroupDetail
400Bad Request—
404Not Found—

Remove a group from a group

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

Removes a group from a group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
group_id
Path, required
IntegerID of the shared group

Responses

CodeDescriptionSchema
204Resource deleted—
400Bad Request—
404Not Found—

Remove a shared project from a group

DELETE /api/v4/groups/{id}/shared_projects/{project_id}

Removes a shared project targeting this group. The group Owner can remove a shared project without access to the source project.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
project_id
Path, required
IntegerID of the shared project

Responses

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

List all subgroups

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

Lists all subgroups for a specified group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
statistics
Query
BooleanIf true, includes group statistics. Administrators only
Default: false
archived
Query
BooleanIf true, returns only archived groups or projects
skip_groups
Query
Array of integersSkip the specified group IDs
all_available
Query
BooleanIf true, returns all accessible groups. If false, returns only groups where the user is a member. When omitted, administrators receive all groups and other authenticated users receive only their own. Unauthenticated requests always return all public groups. The owned and min_access_level attributes take precedence
visibility
Query
StringReturn groups with the specified visibility
Allowed values: private, internal, public
search
Query
StringReturn the list of authorized groups matching the search criteria
owned
Query
BooleanIf true, returns only groups explicitly owned by the current user
Default: false
order_by
Query
StringSort results by the specified field
Allowed values: name, path, id, similarity
Default: name
sort
Query
StringSort results in ascending or descending order
Allowed values: asc, desc
Default: asc
min_access_level
Query
IntegerReturn groups where the current user has at least the specified access level. For a list of values, see roles
Allowed values: 10, 15, 20, 25, 30, 40, 50
top_level_only
Query
BooleanIf true, returns only top-level groups, excluding subgroups
marked_for_deletion_on
Query
String (date)Return groups that are marked for deletion on this date. Premium and Ultimate only. Introduced in GitLab 17.1
active
Query
BooleanIf true, returns only groups that are not archived and not marked for deletion
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20
with_custom_attributes
Query
BooleanIf true, includes custom attributes in the response. Administrators only
Default: false
custom_attributes
Query
ObjectFilter by custom attributes that match all of the specified key and value pairs. Administrators only

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesGroup
400Bad Request—
404Not Found—

Transfer a group

POST /api/v4/groups/{id}/transfer

Transfers a group to another parent group or transforms a subgroup into a top-level group. You must be an administrator or have the Owner role for the group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Request body (application/json)

PropertyTypeDescription
group_idIntegerID of the new parent group. If omitted, the group becomes a top-level group

Responses

CodeDescriptionSchema
201Created—
400Bad Request—
404Not Found—

List all transfer locations for a group

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

Lists all groups that a specified source group can be transferred to.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group
search
Query
StringGroup name to search for
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesGroup
400Bad Request—
404Not Found—

Transfer a group to an organization

POST /api/v4/groups/{id}/transfer_to_organization

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Request body (application/json)

PropertyTypeDescription
organization_id
Required
IntegerID of the organization to transfer the group to

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesGroupDetail
400Bad request—
401Unauthorized—
403Forbidden—
404Group or Organization not found—
422Unprocessable entity—

Unarchive a group

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

Unarchives a specified group. You must be an administrator or have the Owner role for the group.

Parameters

NameTypeDescription
id
Path, required
StringID or URL-encoded path of the group

Responses

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

List all uploads for a group

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

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

Parameters

NameTypeDescription
id
Path, required
String or integerID or URL-encoded path of the group
page
Query
IntegerPage number of results to retrieve
Default: 1
Example: 1
per_page
Query
IntegerNumber of items to list per page
Default: 20
Example: 20

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesMarkdownUploadAdmin
400Bad Request—
403Unauthenticated—
404Not found—

Upload a file to a group

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

Uploads a file to the specified group. Returns a markdown-formatted link to the file.

Parameters

NameTypeDescription
id
Path, required
String or integerID or URL-encoded path of the group

Request body (multipart/form-data)

PropertyTypeDescription
file
Required
String (binary)The file to upload

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesGroupUpload
400Bad request—
404Not found—

Workhorse authorize the file upload

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

This feature was introduced in GitLab 19.0

Parameters

NameTypeDescription
id
Path, required
String or integerID or URL-encoded path of the group

Responses

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

Download an uploaded file by secret and filename

GET /api/v4/groups/{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 group.

Parameters

NameTypeDescription
id
Path, required
String or integerID or URL-encoded path of the group
secret
Path, required
StringSecret of the upload
filename
Path, required
StringFilename of the upload

Responses

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

Delete an uploaded file by secret and filename

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

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

Parameters

NameTypeDescription
id
Path, required
String or integerID or URL-encoded path of the group
secret
Path, required
StringSecret of the upload
filename
Path, required
StringFilename of the upload

Responses

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

Download an uploaded file by ID

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

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

Parameters

NameTypeDescription
id
Path, required
String or integerID or URL-encoded path of the group
upload_id
Path, required
IntegerID of the upload

Responses

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

Delete an uploaded file by ID

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

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

Parameters

NameTypeDescription
id
Path, required
String or integerID or URL-encoded path of the group
upload_id
Path, required
IntegerID of the upload

Responses

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

Get the users list of a group

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

Parameters

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

Responses

CodeDescriptionSchema
200OKArray of APIEntitiesUserBasic
400Bad Request—
403Unauthenticated—
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
IntegerID of the project
search
Query
StringReturn groups matching the search criteria

Responses

CodeDescriptionSchema
200OKAPIEntitiesPublicGroupDetails
400Bad Request—
404Not Found—

Reset the runner registration token for the instance

POST /api/v4/runners/reset_registration_token

Resets the runner registration token for the GitLab instance.

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesCiResetTokenResult
400Bad Request—
403Forbidden—

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

APIEntitiesGroupDetail

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—
enabled_git_access_protocolStringExample: ssh
full_nameString—
full_pathString—
idInteger (int64)—
lfs_enabledBoolean—
lock_math_rendering_limits_enabledBoolean—
lock_require_sha_for_mergeBoolean—
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—
prevent_sharing_groups_outside_hierarchyBoolean—
project_creation_levelString—
projectsAPIEntitiesProject—
request_access_enabledBoolean—
require_sha_for_mergeBoolean—
require_two_factor_authenticationBoolean—
resource_access_token_notify_inheritedBoolean—
root_storage_statisticsAPIEntitiesNamespaceRootStorageStatistics—
runners_tokenStringExample: b8bc4a7a29eb76ea83cf79e4908c2b
share_with_group_lockBoolean—
shared_projectsAPIEntitiesProject—
shared_runners_settingString—
shared_with_groupsArray of objects—
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—
step_up_auth_required_oauth_providerStringOAuth provider required for step-up authentication
subgroup_creation_levelString—
two_factor_grace_periodInteger—
visibilityString—
web_urlStringExample: http://gitlab.example.com/groups/diaspora

APIEntitiesGroupUpload

PropertyTypeDescription
altStringThe name of the file
full_pathStringThe full path to the file
idInteger (int64)The ID of the file
markdownStringA markdown-formatted link to the file
urlStringThe URL to access the file

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
severityStringThe severity of the issue
Allowed values: 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
typeStringThe type of the issue
Allowed values: 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—

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—
jaga_task_required_to_mergeBoolean—
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—

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

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

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