---
title: "Create a project substitution variable"
method: POST
path: "/v1/integration/projects/{projectId}/variables"
tags: ["Unified Project Lifecycle APIs"]
---

# Create a project substitution variable

`POST /v1/integration/projects/{projectId}/variables`

## Request

- Base URL: `https://integration-adapter.connect.cloud.precisely.com`
- URL: `https://integration-adapter.connect.cloud.precisely.com/v1/integration/projects/{projectId}/variables`
- Auth: HTTP bearer

Creates a project- or pipeline-scoped substitution variable. Requires `replication-pipeline::manage`.

## Path parameters

- `projectId` string, required

## Query parameters

- `projectType` 'REPLICATION' | 'MAINFRAME_REPLICATION' | 'ADVANCED_REPLICATION', required: Supported project types for unified project operations
- `pipelineId` string

## Request body

- UnifiedProjectVariableRequest
  - `name` string
  - `value` string
  - `type` 'PARAMETER_DATA_TYPE_STRING' | 'PARAMETER_DATA_TYPE_ENCRYPTED_STRING'
  - `description` string

## Response `201`

Variable created

- UnifiedProjectVariableResponse
  - `id` string
  - `projectType` 'REPLICATION' | 'MAINFRAME_REPLICATION' | 'ADVANCED_REPLICATION'
  - `name` string
  - `value` string
  - `type` 'PARAMETER_DATA_TYPE_STRING' | 'PARAMETER_DATA_TYPE_ENCRYPTED_STRING'
  - `description` string
  - `lastModifiedBy` string
  - `lastUpdatedAt` string, date-time

## Other responses

- `400`: Invalid variable request
- `401`: Unauthorized
- `403`: Forbidden — requires replication-pipeline::manage
- `404`: Project or pipeline not found
- `409`: Variable name conflict
- `500`: Connect Portal variable creation failed

---

[API](https://skmtc.dev/precisely/apis/precisely-integration-adapter-service.md) · [All operations](https://skmtc.dev/precisely/apis/precisely-integration-adapter-service/llms.txt) · [OpenAPI document](https://skmtc.dev/precisely/apis/precisely-integration-adapter-service/revisions/2d2629f4987d?raw)
