Documentation
Documentation
https://docs.gitlab.com/api/
APIReference
https://docs.gitlab.com/api/api_resources/
Authentication
https://docs.gitlab.com/api/rest/authentication/
swagger: '2.0'
info:
title: GitLab access_requests members API
version: v4
description: Operations related to access requests
host: gitlab.com
produces:
- application/json
tags:
- name: members
description: Operations about members
paths:
/api/v4/groups/{id}/members:
get:
description: "Gets a list of group or project members viewable by the authenticated user,\n excluding those with inherited membership from ancestor groups."
produces:
- application/json
parameters:
- in: path
name: id
description: The group ID
type: string
required: true
- in: query
name: query
description: A query string to search for members
type: string
required: false
- in: query
name: user_ids
description: Array of user ids to look up for membership
type: array
items:
type: integer
format: int32
required: false
- in: query
name: skip_users
description: Array of user ids to be skipped for membership
type: array
items:
type: integer
format: int32
required: false
- in: query
name: show_seat_info
description: Show seat information for members
type: boolean
required: false
- in: query
name: with_saml_identity
description: List only members with linked SAML identity
type: boolean
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: "Gets a list of group or project members viewable by the authenticated user,\n excluding those with inherited membership from ancestor groups."
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: getApiV4GroupsIdMembers
post:
description: Adds a member to a group or project.
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The group ID
type: string
required: true
- name: postApiV4GroupsIdMembers
in: body
required: true
schema:
$ref: '#/definitions/postApiV4GroupsIdMembers'
responses:
'201':
description: Adds a member to a group or project.
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: postApiV4GroupsIdMembers
/api/v4/groups/{id}/members/all:
get:
description: "Gets a list of group or project members viewable by the authenticated user,\n including those with inherited membership from ancestor groups."
produces:
- application/json
parameters:
- in: path
name: id
description: The group ID
type: string
required: true
- in: query
name: query
description: A query string to search for members
type: string
required: false
- in: query
name: user_ids
description: Array of user ids to look up for membership
type: array
items:
type: integer
format: int32
required: false
- in: query
name: show_seat_info
description: Show seat information for members
type: boolean
required: false
- in: query
name: state
description: Filter results by member state
type: string
enum:
- awaiting
- active
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: "Gets a list of group or project members viewable by the authenticated user,\n including those with inherited membership from ancestor groups."
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: getApiV4GroupsIdMembersAll
/api/v4/groups/{id}/members/{user_id}:
get:
description: Gets a member of a group or project.
produces:
- application/json
parameters:
- in: path
name: id
description: The group ID
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
responses:
'200':
description: Gets a member of a group or project.
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: getApiV4GroupsIdMembersUserId
put:
description: Updates a member of a group or project.
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The group ID
type: string
required: true
- in: path
name: user_id
description: The user ID of the new member
type: integer
format: int32
required: true
- name: putApiV4GroupsIdMembersUserId
in: body
required: true
schema:
$ref: '#/definitions/putApiV4GroupsIdMembersUserId'
responses:
'200':
description: Updates a member of a group or project.
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: putApiV4GroupsIdMembersUserId
delete:
description: Removes a user from a group or project.
produces:
- application/json
parameters:
- in: path
name: id
description: The group ID
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
- in: query
name: skip_subresources
description: Flag indicating if the deletion of direct memberships of the removed member in subgroups and projects should be skipped
type: boolean
default: false
required: false
- in: query
name: unassign_issuables
description: Flag indicating if the removed member should be unassigned from any issues or merge requests within given group or project
type: boolean
default: false
required: false
responses:
'204':
description: Removes a user from a group or project.
tags:
- members
operationId: deleteApiV4GroupsIdMembersUserId
/api/v4/groups/{id}/members/all/{user_id}:
get:
description: Gets a member of a group or project, including those who gained membership through ancestor group
produces:
- application/json
parameters:
- in: path
name: id
description: The group ID
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
responses:
'200':
description: Gets a member of a group or project, including those who gained membership through ancestor group
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: getApiV4GroupsIdMembersAllUserId
/api/v4/groups/{id}/members/{user_id}/override:
post:
description: Overrides the access level of an LDAP group member.
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
responses:
'201':
description: Overrides the access level of an LDAP group member.
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: postApiV4GroupsIdMembersUserIdOverride
delete:
description: Remove an LDAP group member access level override.
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
responses:
'200':
description: Remove an LDAP group member access level override.
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: deleteApiV4GroupsIdMembersUserIdOverride
/api/v4/groups/{id}/members/{member_id}/approve:
put:
description: Approves a pending member
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: path
name: member_id
description: The ID of the member requiring approval
type: integer
format: int32
required: true
responses:
'200':
description: Approves a pending member
tags:
- members
operationId: putApiV4GroupsIdMembersMemberIdApprove
/api/v4/groups/{id}/members/approve_all:
post:
description: Approves all pending members
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
responses:
'201':
description: Approves all pending members
tags:
- members
operationId: postApiV4GroupsIdMembersApproveAll
/api/v4/groups/{id}/pending_members:
get:
description: Lists all pending members for a group including invited users
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- 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: Lists all pending members for a group including invited users
tags:
- members
operationId: getApiV4GroupsIdPendingMembers
/api/v4/groups/{id}/members/{user_id}/state:
put:
description: Changes the state of the memberships of a user in the group
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: path
name: user_id
description: The user ID of the user
type: integer
format: int32
required: true
- name: putApiV4GroupsIdMembersUserIdState
in: body
required: true
schema:
$ref: '#/definitions/putApiV4GroupsIdMembersUserIdState'
responses:
'200':
description: Changes the state of the memberships of a user in the group
tags:
- members
operationId: putApiV4GroupsIdMembersUserIdState
/api/v4/groups/{id}/billable_members/{user_id}/memberships:
get:
description: Get the direct memberships of a billable user of a top-level group.
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
- 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 direct memberships of a billable user of a top-level group.
schema:
$ref: '#/definitions/API_Entities_BillableMembership'
tags:
- members
operationId: getApiV4GroupsIdBillableMembersUserIdMemberships
/api/v4/groups/{id}/billable_members/{user_id}/indirect:
get:
description: Get the indirect memberships of a billable user of a top-level group.
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
- 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 indirect memberships of a billable user of a top-level group.
schema:
$ref: '#/definitions/API_Entities_BillableMembership'
tags:
- members
operationId: getApiV4GroupsIdBillableMembersUserIdIndirect
/api/v4/groups/{id}/billable_members/{user_id}:
delete:
description: Removes a billable member from a group or project.
produces:
- application/json
parameters:
- in: path
name: id
description: The ID of a group
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
responses:
'204':
description: Removes a billable member from a group or project.
tags:
- members
operationId: deleteApiV4GroupsIdBillableMembersUserId
/api/v4/projects/{id}/members:
get:
description: "Gets a list of group or project members viewable by the authenticated user,\n excluding those with inherited membership from ancestor groups."
produces:
- application/json
parameters:
- in: path
name: id
description: The project ID
type: string
required: true
- in: query
name: query
description: A query string to search for members
type: string
required: false
- in: query
name: user_ids
description: Array of user ids to look up for membership
type: array
items:
type: integer
format: int32
required: false
- in: query
name: skip_users
description: Array of user ids to be skipped for membership
type: array
items:
type: integer
format: int32
required: false
- in: query
name: show_seat_info
description: Show seat information for members
type: boolean
required: false
- in: query
name: with_saml_identity
description: List only members with linked SAML identity
type: boolean
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: "Gets a list of group or project members viewable by the authenticated user,\n excluding those with inherited membership from ancestor groups."
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: getApiV4ProjectsIdMembers
post:
description: Adds a member to a group or project.
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The project ID
type: string
required: true
- name: postApiV4ProjectsIdMembers
in: body
required: true
schema:
$ref: '#/definitions/postApiV4ProjectsIdMembers'
responses:
'201':
description: Adds a member to a group or project.
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: postApiV4ProjectsIdMembers
/api/v4/projects/{id}/members/all:
get:
description: "Gets a list of group or project members viewable by the authenticated user,\n including those with inherited membership from ancestor groups."
produces:
- application/json
parameters:
- in: path
name: id
description: The project ID
type: string
required: true
- in: query
name: query
description: A query string to search for members
type: string
required: false
- in: query
name: user_ids
description: Array of user ids to look up for membership
type: array
items:
type: integer
format: int32
required: false
- in: query
name: show_seat_info
description: Show seat information for members
type: boolean
required: false
- in: query
name: state
description: Filter results by member state
type: string
enum:
- awaiting
- active
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: "Gets a list of group or project members viewable by the authenticated user,\n including those with inherited membership from ancestor groups."
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: getApiV4ProjectsIdMembersAll
/api/v4/projects/{id}/members/{user_id}:
get:
description: Gets a member of a group or project.
produces:
- application/json
parameters:
- in: path
name: id
description: The project ID
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
responses:
'200':
description: Gets a member of a group or project.
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: getApiV4ProjectsIdMembersUserId
put:
description: Updates a member of a group or project.
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The project ID
type: string
required: true
- in: path
name: user_id
description: The user ID of the new member
type: integer
format: int32
required: true
- name: putApiV4ProjectsIdMembersUserId
in: body
required: true
schema:
$ref: '#/definitions/putApiV4ProjectsIdMembersUserId'
responses:
'200':
description: Updates a member of a group or project.
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: putApiV4ProjectsIdMembersUserId
delete:
description: Removes a user from a group or project.
produces:
- application/json
parameters:
- in: path
name: id
description: The project ID
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
- in: query
name: skip_subresources
description: Flag indicating if the deletion of direct memberships of the removed member in subgroups and projects should be skipped
type: boolean
default: false
required: false
- in: query
name: unassign_issuables
description: Flag indicating if the removed member should be unassigned from any issues or merge requests within given group or project
type: boolean
default: false
required: false
responses:
'204':
description: Removes a user from a group or project.
tags:
- members
operationId: deleteApiV4ProjectsIdMembersUserId
/api/v4/projects/{id}/members/all/{user_id}:
get:
description: Gets a member of a group or project, including those who gained membership through ancestor group
produces:
- application/json
parameters:
- in: path
name: id
description: The project ID
type: string
required: true
- in: path
name: user_id
description: The user ID of the member
type: integer
format: int32
required: true
responses:
'200':
description: Gets a member of a group or project, including those who gained membership through ancestor group
schema:
$ref: '#/definitions/API_Entities_Member'
tags:
- members
operationId: getApiV4ProjectsIdMembersAllUserId
definitions:
putApiV4GroupsIdMembersUserIdState:
type: object
properties:
state:
type: string
description: The new state for the memberships of the user
enum:
- awaiting
- active
required:
- state
description: Changes the state of the memberships of a user in the group
API_Entities_CustomAttribute:
type: object
properties:
key:
type: string
example: foo
value:
type: string
example: bar
required:
- key
- value
description: API_Entities_CustomAttribute model
API_Entities_MemberRole:
type: object
properties:
id:
type: integer
format: int32
example: 2
group_id:
type: integer
format: int32
example: 2
name:
type: text
example: Custom guest
description:
type: text
example: Guest user who can also read_code
base_access_level:
type: integer
format: int32
enum:
- 5
- 10
- 15
- 20
- 30
- 40
example: 40
apply_security_scan_profiles:
type: boolean
admin_merge_request:
type: boolean
archive_project:
type: boolean
remove_project:
type: boolean
remove_group:
type: boolean
manage_security_policy_link:
type: boolean
admin_compliance_framework:
type: boolean
admin_cicd_variables:
type: boolean
manage_deploy_tokens:
type: boolean
manage_group_access_tokens:
type: boolean
admin_group_member:
type: boolean
admin_integrations:
type: boolean
manage_merge_request_settings:
type: boolean
manage_project_access_tokens:
type: boolean
admin_protected_branch:
type: boolean
admin_protected_environments:
type: boolean
manage_protected_tags:
type: boolean
admin_push_rules:
type: boolean
admin_runners:
type: boolean
admin_security_attributes:
type: boolean
admin_terraform_state:
type: boolean
admin_vulnerability:
type: boolean
admin_web_hook:
type: boolean
read_compliance_dashboard:
type: boolean
read_security_scan_profiles:
type: boolean
read_virtual_registry:
type: boolean
read_admin_cicd:
type: boolean
read_crm_contact:
type: boolean
read_dependency:
type: boolean
read_admin_groups:
type: boolean
read_admin_projects:
type: boolean
read_code:
type: boolean
read_runners:
type: boolean
read_security_attribute:
type: boolean
read_admin_subscription:
type: boolean
read_admin_monitoring:
type: boolean
read_admin_users:
type: boolean
read_vulnerability:
type: boolean
required:
- id
- group_id
- name
- description
- base_access_level
- apply_security_scan_profiles
- admin_merge_request
- archive_project
- remove_project
- remove_group
- manage_security_policy_link
- admin_compliance_framework
- admin_cicd_variables
- manage_deploy_tokens
- manage_group_access_tokens
- admin_group_member
- admin_integrations
- manage_merge_request_settings
- manage_project_access_tokens
- admin_protected_branch
- admin_protected_environments
- manage_protected_tags
- admin_push_rules
- admin_runners
- admin_security_attributes
- admin_terraform_state
- admin_vulnerability
- admin_web_hook
- read_compliance_dashboard
- read_security_scan_profiles
- read_virtual_registry
- read_admin_cicd
- read_crm_contact
- read_dependency
- read_admin_groups
- read_admin_projects
- read_code
- read_runners
- read_security_attribute
- read_admin_subscription
- read_admin_monitoring
- read_admin_users
- read_vulnerability
API_Entities_BillableMembership:
type: object
properties:
id:
type: string
source_id:
type: string
source_full_name:
type: string
source_members_url:
type: string
created_at:
type: string
expires_at:
type: string
access_level:
type: object
properties:
string_value:
type: string
integer_value:
type: string
custom_role:
type: string
required:
- string_value
- integer_value
- custom_role
required:
- id
- source_id
- source_full_name
- source_members_url
- created_at
- expires_at
- access_level
description: API_Entities_BillableMembership model
postApiV4ProjectsIdMembers:
type: object
properties:
access_level:
type: integer
format: int32
description: A valid access level.
user_id:
type: integer
format: int32
description: The user ID of the new member or multiple IDs separated by commas.
username:
type: string
description: The username of the new member or multiple usernames separated by commas.
expires_at:
type: string
format: date-time
description: Date string in the format YEAR-MONTH-DAY
invite_source:
type: string
description: Source that triggered the member creation process
default: members-api
required:
- access_level
description: Adds a member to a group or project.
putApiV4GroupsIdMembersUserId:
type: object
properties:
access_level:
type: integer
format: int32
description: A valid access level
expires_at:
type: string
format: date-time
description: Date string in the format YEAR-MONTH-DAY
member_role_id:
type: integer
format: int32
description: The ID of the Member Role to be updated
required:
- access_level
description: Updates a member of a group or project.
API_Entities_UserBasic:
type: object
properties:
id:
type: integer
format: int32
example: 1
username:
type: string
example: admin
public_email:
type: string
example: john@example.com
name:
type: string
example: Administrator
state:
type: string
example: active
locked:
type: boolean
avatar_url:
type: string
example: https://gravatar.com/avatar/1
avatar_path:
type: string
example: /user/avatar/28/The-Big-Lebowski-400-400.png
custom_attributes:
type: array
items:
$ref: '#/definitions/API_Entities_CustomAttribute'
web_url:
type: string
example: https://gitlab.example.com/root
required:
- id
- username
- public_email
- name
- state
- locked
- avatar_url
- web_url
description: API_Entities_UserBasic model
API_Entities_Identity:
type: object
properties:
provider:
type: string
extern_uid:
type: string
saml_provider_id:
type: string
required:
- provider
- extern_uid
- saml_provider_id
postApiV4GroupsIdMembers:
type: object
properties:
access_level:
type: integer
format: int32
description: A valid access level.
user_id:
type: integer
format: int32
description: The user ID of the new member or multiple IDs separated by commas.
username:
type: string
description: The username of the new member or multiple usernames separated by commas.
expires_at:
type: string
format: date-time
description: Date string in the format YEAR-MONTH-DAY
invite_source:
type: string
description: Source that triggered the member creation process
default: members-api
required:
- access_level
description: Adds a member to a group or project.
putApiV4ProjectsIdMembersUserId:
type: object
properties:
access_level:
type: integer
format: int32
description: A valid access level
expires_at:
type: string
format: date-time
description: Date string in the format YEAR-MONTH-DAY
member_role_id:
type: integer
format: int32
description: The ID of the Member Role to be updated
required:
- access_level
description: Updates a member of a group or project.
API_Entities_Member:
type: object
properties:
id:
type: integer
format: int32
example: 1
username:
type: string
example: admin
public_email:
type: string
example: john@example.com
name:
type: string
example: Administrator
state:
type: string
example: active
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/openapi/gitlab-ci-members-api-openapi.yml