Group labels API

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

Use this API to manage group labels.

For project labels, use the project labels API.

List group labels

Get all labels for a given group.

GET /groups/:id/labels
AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the group.
with_countsbooleannoWhether or not to include issue and merge request counts. Defaults to false.
include_ancestor_groupsbooleannoInclude ancestor groups. Defaults to true.
include_descendant_groupsbooleannoInclude descendant groups. Defaults to false.
only_group_labelsbooleannoToggle to include only group labels or also project labels. Defaults to true.
searchstringnoKeyword to filter labels by.
archivedbooleannoIf true, returns only archived labels. If unset, returns all labels.
curl \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/labels?with_counts=true"

Example response:

[
  {
    "id": 7,
    "name": "bug",
    "color": "#FF0000",
    "text_color" : "#FFFFFF",
    "description": null,
    "description_html": null,
    "open_issues_count": 0,
    "closed_issues_count": 0,
    "open_merge_requests_count": 0,
    "subscribed": false,
    "archived": false
  },
  {
    "id": 4,
    "name": "feature",
    "color": "#228B22",
    "text_color" : "#FFFFFF",
    "description": null,
    "description_html": null,
    "open_issues_count": 0,
    "closed_issues_count": 0,
    "open_merge_requests_count": 0,
    "subscribed": false,
    "archived": false
  }
]

Get a single group label

Get a single label for a given group.

GET /groups/:id/labels/:label_id
AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the group.
label_idinteger or stringyesThe ID or title of a group’s label.
include_ancestor_groupsbooleannoInclude ancestor groups. Defaults to true.
include_descendant_groupsbooleannoInclude descendant groups. Defaults to false.
only_group_labelsbooleannoToggle to include only group labels or also project labels. Defaults to true.
curl \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/labels/bug"

Example response:

{
  "id": 7,
  "name": "bug",
  "color": "#FF0000",
  "text_color" : "#FFFFFF",
  "description": null,
  "description_html": null,
  "open_issues_count": 0,
  "closed_issues_count": 0,
  "open_merge_requests_count": 0,
  "subscribed": false,
  "archived": false
}

Create a new group label

Create a new group label for a given group.

POST /groups/:id/labels
AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the group
namestringyesThe name of the label
colorstringyesThe color of the label given in 6-digit hex notation with leading ‘#’ sign (for example, #FFAABB) or one of the CSS color names
descriptionstringnoThe description of the label,
archivedbooleannoIf true, marks the label as archived. Default value: false.
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "Feature Proposal",
    "color": "#FFA500",
    "description": "Describes new ideas"
  }' \
  --url "https://gitlab.example.com/api/v4/groups/5/labels"

Example response:

{
  "id": 9,
  "name": "Feature Proposal",
  "color": "#FFA500",
  "text_color" : "#FFFFFF",
  "description": "Describes new ideas",
  "description_html": "Describes new ideas",
  "open_issues_count": 0,
  "closed_issues_count": 0,
  "open_merge_requests_count": 0,
  "subscribed": false,
  "archived": false
}

Update a group label

Updates an existing group label. At least one parameter is required, to update the group label.

PUT /groups/:id/labels/:label_id
AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the group
label_idinteger or stringyesThe ID or title of a group’s label.
new_namestringnoThe new name of the label
colorstringnoThe color of the label given in 6-digit hex notation with leading ‘#’ sign (for example, #FFAABB) or one of the CSS color names
descriptionstringnoThe description of the label.
archivedbooleannoIf true, marks the label as archived. Default value: false.
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --data '{"new_name": "Feature Idea"}' \
  --url "https://gitlab.example.com/api/v4/groups/5/labels/Feature%20Proposal"

Example response:

{
  "id": 9,
  "name": "Feature Idea",
  "color": "#FFA500",
  "text_color" : "#FFFFFF",
  "description": "Describes new ideas",
  "description_html": "Describes new ideas",
  "open_issues_count": 0,
  "closed_issues_count": 0,
  "open_merge_requests_count": 0,
  "subscribed": false,
  "archived": false
}

An older endpoint PUT /groups/:id/labels with name in the parameters is still available, but deprecated.

Delete a group label

Deletes a group label with a given name.

DELETE /groups/:id/labels/:label_id
AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the group
label_idinteger or stringyesThe ID or title of a group’s label.
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/labels/bug"

An older endpoint DELETE /groups/:id/labels with name in the parameters is still available, but deprecated.

Subscribe to a group label

Subscribes the authenticated user to a group label to receive notifications. If the user is already subscribed to the label, the status code 304 is returned.

POST /groups/:id/labels/:label_id/subscribe
AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the group
label_idinteger or stringyesThe ID or title of a group’s label.
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/labels/9/subscribe"

Example response:

{
  "id": 9,
  "name": "Feature Idea",
  "color": "#FFA500",
  "text_color" : "#FFFFFF",
  "description": "Describes new ideas",
  "description_html": "Describes new ideas",
  "open_issues_count": 0,
  "closed_issues_count": 0,
  "open_merge_requests_count": 0,
  "subscribed": true,
  "archived": false
}

Unsubscribe from a group label

Unsubscribes the authenticated user from a group label to not receive notifications from it. If the user is not subscribed to the label, the status code 304 is returned.

POST /groups/:id/labels/:label_id/unsubscribe
AttributeTypeRequiredDescription
idinteger or stringyesThe ID or URL-encoded path of the group
label_idinteger or stringyesThe ID or title of a group’s label.
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/labels/9/unsubscribe"

Example response:

{
  "id": 9,
  "name": "Feature Idea",
  "color": "#FFA500",
  "text_color" : "#FFFFFF",
  "description": "Describes new ideas",
  "description_html": "Describes new ideas",
  "open_issues_count": 0,
  "closed_issues_count": 0,
  "open_merge_requests_count": 0,
  "subscribed": false,
  "archived": false
}