Groups API

List groups

Get a list of visible groups for the authenticated user. When accessed without authentication, only public groups are returned.

By default, this request returns 20 results at a time because the API results are paginated.

Parameters:

AttributeTypeRequiredDescription
skip_groupsarray of integersnoSkip the group IDs passed
all_availablebooleannoShow all the groups you have access to (defaults to false for authenticated users, true for admin); Attributes owned and min_access_level have precedence
searchstringnoReturn the list of authorized groups matching the search criteria
order_bystringnoOrder groups by name, path or id. Default is name
sortstringnoOrder groups in asc or desc order. Default is asc
statisticsbooleannoInclude group statistics (admins only)
with_custom_attributesbooleannoInclude custom attributes in response (admins only)
ownedbooleannoLimit to groups explicitly owned by the current user
min_access_levelintegernoLimit to groups where current user has at least this access level
GET /groups
[
  {
    "id": 1,
    "name": "Foobar Group",
    "path": "foo-bar",
    "description": "An interesting group",
    "visibility": "public",
    "share_with_group_lock": false,
    "require_two_factor_authentication": false,
    "two_factor_grace_period": 48,
    "project_creation_level": "developer",
    "auto_devops_enabled": null,
    "subgroup_creation_level": "owner",
    "emails_disabled": null,
    "mentions_disabled": null,
    "lfs_enabled": true,
    "default_branch_protection": 2,
    "avatar_url": "http://localhost:3000/uploads/group/avatar/1/foo.jpg",
    "web_url": "http://localhost:3000/groups/foo-bar",
    "request_access_enabled": false,
    "full_name": "Foobar Group",
    "full_path": "foo-bar",
    "file_template_project_id": 1,
    "parent_id": null,
    "created_at": "2020-01-15T12:36:29.590Z"
  }
]

When adding the parameter statistics=true and the authenticated user is an admin, additional group statistics are returned.

GET /groups?statistics=true
[
  {
    "id": 1,
    "name": "Foobar Group",
    "path": "foo-bar",
    "description": "An interesting group",
    "visibility": "public",
    "share_with_group_lock": false,
    "require_two_factor_authentication": false,
    "two_factor_grace_period": 48,
    "project_creation_level": "developer",
    "auto_devops_enabled": null,
    "subgroup_creation_level": "owner",
    "emails_disabled": null,
    "mentions_disabled": null,
    "lfs_enabled": true,
    "default_branch_protection": 2,
    "avatar_url": "http://localhost:3000/uploads/group/avatar/1/foo.jpg",
    "web_url": "http://localhost:3000/groups/foo-bar",
    "request_access_enabled": false,
    "full_name": "Foobar Group",
    "full_path": "foo-bar",
    "file_template_project_id": 1,
    "parent_id": null,
    "created_at": "2020-01-15T12:36:29.590Z",
    "statistics": {
      "storage_size" : 212,
      "repository_size" : 33,
      "wiki_size" : 100,
      "lfs_objects_size" : 123,
      "job_artifacts_size" : 57,
      "packages_size": 0
    }
  }
]

You can search for groups by name or path, see below.

You can filter by custom attributes with:

GET /groups?custom_attributes[key]=value&custom_attributes[other_key]=other_value

List a group’s subgroups

Introduced in GitLab 10.3.

Get a list of visible direct subgroups in this group. When accessed without authentication, only public groups are returned.

By default, this request returns 20 results at a time because the API results are paginated.

Parameters:

AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group of the parent group
skip_groupsarray of integersnoSkip the group IDs passed
all_availablebooleannoShow all the groups you have access to (defaults to false for authenticated users, true for admin); Attributes owned and min_access_level have precedence
searchstringnoReturn the list of authorized groups matching the search criteria
order_bystringnoOrder groups by name, path or id. Default is name
sortstringnoOrder groups in asc or desc order. Default is asc
statisticsbooleannoInclude group statistics (admins only)
with_custom_attributesbooleannoInclude custom attributes in response (admins only)
ownedbooleannoLimit to groups explicitly owned by the current user
min_access_levelintegernoLimit to groups where current user has at least this access level
GET /groups/:id/subgroups
[
  {
    "id": 1,
    "name": "Foobar Group",
    "path": "foo-bar",
    "description": "An interesting group",
    "visibility": "public",
    "share_with_group_lock": false,
    "require_two_factor_authentication": false,
    "two_factor_grace_period": 48,
    "project_creation_level": "developer",
    "auto_devops_enabled": null,
    "subgroup_creation_level": "owner",
    "emails_disabled": null,
    "mentions_disabled": null,
    "lfs_enabled": true,
    "default_branch_protection": 2,
    "avatar_url": "http://gitlab.example.com/uploads/group/avatar/1/foo.jpg",
    "web_url": "http://gitlab.example.com/groups/foo-bar",
    "request_access_enabled": false,
    "full_name": "Foobar Group",
    "full_path": "foo-bar",
    "file_template_project_id": 1,
    "parent_id": 123,
    "created_at": "2020-01-15T12:36:29.590Z"
  }
]

