GitLab API — groups. 40 operations. Lead operation: Download the list of pending placeholder assignments for a group. Self-contained Naftiko capability covering one Gitlab Ci business surface.
naftiko: 1.0.0-alpha2
info:
label: GitLab API — groups
description: 'GitLab API — groups. 40 operations. Lead operation: Download the list of pending placeholder assignments for
a group. Self-contained Naftiko capability covering one Gitlab Ci business surface.'
tags:
- Gitlab Ci
- groups
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
GITLAB_CI_API_KEY: GITLAB_CI_API_KEY
capability:
consumes:
- type: http
namespace: gitlab-ci-groups
baseUri: https://gitlab.com
description: GitLab API — groups business capability. Self-contained, no shared references.
resources:
- name: api-v4-groups
path: /api/v4/groups
operations:
- name: getapiv4groups
method: GET
description: Get a groups list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: statistics
in: query
type: boolean
description: Include project statistics
- name: archived
in: query
type: boolean
description: Limit by archived status
- name: skip_groups
in: query
type: array
description: Array of group ids to exclude from list
- name: all_available
in: query
type: boolean
description: When `true`, returns all accessible groups. When `false`, returns only groups where the user is a member.
- name: visibility
in: query
type: string
description: Limit by visibility
- name: search
in: query
type: string
description: Search for a specific group
- name: owned
in: query
type: boolean
description: Limit by owned by authenticated user
- name: order_by
in: query
type: string
description: Order by name, path, id or similarity if searching
- name: sort
in: query
type: string
description: Sort by asc (ascending) or desc (descending)
- name: min_access_level
in: query
type: integer
description: Minimum access level of authenticated user
- name: top_level_only
in: query
type: boolean
description: Only include top-level groups
- name: marked_for_deletion_on
in: query
type: string
description: Return groups that are marked for deletion on this date
- name: active
in: query
type: boolean
description: Limit by groups that are not archived and not marked for deletion
- name: repository_storage
in: query
type: string
description: Filter by repository storage used by the group
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
- name: with_custom_attributes
in: query
type: boolean
description: Include custom attributes in the response
- name: postapiv4groups
method: POST
description: Create a group. Available only for users who can create groups.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: postApiV4Groups
in: body
type: string
required: true
- name: api-v4-groups-id
path: /api/v4/groups/{id}
operations:
- name: putapiv4groupsid
method: PUT
description: Update a group. Available only for users who can administrate groups.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: putApiV4GroupsId
in: body
type: string
required: true
- name: getapiv4groupsid
method: GET
description: Get a single group, with containing projects.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: with_custom_attributes
in: query
type: boolean
description: Include custom attributes in the response
- name: with_projects
in: query
type: boolean
description: Omit project details
- name: deleteapiv4groupsid
method: DELETE
description: Remove a group.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: api-v4-groups-id-archive
path: /api/v4/groups/{id}/archive
operations:
- name: postapiv4groupsidarchive
method: POST
description: Archive a group
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: api-v4-groups-id-audit_events-audit_event_id
path: /api/v4/groups/{id}/audit_events/{audit_event_id}
operations:
- name: getapiv4groupsidauditeventsauditeventid
method: GET
description: Get a specific audit event in this group.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: audit_event_id
in: path
type: integer
description: The ID of the audit event
required: true
- name: id
in: path
type: integer
required: true
- name: api-v4-groups-id-billable_members
path: /api/v4/groups/{id}/billable_members
operations:
- name: getapiv4groupsidbillablemembers
method: GET
description: Gets a list of billable users of top-level group.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
- name: search
in: query
type: string
description: The exact name of the subscribed member
- name: sort
in: query
type: string
description: The sorting option
- name: api-v4-groups-id-descendant_groups
path: /api/v4/groups/{id}/descendant_groups
operations:
- name: getapiv4groupsiddescendantgroups
method: GET
description: Get a list of descendant groups of this group.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: statistics
in: query
type: boolean
description: Include project statistics
- name: archived
in: query
type: boolean
description: Limit by archived status
- name: skip_groups
in: query
type: array
description: Array of group ids to exclude from list
- name: all_available
in: query
type: boolean
description: When `true`, returns all accessible groups. When `false`, returns only groups where the user is a member.
- name: visibility
in: query
type: string
description: Limit by visibility
- name: search
in: query
type: string
description: Search for a specific group
- name: owned
in: query
type: boolean
description: Limit by owned by authenticated user
- name: order_by
in: query
type: string
description: Order by name, path, id or similarity if searching
- name: sort
in: query
type: string
description: Sort by asc (ascending) or desc (descending)
- name: min_access_level
in: query
type: integer
description: Minimum access level of authenticated user
- name: top_level_only
in: query
type: boolean
description: Only include top-level groups
- name: marked_for_deletion_on
in: query
type: string
description: Return groups that are marked for deletion on this date
- name: active
in: query
type: boolean
description: Limit by groups that are not archived and not marked for deletion
- name: repository_storage
in: query
type: string
description: Filter by repository storage used by the group
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
- name: with_custom_attributes
in: query
type: boolean
description: Include custom attributes in the response
- name: api-v4-groups-id-groups-shared
path: /api/v4/groups/{id}/groups/shared
operations:
- name: getapiv4groupsidgroupsshared
method: GET
description: Get a list of shared groups this group was invited to
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: skip_groups
in: query
type: array
description: Array of group ids to exclude from list
- name: visibility
in: query
type: string
description: Limit by visibility
- name: search
in: query
type: string
description: Search for a specific group
- name: min_access_level
in: query
type: integer
description: Minimum access level of authenticated user
- name: order_by
in: query
type: string
description: Order by name, path, id or similarity if searching
- name: sort
in: query
type: string
description: Sort by asc (ascending) or desc (descending)
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
- name: with_custom_attributes
in: query
type: boolean
description: Include custom attributes in the response
- name: api-v4-groups-id-invited_groups
path: /api/v4/groups/{id}/invited_groups
operations:
- name: getapiv4groupsidinvitedgroups
method: GET
description: Get a list of invited groups in this group
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: relation
in: query
type: array
description: Include group relations
- name: search
in: query
type: string
description: Search for a specific group
- name: min_access_level
in: query
type: integer
description: Minimum access level of authenticated user
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
- name: with_custom_attributes
in: query
type: boolean
description: Include custom attributes in the response
- name: api-v4-groups-id-issues
path: /api/v4/groups/{id}/issues
operations:
- name: getapiv4groupsidissues
method: GET
description: Get a list of group issues
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: with_labels_details
in: query
type: boolean
description: Return titles of labels and other details
- name: state
in: query
type: string
description: Return opened, closed, or all issues
- name: closed_by_id
in: query
type: integer
description: Return issues which were closed by the user with the given ID.
- name: order_by
in: query
type: string
description: Return issues ordered by `created_at`, `due_date`, `label_priority`, `milestone_due`, `popularity`,
`priority`, `relative_position`, `title`, or `updated_at` fi
- name: sort
in: query
type: string
description: Return issues sorted in `asc` or `desc` order.
- name: due_date
in: query
type: string
description: 'Return issues that have no due date (`0`), or whose due date is this week, this month, between two
weeks ago and next month, or which are overdue. Accepts: `ove'
- name: issue_type
in: query
type: string
description: 'The type of the issue. Accepts: issue, incident, test_case, requirement, task, ticket'
- name: labels
in: query
type: array
description: Comma-separated list of label names
- name: milestone
in: query
type: string
description: Milestone title
- name: milestone_id
in: query
type: string
description: Return issues assigned to milestones with the specified timebox value ("Any", "None", "Upcoming" or
"Started")
- name: iids
in: query
type: array
description: The IID array of issues
- name: search
in: query
type: string
description: Search issues for text present in the title, description, or any combination of these
- name: in
in: query
type: string
description: '`title`, `description`, or a string joining them with comma'
- name: author_id
in: query
type: integer
description: Return issues which are authored by the user with the given ID
- name: author_username
in: query
type: string
description: Return issues which are authored by the user with the given username
- name: assignee_id
in: query
type: integer
description: Return issues which are assigned to the user with the given ID
- name: assignee_username
in: query
type: array
description: Return issues which are assigned to the user with the given username
- name: created_after
in: query
type: string
description: Return issues created after the specified time
- name: created_before
in: query
type: string
description: Return issues created before the specified time
- name: updated_after
in: query
type: string
description: Return issues updated after the specified time
- name: updated_before
in: query
type: string
description: Return issues updated before the specified time
- name: not[labels]
in: query
type: array
description: Comma-separated list of label names
- name: not[milestone]
in: query
type: string
description: Milestone title
- name: not[milestone_id]
in: query
type: string
description: Return issues assigned to milestones without the specified timebox value ("Any", "None", "Upcoming"
or "Started")
- name: not[iids]
in: query
type: array
description: The IID array of issues
- name: not[author_id]
in: query
type: integer
description: Return issues which are not authored by the user with the given ID
- name: not[author_username]
in: query
type: string
description: Return issues which are not authored by the user with the given username
- name: not[assignee_id]
in: query
type: integer
description: Return issues which are not assigned to the user with the given ID
- name: not[assignee_username]
in: query
type: array
description: Return issues which are not assigned to the user with the given username
- name: not[weight]
in: query
type: integer
description: Return issues without the specified weight
- name: not[iteration_id]
in: query
type: integer
description: Return issues which are not assigned to the iteration with the given ID
- name: not[iteration_title]
in: query
type: string
description: Return issues which are not assigned to the iteration with the given title
- name: scope
in: query
type: string
description: 'Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`'
- name: my_reaction_emoji
in: query
type: string
description: Return issues reacted by the authenticated user by the given emoji
- name: confidential
in: query
type: boolean
description: Filter confidential or public issues
- name: weight
in: query
type: integer
description: The weight of the issue
- name: epic_id
in: query
type: integer
description: The ID of an epic associated with the issues
- name: health_status
in: query
type: string
description: 'The health status of the issue. Must be one of: on_track, needs_attention, at_risk, none, any'
- name: iteration_id
in: query
type: integer
description: Return issues which are assigned to the iteration with the given ID
- name: iteration_title
in: query
type: string
description: Return issues which are assigned to the iteration with the given title
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
- name: non_archived
in: query
type: boolean
description: Return issues from non archived projects
- name: api-v4-groups-id-issues_statistics
path: /api/v4/groups/{id}/issues_statistics
operations:
- name: getapiv4groupsidissuesstatistics
method: GET
description: Get statistics for the list of group issues
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: labels
in: query
type: array
description: Comma-separated list of label names
- name: milestone
in: query
type: string
description: Milestone title
- name: milestone_id
in: query
type: string
description: Return issues assigned to milestones with the specified timebox value ("Any", "None", "Upcoming" or
"Started")
- name: iids
in: query
type: array
description: The IID array of issues
- name: search
in: query
type: string
description: Search issues for text present in the title, description, or any combination of these
- name: in
in: query
type: string
description: '`title`, `description`, or a string joining them with comma'
- name: author_id
in: query
type: integer
description: Return issues which are authored by the user with the given ID
- name: author_username
in: query
type: string
description: Return issues which are authored by the user with the given username
- name: assignee_id
in: query
type: integer
description: Return issues which are assigned to the user with the given ID
- name: assignee_username
in: query
type: array
description: Return issues which are assigned to the user with the given username
- name: created_after
in: query
type: string
description: Return issues created after the specified time
- name: created_before
in: query
type: string
description: Return issues created before the specified time
- name: updated_after
in: query
type: string
description: Return issues updated after the specified time
- name: updated_before
in: query
type: string
description: Return issues updated before the specified time
- name: not[labels]
in: query
type: array
description: Comma-separated list of label names
- name: not[milestone]
in: query
type: string
description: Milestone title
- name: not[milestone_id]
in: query
type: string
description: Return issues assigned to milestones without the specified timebox value ("Any", "None", "Upcoming"
or "Started")
- name: not[iids]
in: query
type: array
description: The IID array of issues
- name: not[author_id]
in: query
type: integer
description: Return issues which are not authored by the user with the given ID
- name: not[author_username]
in: query
type: string
description: Return issues which are not authored by the user with the given username
- name: not[assignee_id]
in: query
type: integer
description: Return issues which are not assigned to the user with the given ID
- name: not[assignee_username]
in: query
type: array
description: Return issues which are not assigned to the user with the given username
- name: not[weight]
in: query
type: integer
description: Return issues without the specified weight
- name: not[iteration_id]
in: query
type: integer
description: Return issues which are not assigned to the iteration with the given ID
- name: not[iteration_title]
in: query
type: string
description: Return issues which are not assigned to the iteration with the given title
- name: scope
in: query
type: string
description: 'Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`'
- name: my_reaction_emoji
in: query
type: string
description: Return issues reacted by the authenticated user by the given emoji
- name: confidential
in: query
type: boolean
description: Filter confidential or public issues
- name: weight
in: query
type: integer
description: The weight of the issue
- name: epic_id
in: query
type: integer
description: The ID of an epic associated with the issues
- name: health_status
in: query
type: string
description: 'The health status of the issue. Must be one of: on_track, needs_attention, at_risk, none, any'
- name: iteration_id
in: query
type: integer
description: Return issues which are assigned to the iteration with the given ID
- name: iteration_title
in: query
type: string
description: Return issues which are assigned to the iteration with the given title
- name: api-v4-groups-id-placeholder_reassignments
path: /api/v4/groups/{id}/placeholder_reassignments
operations:
- name: getapiv4groupsidplaceholderreassignments
method: GET
description: Download the list of pending placeholder assignments for a group
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: postapiv4groupsidplaceholderreassignments
method: POST
description: Upload placeholder reassignments CSV file
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: postApiV4GroupsIdPlaceholderReassignments
in: body
type: string
required: true
- name: api-v4-groups-id-placeholder_reassignments-authorize
path: /api/v4/groups/{id}/placeholder_reassignments/authorize
operations:
- name: postapiv4groupsidplaceholderreassignmentsauthorize
method: POST
description: Workhorse authorization for the reassignment CSV file
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: api-v4-groups-id-projects
path: /api/v4/groups/{id}/projects
operations:
- name: getapiv4groupsidprojects
method: GET
description: Get a list of projects in this group.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: active
in: query
type: boolean
description: Limit by projects that are not archived and not marked for deletion
- name: archived
in: query
type: boolean
description: Limit by archived status
- name: visibility
in: query
type: string
description: Limit by visibility
- name: search
in: query
type: string
description: Return list of authorized projects matching the search criteria
- name: order_by
in: query
type: string
description: Return projects ordered by field
- name: sort
in: query
type: string
description: Return projects sorted in ascending and descending order
- name: simple
in: query
type: boolean
description: Return only the ID, URL, name, and path of each project
- name: owned
in: query
type: boolean
description: Limit by owned by authenticated user
- name: starred
in: query
type: boolean
description: Limit by starred status
- name: with_issues_enabled
in: query
type: boolean
description: Limit by enabled issues feature
- name: with_merge_requests_enabled
in: query
type: boolean
description: Limit by enabled merge requests feature
- name: with_shared
in: query
type: boolean
description: Include projects shared to this group
- name: include_subgroups
in: query
type: boolean
description: Includes projects in subgroups of this group
- name: include_ancestor_groups
in: query
type: boolean
description: Includes projects in ancestors of this group
- name: min_access_level
in: query
type: integer
description: Limit by minimum access level of authenticated user on projects
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
- name: with_custom_attributes
in: query
type: boolean
description: Include custom attributes in the response
- name: with_security_reports
in: query
type: boolean
description: Return only projects having security report artifacts present
- name: api-v4-groups-id-projects-shared
path: /api/v4/groups/{id}/projects/shared
operations:
- name: getapiv4groupsidprojectsshared
method: GET
description: Get a list of shared projects in this group
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a group
required: true
- name: archived
in: query
type: boolean
description: Limit by archived status
- name: visibility
in: query
type: string
description: Limit by visibility
- name: search
in: query
type: string
description: Return list of authorized projects matching the search criteria
- name: order_by
in: query
type: string
description: Return projects ordered by field
- name: sort
in: query
type: string
description: Return projects sorted in ascending and descending order
- name: simple
in: query
type: boolean
description: Return only the ID, URL, name, and path of each project
- name: starred
in: query
type: boolean
description: Limit by starred status
- name: with_issues_enabled
in: query
type: boolean
description: Limit by enabled issues feature
- name: with_merge_requests_enabled
in: query
type: boolean
description: Limit by enabled merge requests feature
- name: min_access_level
in: query
type: integer
description: Limit by minimum access level of authenticated user on projects
- name: page
in: query
type: integer
description: Current page number
# --- truncated at 32 KB (98 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/capabilities/gitlab-ci-groups.yaml