---
title: "Create Workflow Variable"
method: POST
path: "/workflow-variable"
tags: ["Workflow Variable"]
---

# Create Workflow Variable

`POST /workflow-variable`

## Request

- Base URL: `https://oneuptime.com/api`
- URL: `https://oneuptime.com/api/workflow-variable`
- Auth: API key in header `APIKey`
- TypeScript: <https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/docs/workflow-variable/post.ts> (a function with typed inputs; its response is checked against the schema)

Endpoint to create a new Workflow Variable

## Request body

- object
  - `data` WorkflowVariableCreateSchema, required: Create schema for WorkflowVariable model. Create
    - `projectId` string, uuid: ID of your OneUptime Project in which this object belongs. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `workflowId` string, uuid: ID of Workflow this variable belong to. If this is null then this variable will be a global variable. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `name` string, required: Variable Name. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `description` string: Friendly description that will help you remember. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `content` string: Content of the variable. Required for Static variables. Not used by OAuth 2.0 variables, whose value is the access token OneUptime fetches. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [No access - you don't have permission for this operation], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `isSecret` boolean: Is this variable a secret. If true, then it'll not be in the logs. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `variableType` 'Static' | 'OAuth 2.0': Static: the content you save is used as is. OAuth 2.0: OneUptime fetches an access token from your identity provider and refreshes it automatically when a workflow uses it after it has expired. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `oauthGrantType` 'Client Credentials' | 'Refresh Token': OAuth 2.0 variables only. Client Credentials for machine-to-machine access, or Refresh Token to keep delegated access alive with a refresh token you obtained once. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `oauthTokenUrl` string: OAuth 2.0 variables only. The token endpoint of your identity provider. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthClientId` string: OAuth 2.0 variables only. The client ID of the application registered with your identity provider. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthClientSecret` string, password: OAuth 2.0 variables only. The client secret of the application. Required for the Client Credentials grant; optional for the Refresh Token grant (public clients have none). Encrypted, and never readable through the API. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [No access - you don't have permission for this operation], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthRefreshToken` string, password: OAuth 2.0 variables using the Refresh Token grant only. OneUptime exchanges it for access tokens and stores the replacement when your identity provider rotates it. Encrypted, and never readable through the API. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [No access - you don't have permission for this operation], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthScope` string: OAuth 2.0 variables only. Space-separated scopes to request. Leave empty to use the scopes your identity provider grants by default. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthAdditionalParameters` object: OAuth 2.0 variables only. Extra form parameters sent with every token request, such as audience for Auth0 or resource for Azure AD v1. Readable by anyone who can read the variable, so do not put secrets here. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthClientAuthenticationMethod` 'HTTP Basic Header' | 'Request Body': OAuth 2.0 variables only. How the client ID and secret are sent: in an HTTP Basic header (client_secret_basic, the default) or in the request body (client_secret_post). Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]

## Response `201`

Created successfully

- object
  - `data` WorkflowVariableReadSchema: Read schema for WorkflowVariable model. Read
    - `_id` string, uuid: ID of this object. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `createdAt` object: Date and Time when the object was created. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `updatedAt` object: Date and Time when the object was updated. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `deletedAt` object: Date and Time when the object was deleted. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `projectId` string, uuid: ID of your OneUptime Project in which this object belongs. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `workflowId` string, uuid: ID of Workflow this variable belong to. If this is null then this variable will be a global variable. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `name` string, required: Variable Name. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `description` string: Friendly description that will help you remember. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `isSecret` boolean: Is this variable a secret. If true, then it'll not be in the logs. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `variableType` 'Static' | 'OAuth 2.0': Static: the content you save is used as is. OAuth 2.0: OneUptime fetches an access token from your identity provider and refreshes it automatically when a workflow uses it after it has expired. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `oauthGrantType` 'Client Credentials' | 'Refresh Token': OAuth 2.0 variables only. Client Credentials for machine-to-machine access, or Refresh Token to keep delegated access alive with a refresh token you obtained once. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `oauthTokenUrl` string: OAuth 2.0 variables only. The token endpoint of your identity provider. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthClientId` string: OAuth 2.0 variables only. The client ID of the application registered with your identity provider. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthScope` string: OAuth 2.0 variables only. Space-separated scopes to request. Leave empty to use the scopes your identity provider grants by default. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthAdditionalParameters` object: OAuth 2.0 variables only. Extra form parameters sent with every token request, such as audience for Auth0 or resource for Azure AD v1. Readable by anyone who can read the variable, so do not put secrets here. Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthClientAuthenticationMethod` 'HTTP Basic Header' | 'Request Body': OAuth 2.0 variables only. How the client ID and secret are sent: in an HTTP Basic header (client_secret_basic, the default) or in the request body (client_secret_post). Permissions - Create: [Project Owner, Project Admin, Create Workflow Variables, Project Member, Workflow Admin], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [Project Owner, Project Admin, Edit Workflow Variables, Workflow Admin]
    - `oauthAccessTokenExpiresAt` object: When the cached access token expires, as reported by the identity provider (expires_in) or by the token itself (the JWT exp claim). Empty when neither says. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `oauthLastRefreshedAt` object: When OneUptime last fetched an access token for this variable. Cleared when the OAuth settings change. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `oauthLastRefreshError` string: Why the last attempt to fetch an access token failed. Cleared by the next successful refresh. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `oauthLastRefreshErrorAt` object: When the last failed attempt to fetch an access token happened. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `createdByUserId` string, uuid: User ID who created this object (if this object was created by a User). Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]
    - `deletedByUserId` string, uuid: User ID who deleted this object (if this object was deleted by a User). Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Workflow Admin, Workflow Member, Workflow Viewer, Read Workflow Variables], Update: [No access - you don't have permission for this operation]

## Other responses

- `400`: Bad request. This response indicates that the request was malformed or contained invalid data.
- `401`: Unauthorized. This response indicates that the request requires user authentication.
- `402`: Payment Required. This response indicates that the request requires payment or a valid subscription.
- `403`: Forbidden. This response indicates that the server understood the request, but refuses to authorize it.
- `405`: Project not found. This response indicates that the requested project does not exist or is not accessible.
- `408`: Request Timeout. This response indicates that the server timed out waiting for the request.
- `415`: Unable to reach server. This response indicates that the server is currently unreachable or down.
- `422`: Not authorized. This response indicates that the user does not have permission to access the requested resource.
- `500`: Internal Server Error. This response indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

---

[API](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification.md) - [All operations](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/revisions/ba3307d00304?raw)