List a group’s projects

Get a list of projects in this group. When accessed without authentication, only public projects are returned.

By default, this request returns 20 results at a time because the API results are paginated.

GET /groups/:id/projects

Parameters:

AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group owned by the authenticated user
archivedbooleannoLimit by archived status
visibilitystringnoLimit by visibility public, internal, or private
order_bystringnoReturn projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields. Default is created_at
sortstringnoReturn projects sorted in asc or desc order. Default is desc
searchstringnoReturn list of authorized projects matching the search criteria
simplebooleannoReturn only the ID, URL, name, and path of each project
ownedbooleannoLimit by projects owned by the current user
starredbooleannoLimit by projects starred by the current user
with_issues_enabledbooleannoLimit by projects with issues feature enabled. Default is false
with_merge_requests_enabledbooleannoLimit by projects with merge requests feature enabled. Default is false
with_sharedbooleannoInclude projects shared to this group. Default is true
include_subgroupsbooleannoInclude projects in subgroups of this group. Default is false
min_access_levelintegernoLimit to projects where current user has at least this access level
with_custom_attributesbooleannoInclude custom attributes in response (admins only)
with_security_reportsbooleannoReturn only projects that have security reports artifacts present in any of their builds. This means “projects with security reports enabled”. Default is false

Example response:

[
  {
    "id": 9,
    "description": "foo",
    "default_branch": "master",
    "tag_list": [],
    "archived": false,
    "visibility": "internal",
    "ssh_url_to_repo": "git@gitlab.example.com/html5-boilerplate.git",
    "http_url_to_repo": "http://gitlab.example.com/h5bp/html5-boilerplate.git",
    "web_url": "http://gitlab.example.com/h5bp/html5-boilerplate",
    "name": "Html5 Boilerplate",
    "name_with_namespace": "Experimental / Html5 Boilerplate",
    "path": "html5-boilerplate",
    "path_with_namespace": "h5bp/html5-boilerplate",
    "issues_enabled": true,
    "merge_requests_enabled": true,
    "wiki_enabled": true,
    "jobs_enabled": true,
    "snippets_enabled": true,
    "created_at": "2016-04-05T21:40:50.169Z",
    "last_activity_at": "2016-04-06T16:52:08.432Z",
    "shared_runners_enabled": true,
    "creator_id": 1,
    "namespace": {
      "id": 5,
      "name": "Experimental",
      "path": "h5bp",
      "kind": "group"
    },
    "avatar_url": null,
    "star_count": 1,
    "forks_count": 0,
    "open_issues_count": 3,
    "public_jobs": true,
    "shared_with_groups": [],
    "request_access_enabled": false
  }
]

Details of a group

Get all details of a group. This endpoint can be accessed without authentication if the group is publicly accessible. In case the user that requests is admin of the group, it will return the runners_token for the group too.

GET /groups/:id

Parameters:

AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group owned by the authenticated user.
with_custom_attributesbooleannoInclude custom attributes in response (admins only).
with_projectsbooleannoInclude details from projects that belong to the specified group (defaults to true).
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/4

This endpoint returns:

Example response:

