GitLab CI/CD groups API

Operations about groups

OpenAPI Specification

gitlab-ci-groups-api-openapi.yml Raw ↑
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