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