{
  "id": 4,
  "name": "Twitter",
  "path": "twitter",
  "description": "Aliquid qui quis dignissimos distinctio ut commodi voluptas est.",
  "visibility": "public",
  "avatar_url": null,
  "web_url": "https://gitlab.example.com/groups/twitter",
  "request_access_enabled": false,
  "full_name": "Twitter",
  "full_path": "twitter",
  "runners_token": "ba324ca7b1c77fc20bb9",
  "file_template_project_id": 1,
  "parent_id": null,
  "created_at": "2020-01-15T12:36:29.590Z",
  "projects": [
    {
      "id": 7,
      "description": "Voluptas veniam qui et beatae voluptas doloremque explicabo facilis.",
      "default_branch": "master",
      "tag_list": [],
      "archived": false,
      "visibility": "public",
      "ssh_url_to_repo": "git@gitlab.example.com:twitter/typeahead-js.git",
      "http_url_to_repo": "https://gitlab.example.com/twitter/typeahead-js.git",
      "web_url": "https://gitlab.example.com/twitter/typeahead-js",
      "name": "Typeahead.Js",
      "name_with_namespace": "Twitter / Typeahead.Js",
      "path": "typeahead-js",
      "path_with_namespace": "twitter/typeahead-js",
      "issues_enabled": true,
      "merge_requests_enabled": true,
      "wiki_enabled": true,
      "jobs_enabled": true,
      "snippets_enabled": false,
      "container_registry_enabled": true,
      "created_at": "2016-06-17T07:47:25.578Z",
      "last_activity_at": "2016-06-17T07:47:25.881Z",
      "shared_runners_enabled": true,
      "creator_id": 1,
      "namespace": {
        "id": 4,
        "name": "Twitter",
        "path": "twitter",
        "kind": "group"
      },
      "avatar_url": null,
      "star_count": 0,
      "forks_count": 0,
      "open_issues_count": 3,
      "public_jobs": true,
      "shared_with_groups": [],
      "request_access_enabled": false
    },
    {
      "id": 6,
      "description": "Aspernatur omnis repudiandae qui voluptatibus eaque.",
      "default_branch": "master",
      "tag_list": [],
      "archived": false,
      "visibility": "internal",
      "ssh_url_to_repo": "git@gitlab.example.com:twitter/flight.git",
      "http_url_to_repo": "https://gitlab.example.com/twitter/flight.git",
      "web_url": "https://gitlab.example.com/twitter/flight",
      "name": "Flight",
      "name_with_namespace": "Twitter / Flight",
      "path": "flight",
      "path_with_namespace": "twitter/flight",
      "issues_enabled": true,
      "merge_requests_enabled": true,
      "wiki_enabled": true,
      "jobs_enabled": true,
      "snippets_enabled": false,
      "container_registry_enabled": true,
      "created_at": "2016-06-17T07:47:24.661Z",
      "last_activity_at": "2016-06-17T07:47:24.838Z",
      "shared_runners_enabled": true,
      "creator_id": 1,
      "namespace": {
        "id": 4,
        "name": "Twitter",
        "path": "twitter",
        "kind": "group"
      },
      "avatar_url": null,
      "star_count": 0,
      "forks_count": 0,
      "open_issues_count": 8,
      "public_jobs": true,
      "shared_with_groups": [],
      "request_access_enabled": false
    }
  ],
  "shared_projects": [
    {
      "id": 8,
      "description": "Velit eveniet provident fugiat saepe eligendi autem.",
      "default_branch": "master",
      "tag_list": [],
      "archived": false,
      "visibility": "private",
      "ssh_url_to_repo": "git@gitlab.example.com:h5bp/html5-boilerplate.git",
      "http_url_to_repo": "https://gitlab.example.com/h5bp/html5-boilerplate.git",
      "web_url": "https://gitlab.example.com/h5bp/html5-boilerplate",
      "name": "Html5 Boilerplate",
      "name_with_namespace": "H5bp / Html5 Boilerplate",
      "path": "html5-boilerplate",
      "path_with_namespace": "h5bp/html5-boilerplate",
      "issues_enabled": true,
      "merge_requests_enabled": true,
      "wiki_enabled": true,
      "jobs_enabled": true,
      "snippets_enabled": false,
      "container_registry_enabled": true,
      "created_at": "2016-06-17T07:47:27.089Z",
      "last_activity_at": "2016-06-17T07:47:27.310Z",
      "shared_runners_enabled": true,
      "creator_id": 1,
      "namespace": {
        "id": 5,
        "name": "H5bp",
        "path": "h5bp",
        "kind": "group"
      },
      "avatar_url": null,
      "star_count": 0,
      "forks_count": 0,
      "open_issues_count": 4,
      "public_jobs": true,
      "shared_with_groups": [
        {
          "group_id": 4,
          "group_name": "Twitter",
          "group_full_path": "twitter",
          "group_access_level": 30,
          "expires_at": null
        },
        {
          "group_id": 3,
          "group_name": "Gitlab Org",
          "group_full_path": "gitlab-org",
          "group_access_level": 10,
          "expires_at": "2018-08-14"
        }
      ]
    }
  ]
}

