Group-level Variables API (FREE ALL)
Get list of a group's variables.
GET /groups/:id/variables
curl --header " PRIVATE-TOKEN: <your_access_token>" " https://gitlab.example.com/api/v4/groups/1/variables"
[
{
"key" : " TEST_VARIABLE_1" ,
"variable_type" : " env_var" ,
"value" : " TEST_1" ,
"protected" : false ,
"masked" : false ,
"raw" : false ,
"environment_scope" : " *" ,
"description" : null
},
{
"key" : " TEST_VARIABLE_2" ,
"variable_type" : " env_var" ,
"value" : " TEST_2" ,
"protected" : false ,
"masked" : false ,
"raw" : false ,
"environment_scope" : " *" ,
"description" : null
}
]
Get the details of a group's specific variable.
GET /groups/:id/variables/:key
Attribute
Type
Required
Description
id
integer/string
Yes
The ID of a group or URL-encoded path of the group
key
string
Yes
The key of a variable
curl --header " PRIVATE-TOKEN: <your_access_token>" " https://gitlab.example.com/api/v4/groups/1/variables/TEST_VARIABLE_1"
{
"key" : " TEST_VARIABLE_1" ,
"variable_type" : " env_var" ,
"value" : " TEST_1" ,
"protected" : false ,
"masked" : false ,
"raw" : false ,
"environment_scope" : " *" ,
"description" : null
}
Create a new variable.
POST /groups/:id/variables
Attribute
Type
Required
Description
id
integer/string
Yes
The ID of a group or URL-encoded path of the group
key
string
Yes
The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed
value
string
Yes
The value of a variable
variable_type
string
No
The type of a variable. Available types are: env_var (default) and file
protected
boolean
No
Whether the variable is protected
masked
boolean
No
Whether the variable is masked
raw
boolean
No
Whether the variable is treated as a raw string. Default: false. When true, variables in the value are not expanded .
environment_scope (PREMIUM ALL)
string
No
The environment scope of a variable
description
string
No
The description of the variable. Default: null
curl --request POST --header " PRIVATE-TOKEN: <your_access_token>" \
" https://gitlab.example.com/api/v4/groups/1/variables" --form " key=NEW_VARIABLE" --form " value=new value"
{
"key" : " NEW_VARIABLE" ,
"value" : " new value" ,
"variable_type" : " env_var" ,
"protected" : false ,
"masked" : false ,
"raw" : false ,
"environment_scope" : " *" ,
"description" : null
}
Update a group's variable.
PUT /groups/:id/variables/:key
Attribute
Type
Required
Description
id
integer/string
Yes
The ID of a group or URL-encoded path of the group
key
string
Yes
The key of a variable
value
string
Yes
The value of a variable
variable_type
string
No
The type of a variable. Available types are: env_var (default) and file
protected
boolean
No
Whether the variable is protected
masked
boolean
No
Whether the variable is masked
raw
boolean
No
Whether the variable is treated as a raw string. Default: false. When true, variables in the value are not expanded .
environment_scope (PREMIUM ALL)
string
No
The environment scope of a variable
description
string
No
The description of the variable. Default: null. Introduced in GitLab 16.2.
curl --request PUT --header " PRIVATE-TOKEN: <your_access_token>" \
" https://gitlab.example.com/api/v4/groups/1/variables/NEW_VARIABLE" --form " value=updated value"
{
"key" : " NEW_VARIABLE" ,
"value" : " updated value" ,
"variable_type" : " env_var" ,
"protected" : true ,
"masked" : true ,
"raw" : true ,
"environment_scope" : " *" ,
"description" : null
}
Remove a group's variable.
DELETE /groups/:id/variables/:key
Attribute
Type
Required
Description
id
integer/string
Yes
The ID of a group or URL-encoded path of the group
key
string
Yes
The key of a variable
curl --request DELETE --header " PRIVATE-TOKEN: <your_access_token>" \
" https://gitlab.example.com/api/v4/groups/1/variables/VARIABLE_1"