Ana içeriğe geç

Create Environment Variable

Endpoint​

POST /apiops/projects/{projectName}/environmentVariables/{name}/

Authentication​

Requires a Personal API Access Token.

Authorization: Bearer YOUR_TOKEN

Request​

Headers​

HeaderValueRequired
AuthorizationBearer {token}Yes
Content-Typeapplication/jsonYes

Path Parameters​

ParameterTypeRequiredDescription
projectNamestringYesProject name (can be "admin" for admin project)
namestringYesEnvironment 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​

FieldTypeRequiredDefaultDescription
namestringYes-Environment variable name (should match path {name}; backend uses the path value as the identifier)
descriptionstringNo-Environment variable description
globalbooleanNofalseWhether the variable is global (true) or environment-specific (false)
globalValuestring|nullNonullGlobal value (required if global=true)
globalVisiblebooleanNotrueWhether the global value may be read back. false marks it Secret — never returned by any read endpoint. Does not control encryption: every value is stored encrypted
environmentValueListarray[object]|nullNonullList of environment-specific values (required if global=false). See Environment Value Object

Environment Value Object (environmentValueList)​

FieldTypeRequiredDescription
environmentNamestringYesEnvironment name
valuestringYesValue for this environment
visiblebooleanNofalse

Notes​

  • Path {name} is the identifier; backend persists the path name (body name should match for clarity)
  • name must be unique within the project
  • If global=true, provide globalValue and set environmentValueList=null
  • If global=false, provide environmentValueList with at least one environment value
  • Send values as plain text — every value is encrypted before it is stored, whether or not it is marked Secret
  • visible=false marks the value Secret: it is never returned by any read endpoint (null) and never carried as plain text in an export package
  • globalVisible=false marks the global value Secret
  • Values that are not Secret are returned decrypted by the read endpoints, so a CI/CD pipeline can read the real configuration
  • Variable is automatically deployed to all environments after creation

Response​

Success Response (200 OK) - Deployment Successful​

When the environment variable is created and successfully deployed to all environments:

{
"status": "SUCCESS",
"deploymentResult": {
"success": true,
"responseTime": 1500,
"detailList": [
{
"envName": "production",
"success": true,
"detail": "Deployed successfully",
"responseTime": 450
},
{
"envName": "staging",
"success": true,
"detail": "Deployed successfully",
"responseTime": 420
}
]
}
}

Error Response (400 Bad Request)​

{
"status": "FAILURE",
"resultMessage": "Environment variable name can not be empty!"
}

or

{
"status": "FAILURE",
"resultMessage": "Environment variable name in path (API_KEY) does not match name in body (API_BASE_URL)!"
}

or

{
"status": "FAILURE",
"resultMessage": "Environment variable (name: API_KEY) already exists!"
}

Common Causes​

  • Missing or empty path {name} parameter
  • Environment variable name already exists
  • Invalid global/environment-specific configuration
  • Project not found or insufficient access

Deployment Failure Note​

When status is "SUCCESS" but deploymentResult.success is false, the environment variable was created in the Manager but failed to deploy to one or more Gateway environments. Common causes:

  • Gateway not running or not reachable (e.g., "Connection refused" on port 8091)
  • Network connectivity issues between Manager and Gateway
  • Environment name mismatch or environment not configured

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
}
]
}'

Permissions​

User must have GLOBAL_SETTINGS + MANAGE permission in the project. See Environment Variables API for read vs write permissions.

Notes and Warnings​

  • Name identifier:

    • Variable name comes from the path parameter {name}
    • Provide the same name in the body for consistency
  • Global vs Environment-Specific:

    • global=true - Single value for all environments
    • global=false - Different values per environment
  • Encryption and Secret Values:

    • Every value is stored encrypted at rest, whether or not it is marked Secret — send plain text
    • Set visible=false or globalVisible=false to mark a value Secret
    • Secret values are never returned (null) by any read endpoint and never leave in an export package as plain text
    • Non-Secret values are returned decrypted by the read endpoints
  • Environment Names:

    • Environment names must exist
    • Use environmentName (not environmentId)
  • Automatic Deployment:

    • Variable is automatically deployed to all environments
    • Deployment results are returned in the response