Users on GitLab Starter, Bronze, or higher will also see the shared_runners_minutes_limit and extra_shared_runners_minutes_limit parameters:

Additional response parameters:

{
  "id": 4,
  "description": "Aliquid qui quis dignissimos distinctio ut commodi voluptas est.",
  "shared_runners_minutes_limit": 133,
  "extra_shared_runners_minutes_limit": 133,
  ...
}

When adding the parameter with_projects=false, projects will not be returned.

curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/4?with_projects=false

Example response:

{
  "id": 4,
  "name": "Twitter",
  "path": "twitter",
  "description": "Aliquid qui quis dignissimos distinctio ut commodi voluptas est.",
  "visibility": "public",
  "avatar_url": null,
  "web_url": "https://gitlab.example.com/groups/twitter",
  "request_access_enabled": false,
  "full_name": "Twitter",
  "full_path": "twitter",
  "file_template_project_id": 1,
  "parent_id": null
}

Disabling the results limit

The 100 results limit can be disabled if it breaks integrations developed using GitLab 12.4 and earlier.

To disable the limit while migrating to using the list a group’s projects endpoint, ask a GitLab administrator with Rails console access to run the following command:

Feature.disable(:limit_projects_in_groups_api)

New group

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

POST /groups

Parameters:

AttributeTypeRequiredDescription
namestringyesThe name of the group.
pathstringyesThe path of the group.
descriptionstringnoThe group’s description.
membership_lockbooleannoPrevent adding new members to project membership within this group.
visibilitystringnoThe group’s visibility. Can be private, internal, or public.
share_with_group_lockbooleannoPrevent sharing a project with another group within this group.
require_two_factor_authenticationbooleannoRequire all users in this group to setup Two-factor authentication.
two_factor_grace_periodintegernoTime before Two-factor authentication is enforced (in hours).
project_creation_levelstringnoDetermine if developers can create projects in the group. Can be noone (No one), maintainer (Maintainers), or developer (Developers + Maintainers).
auto_devops_enabledbooleannoDefault to Auto DevOps pipeline for all projects within this group.
subgroup_creation_levelstringnoAllowed to create subgroups. Can be owner (Owners), or maintainer (Maintainers).
emails_disabledbooleannoDisable email notifications
avatarmixednoImage file for avatar of the group. Introduced in GitLab 12.9
mentions_disabledbooleannoDisable the capability of a group from getting mentioned
lfs_enabledbooleannoEnable/disable Large File Storage (LFS) for the projects in this group.
request_access_enabledbooleannoAllow users to request member access.
parent_idintegernoThe parent group ID for creating nested group.
default_branch_protectionintegernoSee Options for default_branch_protection. Default to the global level default branch protection setting.
shared_runners_minutes_limitintegernoPipeline minutes quota for this group.
extra_shared_runners_minutes_limitintegernoExtra pipeline minutes quota for this group.

Options for default_branch_protection

The default_branch_protection attribute determines whether developers and maintainers can push to the applicable master branch, as described in the following table:

ValueDescription
0No protection. Developers and maintainers can:
- Push new commits
- Force push changes
- Delete the branch
1Partial protection. Developers and maintainers can:
- Push new commits
2Full protection. Only maintainers can:
- Push new commits

Transfer project to group

Transfer a project to the Group namespace. Available only to instance administrators, although an alternative API endpoint is available which does not require instance administrator access. Transferring projects may fail when tagged packages exist in the project’s repository.

POST  /groups/:id/projects/:project_id

Parameters:

AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the target group
project_idinteger/stringyesThe ID or URL-encoded path of the project
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/4/projects/56

Update group

Updates the project group. Only available to group owners and administrators.

