Instance-level CI/CD variables API

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab Self-Managed, GitLab Dedicated

List all instance variables

History

Get the list of all instance-level variables.

Copy to clipboard
GET /admin/ci/variables
Copy to clipboard
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables"
Copy to clipboard
[
    {
        "key": "TEST_VARIABLE_1",
        "description": null,
        "variable_type": "env_var",
        "value": "TEST_1",
        "protected": false,
        "masked": false,
        "raw": false
    },
    {
        "key": "TEST_VARIABLE_2",
        "description": null,
        "variable_type": "env_var",
        "value": "TEST_2",
        "protected": false,
        "masked": false,
        "raw": false
    }
]

Show instance variable details

History

Get the details of a specific instance-level variable.

Copy to clipboard
GET /admin/ci/variables/:key
AttributeTypeRequiredDescription
keystringYesThe key of a variable
Copy to clipboard
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables/TEST_VARIABLE_1"
Copy to clipboard
{
    "key": "TEST_VARIABLE_1",
    "description": null,
    "variable_type": "env_var",
    "value": "TEST_1",
    "protected": false,
    "masked": false,
    "raw": false
}

Create instance variable

History

Create a new instance-level variable.

The maximum number of instance-level variables can be changed.

Copy to clipboard
POST /admin/ci/variables
AttributeTypeRequiredDescription
keystringYesThe key of the variable. Maximum of 255 characters, only A-Z, a-z, 0-9, and _ are allowed.
valuestringYesThe value of the variable. Maximum of 10,000 characters.
descriptionstringNoThe description of the variable. Maximum of 255 characters.
maskedbooleanNoWhether the variable is masked.
protectedbooleanNoWhether the variable is protected.
rawbooleanNoWhether the variable is expandable.
variable_typestringNoThe type of the variable. Available types are: env_var (default) and file.
Copy to clipboard
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"
Copy to clipboard
{
    "key": "NEW_VARIABLE",
    "description": null,
    "value": "new value",
    "variable_type": "env_var",
    "protected": false,
    "masked": false,
    "raw": false
}

Update instance variable

History

Update an instance-level variable.

Copy to clipboard
PUT /admin/ci/variables/:key
AttributeTypeRequiredDescription
descriptionstringNoThe description of the variable. Maximum of 255 characters.
keystringYesThe key of the variable. Maximum of 255 characters, only A-Z, a-z, 0-9, and _ are allowed.
maskedbooleanNoWhether the variable is masked.
protectedbooleanNoWhether the variable is protected.
rawbooleanNoWhether the variable is expandable.
valuestringYesThe value of the variable. Maximum of 10,000 characters.
variable_typestringNoThe type of the variable. Available types are: env_var (default) and file.
Copy to clipboard
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/admin/ci/variables/NEW_VARIABLE" --form "value=updated value"
Copy to clipboard
{
    "key": "NEW_VARIABLE",
    "description": null,
    "value": "updated value",
    "variable_type": "env_var",
    "protected": true,
    "masked": true,
    "raw": true
}

Remove instance variable

Remove an instance-level variable.

Copy to clipboard
DELETE /admin/ci/variables/:key
AttributeTypeRequiredDescription
keystringYesThe key of a variable
Copy to clipboard
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables/VARIABLE_1"