Documentation
Documentation
https://docs.gitlab.com/api/
APIReference
https://docs.gitlab.com/api/api_resources/
Authentication
https://docs.gitlab.com/api/rest/authentication/
swagger: '2.0'
info:
title: GitLab access_requests groups API
version: v4
description: Operations related to access requests
host: gitlab.com
produces:
- application/json
tags:
- name: groups
description: Operations about groups
paths:
/api/v4/groups:
get:
description: Get a groups list
produces:
- application/json
parameters:
- in: query
name: statistics
description: Include project statistics
type: boolean
default: false
required: false
- in: query
name: archived
description: Limit by archived status
type: boolean
required: false
- in: query
name: skip_groups
description: Array of group ids to exclude from list
type: array
items:
type: integer
format: int32
required: false
- in: query
name: all_available
description: When `true`, returns all accessible groups. When `false`, returns only groups where the user is a member.
type: boolean
required: false
- in: query
name: visibility
description: Limit by visibility
type: string
enum:
- private
- internal
- public
required: false
- in: query
name: search
description: Search for a specific group
type: string
required: false
- in: query
name: owned
description: Limit by owned by authenticated user
type: boolean
default: false
required: false
- in: query
name: order_by
description: Order by name, path, id or similarity if searching
type: string
default: name
enum:
- name
- path
- id
- similarity
required: false
- in: query
name: sort
description: Sort by asc (ascending) or desc (descending)
type: string
default: asc
enum:
- asc
- desc
required: false
- in: query
name: min_access_level
description: Minimum access level of authenticated user
type: integer
format: int32
enum:
- 10
- 15
- 20
- 30
- 40
- 50
required: false
- in: query
name: top_level_only
description: Only include top-level groups
type: boolean
required: false
- in: query
name: marked_for_deletion_on
description: Return groups that are marked for deletion on this date
type: string
format: date
required: false
- in: query
name: active
description: Limit by groups that are not archived and not marked for deletion
type: boolean
required: false
- in: query
name: repository_storage
description: Filter by repository storage used by the group
type: string
required: false
- in: query
name: page
description: Current page number
type: integer
format: int32
default: 1
required: false
example: 1
- in: query
name: per_page
description: Number of items per page
type: integer
format: int32
default: 20
required: false
example: 20
- in: query
name: with_custom_attributes
description: Include custom attributes in the response
type: boolean
default: false
required: false
responses:
'200':
description: Get a groups list
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Group'
tags:
- groups
operationId: getApiV4Groups
post:
description: Create a group. Available only for users who can create groups.
produces:
- application/json
consumes:
- application/json
parameters:
- name: postApiV4Groups
in: body
required: true
schema:
$ref: '#/definitions/postApiV4Groups'
responses:
'201':
description: Create a group. Available only for users who can create groups.
schema:
$ref: '#/definitions/API_Entities_Group'
tags:
- groups
operationId: postApiV4Groups
/api/v4/groups/{id}:
put:
description: Update a group. Available only for users who can administrate groups.
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- name: putApiV4GroupsId
in: body
required: true
schema:
$ref: '#/definitions/putApiV4GroupsId'
responses:
'200':
description: Update a group. Available only for users who can administrate groups.
schema:
$ref: '#/definitions/API_Entities_Group'
tags:
- groups
operationId: putApiV4GroupsId
get:
description: Get a single group, with containing projects.
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: query
name: with_custom_attributes
description: Include custom attributes in the response
type: boolean
default: false
required: false
- in: query
name: with_projects
description: Omit project details
type: boolean
default: true
required: false
responses:
'200':
description: Get a single group, with containing projects.
schema:
$ref: '#/definitions/API_Entities_GroupDetail'
tags:
- groups
operationId: getApiV4GroupsId
delete:
description: Remove a group.
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
responses:
'204':
description: Remove a group.
tags:
- groups
operationId: deleteApiV4GroupsId
/api/v4/groups/{id}/archive:
post:
description: Archive a group
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
responses:
'200':
description: Archive a group
schema:
$ref: '#/definitions/API_Entities_Group'
'403':
description: Unauthenticated
tags:
- groups
operationId: postApiV4GroupsIdArchive
/api/v4/groups/{id}/unarchive:
post:
description: Unarchive a group
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
responses:
'200':
description: Unarchive a group
schema:
$ref: '#/definitions/API_Entities_Group'
'403':
description: Unauthenticated
tags:
- groups
operationId: postApiV4GroupsIdUnarchive
/api/v4/groups/{id}/restore:
post:
description: Restore a group.
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
responses:
'201':
description: Restore a group.
tags:
- groups
operationId: postApiV4GroupsIdRestore
/api/v4/groups/{id}/groups/shared:
get:
description: Get a list of shared groups this group was invited to
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: query
name: skip_groups
description: Array of group ids to exclude from list
type: array
items:
type: integer
format: int32
required: false
- in: query
name: visibility
description: Limit by visibility
type: string
enum:
- private
- internal
- public
required: false
- in: query
name: search
description: Search for a specific group
type: string
required: false
- in: query
name: min_access_level
description: Minimum access level of authenticated user
type: integer
format: int32
enum:
- 10
- 15
- 20
- 30
- 40
- 50
required: false
- in: query
name: order_by
description: Order by name, path, id or similarity if searching
type: string
default: name
enum:
- name
- path
- id
- similarity
required: false
- in: query
name: sort
description: Sort by asc (ascending) or desc (descending)
type: string
default: asc
enum:
- asc
- desc
required: false
- in: query
name: page
description: Current page number
type: integer
format: int32
default: 1
required: false
example: 1
- in: query
name: per_page
description: Number of items per page
type: integer
format: int32
default: 20
required: false
example: 20
- in: query
name: with_custom_attributes
description: Include custom attributes in the response
type: boolean
default: false
required: false
responses:
'200':
description: Get a list of shared groups this group was invited to
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Group'
tags:
- groups
operationId: getApiV4GroupsIdGroupsShared
/api/v4/groups/{id}/invited_groups:
get:
description: Get a list of invited groups in this group
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: query
name: relation
description: Include group relations
type: array
items:
type: string
enum:
- direct
- inherited
required: false
- in: query
name: search
description: Search for a specific group
type: string
required: false
- in: query
name: min_access_level
description: Minimum access level of authenticated user
type: integer
format: int32
enum:
- 10
- 15
- 20
- 30
- 40
- 50
required: false
- in: query
name: page
description: Current page number
type: integer
format: int32
default: 1
required: false
example: 1
- in: query
name: per_page
description: Number of items per page
type: integer
format: int32
default: 20
required: false
example: 20
- in: query
name: with_custom_attributes
description: Include custom attributes in the response
type: boolean
default: false
required: false
responses:
'200':
description: Get a list of invited groups in this group
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Group'
tags:
- groups
operationId: getApiV4GroupsIdInvitedGroups
/api/v4/groups/{id}/projects:
get:
description: Get a list of projects in this group.
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: query
name: active
description: Limit by projects that are not archived and not marked for deletion
type: boolean
required: false
- in: query
name: archived
description: Limit by archived status
type: boolean
required: false
- in: query
name: visibility
description: Limit by visibility
type: string
enum:
- private
- internal
- public
required: false
- in: query
name: search
description: Return list of authorized projects matching the search criteria
type: string
required: false
- in: query
name: order_by
description: Return projects ordered by field
type: string
default: created_at
enum:
- id
- name
- path
- created_at
- updated_at
- last_activity_at
- similarity
- star_count
required: false
- in: query
name: sort
description: Return projects sorted in ascending and descending order
type: string
default: desc
enum:
- asc
- desc
required: false
- in: query
name: simple
description: Return only the ID, URL, name, and path of each project
type: boolean
default: false
required: false
- in: query
name: owned
description: Limit by owned by authenticated user
type: boolean
default: false
required: false
- in: query
name: starred
description: Limit by starred status
type: boolean
default: false
required: false
- in: query
name: with_issues_enabled
description: Limit by enabled issues feature
type: boolean
default: false
required: false
- in: query
name: with_merge_requests_enabled
description: Limit by enabled merge requests feature
type: boolean
default: false
required: false
- in: query
name: with_shared
description: Include projects shared to this group
type: boolean
default: true
required: false
- in: query
name: include_subgroups
description: Includes projects in subgroups of this group
type: boolean
default: false
required: false
- in: query
name: include_ancestor_groups
description: Includes projects in ancestors of this group
type: boolean
default: false
required: false
- in: query
name: min_access_level
description: Limit by minimum access level of authenticated user on projects
type: integer
format: int32
enum:
- 10
- 15
- 20
- 30
- 40
- 50
required: false
- in: query
name: page
description: Current page number
type: integer
format: int32
default: 1
required: false
example: 1
- in: query
name: per_page
description: Number of items per page
type: integer
format: int32
default: 20
required: false
example: 20
- in: query
name: with_custom_attributes
description: Include custom attributes in the response
type: boolean
default: false
required: false
- in: query
name: with_security_reports
description: Return only projects having security report artifacts present
type: boolean
default: false
required: false
responses:
'200':
description: Get a list of projects in this group.
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Project'
tags:
- groups
operationId: getApiV4GroupsIdProjects
/api/v4/groups/{id}/projects/shared:
get:
description: Get a list of shared projects in this group
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: query
name: archived
description: Limit by archived status
type: boolean
required: false
- in: query
name: visibility
description: Limit by visibility
type: string
enum:
- private
- internal
- public
required: false
- in: query
name: search
description: Return list of authorized projects matching the search criteria
type: string
required: false
- in: query
name: order_by
description: Return projects ordered by field
type: string
default: created_at
enum:
- id
- name
- path
- created_at
- updated_at
- last_activity_at
- star_count
required: false
- in: query
name: sort
description: Return projects sorted in ascending and descending order
type: string
default: desc
enum:
- asc
- desc
required: false
- in: query
name: simple
description: Return only the ID, URL, name, and path of each project
type: boolean
default: false
required: false
- in: query
name: starred
description: Limit by starred status
type: boolean
default: false
required: false
- in: query
name: with_issues_enabled
description: Limit by enabled issues feature
type: boolean
default: false
required: false
- in: query
name: with_merge_requests_enabled
description: Limit by enabled merge requests feature
type: boolean
default: false
required: false
- in: query
name: min_access_level
description: Limit by minimum access level of authenticated user on projects
type: integer
format: int32
enum:
- 10
- 15
- 20
- 30
- 40
- 50
required: false
- in: query
name: page
description: Current page number
type: integer
format: int32
default: 1
required: false
example: 1
- in: query
name: per_page
description: Number of items per page
type: integer
format: int32
default: 20
required: false
example: 20
- in: query
name: with_custom_attributes
description: Include custom attributes in the response
type: boolean
default: false
required: false
responses:
'200':
description: Get a list of shared projects in this group
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Project'
tags:
- groups
operationId: getApiV4GroupsIdProjectsShared
/api/v4/groups/{id}/subgroups:
get:
description: Get a list of subgroups in this group.
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: query
name: statistics
description: Include project statistics
type: boolean
default: false
required: false
- in: query
name: archived
description: Limit by archived status
type: boolean
required: false
- in: query
name: skip_groups
description: Array of group ids to exclude from list
type: array
items:
type: integer
format: int32
required: false
- in: query
name: all_available
description: When `true`, returns all accessible groups. When `false`, returns only groups where the user is a member.
type: boolean
required: false
- in: query
name: visibility
description: Limit by visibility
type: string
enum:
- private
- internal
- public
required: false
- in: query
name: search
description: Search for a specific group
type: string
required: false
- in: query
name: owned
description: Limit by owned by authenticated user
type: boolean
default: false
required: false
- in: query
name: order_by
description: Order by name, path, id or similarity if searching
type: string
default: name
enum:
- name
- path
- id
- similarity
required: false
- in: query
name: sort
description: Sort by asc (ascending) or desc (descending)
type: string
default: asc
enum:
- asc
- desc
required: false
- in: query
name: min_access_level
description: Minimum access level of authenticated user
type: integer
format: int32
enum:
- 10
- 15
- 20
- 30
- 40
- 50
required: false
- in: query
name: top_level_only
description: Only include top-level groups
type: boolean
required: false
- in: query
name: marked_for_deletion_on
description: Return groups that are marked for deletion on this date
type: string
format: date
required: false
- in: query
name: active
description: Limit by groups that are not archived and not marked for deletion
type: boolean
required: false
- in: query
name: repository_storage
description: Filter by repository storage used by the group
type: string
required: false
- in: query
name: page
description: Current page number
type: integer
format: int32
default: 1
required: false
example: 1
- in: query
name: per_page
description: Number of items per page
type: integer
format: int32
default: 20
required: false
example: 20
- in: query
name: with_custom_attributes
description: Include custom attributes in the response
type: boolean
default: false
required: false
responses:
'200':
description: Get a list of subgroups in this group.
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Group'
tags:
- groups
operationId: getApiV4GroupsIdSubgroups
/api/v4/groups/{id}/descendant_groups:
get:
description: Get a list of descendant groups of this group.
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: query
name: statistics
description: Include project statistics
type: boolean
default: false
required: false
- in: query
name: archived
description: Limit by archived status
type: boolean
required: false
- in: query
name: skip_groups
description: Array of group ids to exclude from list
type: array
items:
type: integer
format: int32
required: false
- in: query
name: all_available
description: When `true`, returns all accessible groups. When `false`, returns only groups where the user is a member.
type: boolean
required: false
- in: query
name: visibility
description: Limit by visibility
type: string
enum:
- private
- internal
- public
required: false
- in: query
name: search
description: Search for a specific group
type: string
required: false
- in: query
name: owned
description: Limit by owned by authenticated user
type: boolean
default: false
required: false
- in: query
name: order_by
description: Order by name, path, id or similarity if searching
type: string
default: name
enum:
- name
- path
- id
- similarity
required: false
- in: query
name: sort
description: Sort by asc (ascending) or desc (descending)
type: string
default: asc
enum:
- asc
- desc
required: false
- in: query
name: min_access_level
description: Minimum access level of authenticated user
type: integer
format: int32
enum:
- 10
- 15
- 20
- 30
- 40
- 50
required: false
- in: query
name: top_level_only
description: Only include top-level groups
type: boolean
required: false
- in: query
name: marked_for_deletion_on
description: Return groups that are marked for deletion on this date
type: string
format: date
required: false
- in: query
name: active
description: Limit by groups that are not archived and not marked for deletion
type: boolean
required: false
- in: query
name: repository_storage
description: Filter by repository storage used by the group
type: string
required: false
- in: query
name: page
description: Current page number
type: integer
format: int32
default: 1
required: false
example: 1
- in: query
name: per_page
description: Number of items per page
type: integer
format: int32
default: 20
required: false
example: 20
- in: query
name: with_custom_attributes
description: Include custom attributes in the response
type: boolean
default: false
required: false
responses:
'200':
description: Get a list of descendant groups of this group.
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Group'
tags:
- groups
operationId: getApiV4GroupsIdDescendantGroups
/api/v4/groups/{id}/projects/{project_id}:
post:
description: Transfer a project to the group namespace. Available only for admin.
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: path
name: project_id
description: The ID or path of the project
type: string
required: true
responses:
'201':
description: Transfer a project to the group namespace. Available only for admin.
schema:
$ref: '#/definitions/API_Entities_GroupDetail'
tags:
- groups
operationId: postApiV4GroupsIdProjectsProjectId
/api/v4/groups/{id}/transfer_locations:
get:
description: Get the groups to where the current group can be transferred to
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: query
name: search
description: Return list of namespaces matching the search criteria
type: string
required: false
- in: query
name: page
description: Current page number
type: integer
format: int32
default: 1
required: false
example: 1
- in: query
name: per_page
description: Number of items per page
type: integer
format: int32
default: 20
required: false
example: 20
responses:
'200':
description: Get the groups to where the current group can be transferred to
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Group'
tags:
- groups
operationId: getApiV4GroupsIdTransferLocations
/api/v4/groups/{id}/transfer:
post:
description: Transfer a group to a new parent group or promote a subgroup to a top-level group
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- name: postApiV4GroupsIdTransfer
in: body
required: true
schema:
$ref: '#/definitions/postApiV4GroupsIdTransfer'
responses:
'201':
description: Transfer a group to a new parent group or promote a subgroup to a top-level group
tags:
- groups
operationId: postApiV4GroupsIdTransfer
/api/v4/groups/{id}/transfer_to_organization:
post:
description: Transfer a group to an organization
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- name: postApiV4GroupsIdTransferToOrganization
in: body
required: true
schema:
$ref: '#/definitions/postApiV4GroupsIdTransferToOrganization'
responses:
'201':
description: Transfer a group to an organization
schema:
$ref: '#/definitions/API_Entities_GroupDetail'
'400':
description: Bad request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Group or Organization not found
'422':
description: Unprocessable entity
tags:
- groups
operationId: postApiV4GroupsIdTransferToOrganization
/api/v4/groups/{id}/share:
post:
description: Share a group with a group
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- name: postApiV4GroupsIdShare
in: body
required: true
schema:
$ref: '#/definitions/postApiV4GroupsIdShare'
responses:
'201':
description: Share a group with a group
schema:
$ref: '#/definitions/API_Entities_GroupDetail'
tags:
- groups
operationId: postApiV4GroupsIdShare
/api/v4/groups/{id}/share/{group_id}:
delete:
description: Unshare a group with a group
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: path
name: group_id
description: The ID of the shared group
type: integer
format: int32
required: true
responses:
'204':
description: Unshare a group with a group
tags:
- groups
operationId: deleteApiV4GroupsIdShareGroupId
/api/v4/groups/{id}/audit_events/{audit_event_id}:
get:
description: Get a specific audit event in this group.
produces:
- application/json
parameters:
- in: path
name: audit_event_id
description: The ID of the audit event
type: integer
format: int32
required: true
- in: path
name: id
type: integer
format: int32
required: true
responses:
'200':
description: Get a specific audit event in this group.
schema:
$ref: '#/definitions/API_Entities_AuditEvent'
tags:
- groups
operationId:
# --- truncated at 32 KB (146 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/openapi/gitlab-ci-groups-api-openapi.yml