Create Environment Variable
Overview
Creates a new environment variable. Environment variables can be global (same value for all environments) or environment-specific (different values per environment). The variable is automatically deployed to all environments.
Endpoint
POST /apiops/projects/{projectName}/environmentVariables/{name}/
Authentication
Requires a Personal API Access Token.
Header
Authorization: Bearer YOUR_TOKEN
Request
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {token} | Yes |
| Content-Type | application/json | Yes |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectName | string | Yes | Project name (can be “admin” for admin project) |
| name | string | Yes | Environment variable name (unique identifier) |
Request Body
Full JSON Body Example - Global Environment Variable
{
"name": "API_KEY",
"description": "API Key for external service",
"global": true,
"globalValue": "secret-api-key-12345",
"globalVisible": false,
"environmentValueList": null
}
Full JSON Body Example - Environment-Specific Variable
{
"name": "API_BASE_URL",
"description": "Base URL for API calls",
"global": false,
"globalValue": null,
"globalVisible": true,
"environmentValueList": [
{
"environmentName": "production",
"value": "https://api.production.example.com",
"visible": true
},
{
"environmentName": "staging",
"value": "https://api.staging.example.com",
"visible": true
},
{
"environmentName": "development",
"value": "https://api.dev.example.com",
"visible": true
}
]
}
Full JSON Body Example - Environment-Specific with Secret Values
{
"name": "DATABASE_PASSWORD",
"description": "Database password",
"global": false,
"globalValue": null,
"globalVisible": true,
"environmentValueList": [
{
"environmentName": "production",
"value": "prod-secret-password",
"visible": false
},
{
"environmentName": "staging",
"value": "staging-secret-password",
"visible": false
}
]
}
Request Body Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | Yes | - | Environment variable name (must match path parameter) |
| description | string | No | - | Environment variable description |
| global | boolean | No | false | Whether the variable is global (true) or environment-specific (false) |
| globalValue | string|null | No | null | Global value (required if global=true) |
| globalVisible | boolean | No | true | Whether global value is visible (not secret) |
| environmentValueList | array[object]|null | No | null | List of environment-specific values (required if global=false). See Environment Value Object |
Environment Value Object (environmentValueList)
| Field | Type | Required | Description | |
|---|---|---|---|---|
| environmentName | string | Yes | Environment name | |
| value | string | Yes | Value for this environment | |
| visible | boolean | No | false | Whether the value is visible (not secret) |
Notes
namein path must matchnamein bodynamemust be unique within the project- If
global=true, provideglobalValueand setenvironmentValueList=null - If
global=false, provideenvironmentValueListwith at least one environment value visible=falsemarks the value as secret (will be masked in responses)globalVisible=falsemarks the global value as secret- Variable is automatically deployed to all environments after creation
Response
Success Response (200 OK)
{
"success": true,
"deploymentResult": {
"success": true,
"message": "Deployment completed successfully",
"environmentResults": [
{
"environmentName": "production",
"success": true,
"message": "Deployed successfully"
},
{
"environmentName": "staging",
"success": true,
"message": "Deployed successfully"
}
]
}
}
Error Response (400 Bad Request)
{
"error": "bad_request",
"error_description": "Environment variable name can not be empty!"
}
or
{
"error": "bad_request",
"error_description": "Environment variable name in path (API_KEY) does not match name in body (API_BASE_URL)!"
}
or
{
"error": "bad_request",
"error_description": "Environment variable (name: API_KEY) already exists!"
}
Common Causes
- Missing or empty
namefield - Name in path does not match name in body
- Environment variable name already exists
- Invalid global/environment-specific configuration
cURL Example
Example 1: Create Global Environment Variable
curl -X POST \
"https://demo.apinizer.com/apiops/projects/MyProject/environmentVariables/API_KEY/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "API_KEY",
"description": "API Key for external service",
"global": true,
"globalValue": "secret-api-key-12345",
"globalVisible": false
}'
Example 2: Create Environment-Specific Variable
curl -X POST \
"https://demo.apinizer.com/apiops/projects/MyProject/environmentVariables/API_BASE_URL/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "API_BASE_URL",
"description": "Base URL for API calls",
"global": false,
"environmentValueList": [
{
"environmentName": "production",
"value": "https://api.production.example.com",
"visible": true
},
{
"environmentName": "staging",
"value": "https://api.staging.example.com",
"visible": true
}
]
}'
Notes and Warnings
- Name Uniqueness:
- Environment variable name must be unique within the project
- If name already exists, creation will fail
- Name Matching:
- Name in path must match name in body
- Case-insensitive matching
- Global vs Environment-Specific:
global=true- Single value for all environmentsglobal=false- Different values per environment
- Secret Values:
- Set
visible=falseorglobalVisible=falseto mark values as secret - Secret values are masked (returned as
null) in responses
- Set
- Environment Names:
- Environment names must exist
- Use
environmentName(notenvironmentId)
- Automatic Deployment:
- Variable is automatically deployed to all environments
- Deployment results are returned in the response
- Permissions:
- Requires
ROLE_API_SECURITYpermission - Requires
ROLE_DEPLOY_UNDEPLOY_PROXIESpermission for deployment - User must have access to the project
- Requires
Related Documentation
- List Environment Variables - List all environment variables
- Update Environment Variable - Update an environment variable