PUT /groups/:id
AttributeTypeRequiredDescription
idintegeryesThe ID of the group.
namestringnoThe name of the group.
pathstringnoThe path of the group.
descriptionstringnoThe description of the group.
membership_lockbooleannoPrevent adding new members to project membership within this group.
share_with_group_lockbooleannoPrevent sharing a project with another group within this group.
visibilitystringnoThe visibility level of the group. Can be private, internal, or public.
share_with_group_lockbooleannoPrevent sharing a project with another group within this group.
require_two_factor_authenticationbooleannoRequire all users in this group to setup Two-factor authentication.
two_factor_grace_periodintegernoTime before Two-factor authentication is enforced (in hours).
project_creation_levelstringnoDetermine if developers can create projects in the group. Can be noone (No one), maintainer (Maintainers), or developer (Developers + Maintainers).
auto_devops_enabledbooleannoDefault to Auto DevOps pipeline for all projects within this group.
subgroup_creation_levelstringnoAllowed to create subgroups. Can be owner (Owners), or maintainer (Maintainers).
emails_disabledbooleannoDisable email notifications
avatarmixednoImage file for avatar of the group. Introduced in GitLab 12.9
mentions_disabledbooleannoDisable the capability of a group from getting mentioned
lfs_enabled (optional)booleannoEnable/disable Large File Storage (LFS) for the projects in this group.
request_access_enabledbooleannoAllow users to request member access.
default_branch_protectionintegernoSee Options for default_branch_protection.
file_template_project_idintegernoThe ID of a project to load custom file templates from.
shared_runners_minutes_limitintegernoPipeline minutes quota for this group.
extra_shared_runners_minutes_limitintegernoExtra pipeline minutes quota for this group.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5?name=Experimental"

This endpoint returns:

Example response:

{
  "id": 5,
  "name": "Experimental",
  "path": "h5bp",
  "description": "foo",
  "visibility": "internal",
  "avatar_url": null,
  "web_url": "http://gitlab.example.com/groups/h5bp",
  "request_access_enabled": false,
  "full_name": "Foobar Group",
  "full_path": "foo-bar",
  "file_template_project_id": 1,
  "parent_id": null,
  "created_at": "2020-01-15T12:36:29.590Z",
  "projects": [
    {
      "id": 9,
      "description": "foo",
      "default_branch": "master",
      "tag_list": [],
      "public": false,
      "archived": false,
      "visibility": "internal",
      "ssh_url_to_repo": "git@gitlab.example.com/html5-boilerplate.git",
      "http_url_to_repo": "http://gitlab.example.com/h5bp/html5-boilerplate.git",
      "web_url": "http://gitlab.example.com/h5bp/html5-boilerplate",
      "name": "Html5 Boilerplate",
      "name_with_namespace": "Experimental / Html5 Boilerplate",
      "path": "html5-boilerplate",
      "path_with_namespace": "h5bp/html5-boilerplate",
      "issues_enabled": true,
      "merge_requests_enabled": true,
      "wiki_enabled": true,
      "jobs_enabled": true,
      "snippets_enabled": true,
      "created_at": "2016-04-05T21:40:50.169Z",
      "last_activity_at": "2016-04-06T16:52:08.432Z",
      "shared_runners_enabled": true,
      "creator_id": 1,
      "namespace": {
        "id": 5,
        "name": "Experimental",
        "path": "h5bp",
        "kind": "group"
      },
      "avatar_url": null,
      "star_count": 1,
      "forks_count": 0,
      "open_issues_count": 3,
      "public_jobs": true,
      "shared_with_groups": [],
      "request_access_enabled": false
    }
  ]
}

Disabling the results limit

The 100 results limit can be disabled if it breaks integrations developed using GitLab 12.4 and earlier.

To disable the limit while migrating to using the list a group’s projects endpoint, ask a GitLab administrator with Rails console access to run the following command:

Feature.disable(:limit_projects_in_groups_api)

Remove group

Only available to group owners and administrators.

This endpoint either:

  • Removes group, and queues a background job to delete all projects in the group as well.
  • Since GitLab 12.8, on Premium or Silver or higher tiers, marks a group for deletion. The deletion will happen 7 days later by default, but this can be changed in the instance settings.
DELETE /groups/:id

Parameters:

AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group

The response will be 202 Accepted if the user has authorization.

Restore group marked for deletion

Introduced in GitLab 12.8.

Restores a group marked for deletion.

POST /groups/:id/restore

Parameters:

AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group

Search for group

Get all groups that match your string in their name or path.

GET /groups?search=foobar
[
  {
    "id": 1,
    "name": "Foobar Group",
    "path": "foo-bar",
    "description": "An interesting group"
  }
]

Hooks

