- List all instance variables
- Show instance variable details
- Create instance variable
- Update instance variable
- Remove instance variable
Instance-level CI/CD variables API
Version history
- Introduced in GitLab 13.0
- Feature flag removed in GitLab 13.2.
List all instance variables
Get the list of all instance-level variables.
GET /admin/ci/variables curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables" [ { "key": "TEST_VARIABLE_1", "variable_type": "env_var", "value": "TEST_1", "protected": false, "masked": false, "raw": false }, { "key": "TEST_VARIABLE_2", "variable_type": "env_var", "value": "TEST_2", "protected": false, "masked": false, "raw": false } ] Show instance variable details
Get the details of a specific instance-level variable.
GET /admin/ci/variables/:key | Attribute | Type | required | Description |
|---|---|---|---|
key | string | yes | The key of a variable |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables/TEST_VARIABLE_1" { "key": "TEST_VARIABLE_1", "variable_type": "env_var", "value": "TEST_1", "protected": false, "masked": false, "raw": false } Create instance variable
Create a new instance-level variable.
In GitLab 13.1 and later, the maximum number of allowed instance-level variables can be changed.
POST /admin/ci/variables | Attribute | Type | required | Description |
|---|---|---|---|
key | string | yes | The key of a variable. Max 255 characters, only A-Z, a-z, 0-9, and _ are allowed. |
value | string | yes | The value of a variable. 10,000 characters allowed (GitLab 13.3 and later). |
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 expandable. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ "https://gitlab.example.com/api/v4/admin/ci/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 } Update instance variable
Update an instance-level variable.
PUT /admin/ci/variables/:key | Attribute | Type | required | Description |
|---|---|---|---|
key | string | yes | The key of a variable. |
value | string | yes | The value of a variable. 10,000 characters allowed (GitLab 13.3 and later). |
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 expandable. |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \ "https://gitlab.example.com/api/v4/admin/ci/variables/NEW_VARIABLE" --form "value=updated value" { "key": "NEW_VARIABLE", "value": "updated value", "variable_type": "env_var", "protected": true, "masked": true, "raw": true } Remove instance variable
Remove an instance-level variable.
DELETE /admin/ci/variables/:key | Attribute | Type | required | Description |
|---|---|---|---|
key | string | yes | The key of a variable |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables/VARIABLE_1"