diff --git a/doc/api/groups.md b/doc/api/groups.md
index 1454946eb2fedc536d6ac65a1fc365f70e06654d..0c7914b7362f9993af36110b828a50e50336b3c4 100644
--- a/doc/api/groups.md
+++ b/doc/api/groups.md
@@ -1597,6 +1597,7 @@ GET /groups/:id/hooks/:hook_id
   "deployment_events": true,
   "releases_events": true,
   "subgroup_events": true,
+  "member_events": true,
   "enable_ssl_verification": true,
   "repository_update_events": false,
   "alert_status": "executable",
@@ -1634,6 +1635,7 @@ POST /groups/:id/hooks
 | `deployment_events`          | boolean        | no       | Trigger hook on deployment events |
 | `releases_events`            | boolean        | no       | Trigger hook on release events |
 | `subgroup_events`            | boolean        | no       | Trigger hook on subgroup events |
+| `member_events`              | boolean        | no       | Trigger hook on member events |
 | `enable_ssl_verification`    | boolean        | no       | Do SSL verification when triggering the hook |
 | `token`                      | string         | no       | Secret token to validate received payloads; not returned in the response |
 | `resource_access_token_events` | boolean         | no       | Trigger hook on project access token expiry events. |
@@ -1666,6 +1668,7 @@ PUT /groups/:id/hooks/:hook_id
 | `deployment_events`          | boolean        | no       | Trigger hook on deployment events. |
 | `releases_events`            | boolean        | no       | Trigger hook on release events. |
 | `subgroup_events`            | boolean        | no       | Trigger hook on subgroup events. |
+| `member_events`              | boolean        | no       | Trigger hook on member events. |
 | `enable_ssl_verification`    | boolean        | no       | Do SSL verification when triggering the hook. |
 | `service_access_tokens_expiration_enforced` | boolean | no | Require service account access tokens to have an expiration date. |
 | `token`                      | string         | no       | Secret token to validate received payloads. Not returned in the response. When you change the webhook URL, the secret token is reset and not retained. |
diff --git a/ee/lib/api/group_hooks.rb b/ee/lib/api/group_hooks.rb
index 7f7c68b6f09384b7f4a6c9107db27f1c1c957607..d087489608da5a88d4141fde1af5dfb5369dabe2 100644
--- a/ee/lib/api/group_hooks.rb
+++ b/ee/lib/api/group_hooks.rb
@@ -35,6 +35,7 @@ def hook_scope
         optional :subgroup_events, type: Boolean, desc: "Trigger hook on subgroup events"
         optional :emoji_events, type: Boolean, desc: "Trigger hook on emoji events"
         optional :resource_access_token_events, type: Boolean, desc: "Trigger hook on group access token expiry events"
+        optional :member_events, type: Boolean, desc: "Trigger hook on member events"
         optional :enable_ssl_verification, type: Boolean, desc: "Do SSL verification when triggering the hook"
         optional :token, type: String, desc: "Secret token to validate received payloads; this will not be returned in the response"
         optional :custom_webhook_template, type: String, desc: "Custom template for the request payload"
diff --git a/ee/lib/ee/api/entities/group_hook.rb b/ee/lib/ee/api/entities/group_hook.rb
index 0bb3776890ebdc506846dfda0a5c2ed094fe9b20..b4810b83d039f61de0456ee1ed9fcbb204860989 100644
--- a/ee/lib/ee/api/entities/group_hook.rb
+++ b/ee/lib/ee/api/entities/group_hook.rb
@@ -18,6 +18,7 @@ class GroupHook < ::API::Entities::Hook
         expose :push_events_branch_filter, documentation: { type: 'string', example: 'my-branch-*' }
         expose :emoji_events, documentation: { type: 'boolean' }
         expose :resource_access_token_events, documentation: { type: 'boolean' }
+        expose :member_events, documentation: { type: 'boolean' }
       end
     end
   end
diff --git a/ee/spec/factories/group_hooks.rb b/ee/spec/factories/group_hooks.rb
index ceb297ba7d3dc965ae017a3bd3a8d4a0ad53890f..6b3a4825967572814c4aed9108395d398292e460 100644
--- a/ee/spec/factories/group_hooks.rb
+++ b/ee/spec/factories/group_hooks.rb
@@ -21,6 +21,7 @@
       subgroup_events { true }
       emoji_events { true }
       resource_access_token_events { true }
+      member_events { true }
     end
   end
 end
diff --git a/ee/spec/fixtures/api/schemas/public_api/v4/group_hook.json b/ee/spec/fixtures/api/schemas/public_api/v4/group_hook.json
index f953ffc353977de150857ef073f7666e39450ffd..befb98d647763e3ce77bec8e760ba369090612cd 100644
--- a/ee/spec/fixtures/api/schemas/public_api/v4/group_hook.json
+++ b/ee/spec/fixtures/api/schemas/public_api/v4/group_hook.json
@@ -22,6 +22,7 @@
     "releases_events",
     "subgroup_events",
     "emoji_events",
+    "member_events",
     "alert_status",
     "disabled_until",
     "url_variables",
@@ -105,6 +106,9 @@
     "resource_access_token_events": {
       "type": "boolean"
     },
+    "member_events": {
+      "type": "boolean"
+    },
     "alert_status": {
       "type": "string",
       "enum": [
diff --git a/ee/spec/requests/api/group_hooks_spec.rb b/ee/spec/requests/api/group_hooks_spec.rb
index eea739a19f3557be471a796a9800ff73109fa8b1..42edb8f2f3990f56d8aa148be5bffa3ce32085b4 100644
--- a/ee/spec/requests/api/group_hooks_spec.rb
+++ b/ee/spec/requests/api/group_hooks_spec.rb
@@ -59,6 +59,7 @@ def event_names
         subgroup_events
         emoji_events
         resource_access_token_events
+        member_events
       ]
     end