Back to Gitlabhq

Instance-level CI/CD variables API

doc/api/instance_level_ci_variables.md

18.11.25.3 KB
Original Source

{{< details >}}

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

{{< /details >}}

Use this API to interact with CI/CD variables for your instance.

List all instance variables

{{< history >}}

  • description parameter introduced in GitLab 16.8.

{{< /history >}}

Lists all instance-level variables. Use the page and per_page pagination parameters to control the pagination of results.

plaintext
GET /admin/ci/variables
shell
curl \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/admin/ci/variables"
json
[
    {
        "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
    }
]

Retrieve instance variable details

{{< history >}}

  • description parameter introduced in GitLab 16.8.

{{< /history >}}

Retrieves details of a specific instance-level variable.

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

Create instance variable

{{< history >}}

  • description parameter introduced in GitLab 16.8.

{{< /history >}}

Creates a new instance-level variable.

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

plaintext
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.
shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/admin/ci/variables" \
  --form "key=NEW_VARIABLE" \
  --form "value=new value"
json
{
    "key": "NEW_VARIABLE",
    "description": null,
    "value": "new value",
    "variable_type": "env_var",
    "protected": false,
    "masked": false,
    "raw": false
}

Update instance variable

{{< history >}}

  • description parameter introduced in GitLab 16.8.

{{< /history >}}

Updates an instance-level variable.

plaintext
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.
shell
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/admin/ci/variables/NEW_VARIABLE" \
  --form "value=updated value"
json
{
    "key": "NEW_VARIABLE",
    "description": null,
    "value": "updated value",
    "variable_type": "env_var",
    "protected": true,
    "masked": true,
    "raw": true
}

Delete instance variable

Deletes an instance-level variable.

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