Also called Group Hooks and Webhooks. These are different from System Hooks that are system wide and Project Hooks that are limited to one project.

List group hooks

Get a list of group hooks

GET /groups/:id/hooks
AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group

Get group hook

Get a specific hook for a group.

AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group
hook_idintegeryesThe ID of a group hook
GET /groups/:id/hooks/:hook_id
{
  "id": 1,
  "url": "http://example.com/hook",
  "group_id": 3,
  "push_events": true,
  "issues_events": true,
  "confidential_issues_events": true,
  "merge_requests_events": true,
  "tag_push_events": true,
  "note_events": true,
  "job_events": true,
  "pipeline_events": true,
  "wiki_page_events": true,
  "enable_ssl_verification": true,
  "created_at": "2012-10-12T17:04:47Z"
}

Add group hook

Adds a hook to a specified group.

POST /groups/:id/hooks
AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group
urlstringyesThe hook URL
push_eventsbooleannoTrigger hook on push events
issues_eventsbooleannoTrigger hook on issues events
confidential_issues_eventsbooleannoTrigger hook on confidential issues events
merge_requests_eventsbooleannoTrigger hook on merge requests events
tag_push_eventsbooleannoTrigger hook on tag push events
note_eventsbooleannoTrigger hook on note events
job_eventsbooleannoTrigger hook on job events
pipeline_eventsbooleannoTrigger hook on pipeline events
wiki_page_eventsbooleannoTrigger hook on wiki events
enable_ssl_verificationbooleannoDo SSL verification when triggering the hook
tokenstringnoSecret token to validate received payloads; this will not be returned in the response

Edit group hook

Edits a hook for a specified group.

PUT /groups/:id/hooks/:hook_id
AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group
hook_idintegeryesThe ID of the group hook
urlstringyesThe hook URL
push_eventsbooleannoTrigger hook on push events
issues_eventsbooleannoTrigger hook on issues events
confidential_issues_eventsbooleannoTrigger hook on confidential issues events
merge_requests_eventsbooleannoTrigger hook on merge requests events
tag_push_eventsbooleannoTrigger hook on tag push events
note_eventsbooleannoTrigger hook on note events
job_eventsbooleannoTrigger hook on job events
pipeline_eventsbooleannoTrigger hook on pipeline events
wiki_eventsbooleannoTrigger hook on wiki events
enable_ssl_verificationbooleannoDo SSL verification when triggering the hook
tokenstringnoSecret token to validate received payloads; this will not be returned in the response

Delete group hook

Removes a hook from a group. This is an idempotent method and can be called multiple times. Either the hook is available or not.

DELETE /groups/:id/hooks/:hook_id
AttributeTypeRequiredDescription
idinteger/stringyesThe ID or URL-encoded path of the group
hook_idintegeryesThe ID of the group hook.

Group Audit Events

Group audit events can be accessed via the Group Audit Events API

Sync group with LDAP

Syncs the group with its linked LDAP group. Only available to group owners and administrators.

POST /groups/:id/ldap_sync

Parameters:

  • id (required) - The ID or path of a user group

Group members

Please consult the Group Members documentation.

List, add, and delete LDAP group links.

Lists LDAP group links.

GET /groups/:id/ldap_group_links

Parameters:

  • id (required) - The ID of a group

Adds an LDAP group link.

POST /groups/:id/ldap_group_links

Parameters:

  • id (required) - The ID of a group
  • cn (required) - The CN of a LDAP group
  • group_access (required) - Minimum access level for members of the LDAP group
  • provider (required) - LDAP provider for the LDAP group

Deletes an LDAP group link.

DELETE /groups/:id/ldap_group_links/:cn

Parameters:

  • id (required) - The ID of a group
  • cn (required) - The CN of a LDAP group

Deletes a LDAP group link for a specific LDAP provider

DELETE /groups/:id/ldap_group_links/:provider/:cn

Parameters:

  • id (required) - The ID of a group
  • cn (required) - The CN of a LDAP group
  • provider (required) - Name of a LDAP provider

Namespaces in groups

By default, groups only get 20 namespaces at a time because the API results are paginated.

To get more (up to 100), pass the following as an argument to the API call:

/groups?per_page=100

And to switch pages add:

/groups?per_page=100&page=2

Group badges

Read more in the Group Badges documentation.

Group Import/Export

Read more in the Group Import/Export documentation.