Workflows

Workspaces

List Workspaces

post

Lists all Workspaces with Filtering and Sorting Options. Supports VCS Providers Integration.

Authorizations
AuthorizationstringRequired

JWT authentication token

Query parameters
pageintegerOptionalDefault: 0
pageSizeinteger · min: 1OptionalDefault: 25
Body
projectionstring[]Optional

Fields to include in the response

searchValuestringOptional

Value to search for across searchable fields

Responses
chevron-right
200

List of Workspaces Retrieved Successfully

application/json

Base entity with common fields

idstringOptional

Unique identifier

Example: 507f1f77bcf86cd799439011Pattern: ^[0-9a-fA-F]{24}$
accountIdstringOptional

Account ID

Example: 507f1f77bcf86cd799439011
createdAtstring · date-timeOptional

Timestamp when the workspace was created

updatedAtstring · date-timeOptional

Timestamp when the workspace was last updated

workspaceIdstringOptional

Workspace ID

Example: 507f1f77bcf86cd799439012
workspaceNamestringOptional

Name of the workspace

Example: production-infra
repostringOptional

Repository name

Example: org/repo-name
repoUrlstringOptional

Repository URL

Example: https://github.com/org/repo-name
vcsTypestring · enumOptional

The type of version control system

Example: githubPossible values:
runnerTypestring · enumOptional

The type of CI/CD runner or pipeline system

Example: github-actionsPossible values:
lastRunStatusstring · enumOptional

The status of a workspace run

Example: plan_successPossible values:
lastApplyTimestring · date-timeOptional

Timestamp of the last apply

lastPlanTimestring · date-timeOptional

Timestamp of the last plan

lastRunTimestring · date-timeOptional

Timestamp of the last run

iacTypestringOptional

Type of Infrastructure as Code

Example: terraform
iacTypeVersionstringOptional

Version of the IaC tool

Example: 1.0.11
labelsstring[]Optional

Labels associated with the workspace

Example: ["prod","terraform"]
poolIdstring · uuidOptional

UUID of the runner pool associated with the workspace

Example: 123e4567-e89b-12d3-a456-426614174000
runsCountintegerOptional

Number of runs

Example: 5
isWorkflowManagedbooleanOptional

Whether the workflow is managed by the system

Example: true
guardrailsstring[]Optional

List of guardrails

Example: ["cost","security"]
oidcAuthenticationboolean · nullableOptional

OIDC authentication setting. If null, inherits from parent project.

isRemotebooleanOptional

Whether this workspace uses the internal remote backend for state management

post
/workspaces/search

Delete a workspace

delete

Deletes a specific workspace and its associated data

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

Example: 0e01b22c-7f4b-5e0f-b1c1-faff031977f8Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Responses
chevron-right
200

Workspace deleted successfully

application/json
statusinteger · enumRequiredPossible values:
delete
/workspaces/{workspaceId}

Update Workspace Labels

put

Updates Labels for a specific Workspace

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

Example: 0e01b22c-7f4b-5e0f-b1c1-faff031977f8Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Body
labelsstring[]Required

List of labels to assign to the workspace

Responses
chevron-right
200

Workspace Labels Updated Successfully

application/json
idstringRequiredExample: 507f1f77bcf86cd799439015Pattern: ^[0-9a-fA-F]{24}$
workspaceNamestringRequiredExample: production-infra
labelsstring[]RequiredExample: ["production","terraform","critical"]
updatedAtstring · date-timeRequired
put
/workspaces/{workspaceId}/labels

List Workspace Runs

post

Lists all Runs for a specific Workspace

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

Example: 0e01b22c-7f4b-5e0f-b1c1-faff031977f8Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Query parameters
pageintegerOptionalDefault: 0
pageSizeinteger · min: 1OptionalDefault: 25
Body
projectionstring[]Optional

Fields to include in the response

searchValuestringOptional

Value to search for across searchable fields

Responses
chevron-right
200

List of Workspace Runs Retrieved Successfully

application/json

Base entity with common fields

idstringOptional

Unique identifier

Example: 507f1f77bcf86cd799439011Pattern: ^[0-9a-fA-F]{24}$
accountIdstringOptional

Unique identifier of the account

Example: 507f1f77bcf86cd799439011Pattern: ^[0-9a-fA-F]{24}$
createdAtstring · date-timeOptional

Timestamp when the entity was created

updatedAtstring · date-timeOptional

Timestamp when the entity was last updated

workspaceIdstringOptional

Unique identifier of the associated workspace

Example: 507f1f77bcf86cd799439012
workspaceNamestringOptional

Name of the workspace

Example: production-infra
runIdstringOptional

Unique identifier for the run

Example: run-123456
runNamestringOptional

Name of the run

Example: Deploy to Production
statusstring · enumOptional

The status of a workspace run

Example: plan_successPossible values:
pullRequestIdstringOptional

ID of the associated pull request

Example: 123
pullRequestUrlstringOptional

URL of the associated pull request

Example: https://github.com/org/repo/pull/123
branchstringOptional

Branch associated with the run

Example: main
commitIdstringOptional

ID of the commit

Example: abc123def456
commitUrlstringOptional

URL of the commit

Example: https://github.com/org/repo/commit/abc123def456
runnerTypestring · enumOptional

The type of CI/CD runner or pipeline system

Example: github-actionsPossible values:
buildIdstringOptional

ID of the build

Example: build-789012
buildUrlstringOptional

URL of the build

Example: https://github.com/org/repo/actions/runs/789012
buildNamestringOptional

Name of the build

Example: CI Build
vcsTypestring · enumOptional

The type of version control system

Example: githubPossible values:
repostringOptional

Repository associated with the run

Example: org/repo
repoUrlstringOptional

URL of the repository

Example: https://github.com/org/repo
titlestringOptional

Title of the run

Example: Update infrastructure for new feature
terraformVersionstringOptional

Version of Terraform used

Example: 1.0.11
iacTypestring · enumOptional

Type of Infrastructure as Code

Example: terraformPossible values:
planTaskIdstringOptional

Unique identifier of the plan task

Example: 507f1f77bcf86cd799439013Pattern: ^[0-9a-fA-F]{24}$
applyTaskIdstringOptional

Unique identifier of the apply task

Example: 507f1f77bcf86cd799439014Pattern: ^[0-9a-fA-F]{24}$
post
/workspaces/{workspaceId}/runs/search

List Run Resources

post

Lists Resources Affected by a Run

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
runIdstringRequired

Unique identifier of the Run (use runId from list runs response)

Example: 60a097c0-d44c-4dea-af1b-1abdc5f2eea7Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
workspaceIdstringRequired

Unique identifier of the Workspace

Example: 0e01b22c-7f4b-5e0f-b1c1-faff031977f8Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Query parameters
pageintegerOptionalDefault: 0
pageSizeinteger · min: 1OptionalDefault: 25
Body
projectionstring[]Optional

Fields to include in the response

searchValuestringOptional

Value to search for across searchable fields

modestring · enumRequired

The mode to display the resources in

Possible values:
Responses
chevron-right
200

Run resources retrieved successfully

application/json
or
post
/workspaces/{workspaceId}/runs/{runId}/resources/search

List run changed code

post

Lists code changes grouped by folders with file metadata

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
runIdstringRequired

Unique identifier of the run (use runId from list runs response)

Example: 60a097c0-d44c-4dea-af1b-1abdc5f2eea7Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
workspaceIdstringRequired

Unique identifier of the Workspace

Example: 0e01b22c-7f4b-5e0f-b1c1-faff031977f8Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Query parameters
pageintegerOptionalDefault: 0
pageSizeinteger · min: 1OptionalDefault: 25
Body
projectionstring[]Optional

Fields to include in the response

searchValuestringOptional

Value to search for across searchable fields

Responses
chevron-right
200

Run changed code retrieved successfully

application/json

Response containing changed files grouped by folder path

post
/workspaces/{workspaceId}/runs/{runId}/changed-files-code/search

Guardrails

List Guardrail Rules

post

Returns a list of guardrails rules based on filter criteria

Authorizations
AuthorizationstringRequired

JWT authentication token

Query parameters
pageintegerOptionalDefault: 0
pageSizeinteger · min: 1OptionalDefault: 25
Body
projectionstring[]Optional

Fields to include in the response

searchValuestringOptional

Value to search for across searchable fields

Responses
chevron-right
200

List of guardrail rules retrieved successfully

application/json
idstringRead-onlyOptional

Unique identifier of the guardrail rule

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
accountIdstringOptional

Unique identifier of the associated account

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
createdBystring · min: 1Optional

Name of the user who created the rule

Example: John Doe
namestring · min: 1Optional

Name of the guardrail rule

typestring · enumOptional

Type of the guardrail rule

Possible values:
isEnabledbooleanOptional

Whether the rule is enabled

createdAtstring · date-timeOptional

Timestamp when the rule was created

updatedAtstring · date-timeOptional

Timestamp when the rule was last updated

notificationIdstringOptional

Unique identifier of the associated notification configuration

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
severityinteger · enumOptional

Severity level of the guardrail rule

Possible values:
enforceOnNoOpbooleanOptional

Whether to enforce the rule on no-op assets

post
/guardrails/search

Create a new Guardrail Rule

post

Creates a new guardrail rule with optional notification setup

Authorizations
AuthorizationstringRequired

JWT authentication token

Body
idstringRead-onlyOptional

Unique identifier of the guardrail rule

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
accountIdstringOptional

Unique identifier of the associated account

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
createdBystring · min: 1Required

Name of the user who created the rule

Example: John Doe
namestring · min: 1Required

Name of the guardrail rule

typestring · enumRequired

Type of the guardrail rule

Possible values:
isEnabledbooleanRequired

Whether the rule is enabled

createdAtstring · date-timeOptional

Timestamp when the rule was created

updatedAtstring · date-timeOptional

Timestamp when the rule was last updated

notificationIdstringOptional

Unique identifier of the associated notification configuration

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
severityinteger · enumRequired

Severity level of the guardrail rule

Possible values:
enforceOnNoOpbooleanOptional

Whether to enforce the rule on no-op assets

Responses
chevron-right
200

Guardrail Rule Created Successfully

application/json
ruleIdstringRequired

Unique identifier of the created rule

Example: 507f1f77bcf86cd799439011Pattern: ^[0-9a-fA-F]{24}$
notificationIdstringRequired

Unique identifier of the created notification

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
post
/guardrails

Update a Guardrail Rule

patch

Updates an existing Guardrail Rule and its Notifications

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
ruleIdstringRequired

Unique identifier of the Guardrail Rule

Example: 684aac91c3f9b3880d3ece51Pattern: ^[0-9a-fA-F]{24}$
Body
idstringRead-onlyOptional

Unique identifier of the guardrail rule

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
accountIdstringOptional

Unique identifier of the associated account

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
createdBystring · min: 1Optional

Name of the user who created the rule

Example: John Doe
namestring · min: 1Required

Name of the guardrail rule

typestring · enumRequired

Type of the guardrail rule

Possible values:
isEnabledbooleanRequired

Whether the rule is enabled

createdAtstring · date-timeOptional

Timestamp when the rule was created

updatedAtstring · date-timeOptional

Timestamp when the rule was last updated

notificationIdstringOptional

Unique identifier of the associated notification configuration

Example: 507f1f77bcf86cd799439012Pattern: ^[0-9a-fA-F]{24}$
severityinteger · enumOptional

Severity level of the guardrail rule

Possible values:
enforceOnNoOpbooleanOptional

Whether to enforce the rule on no-op assets

Responses
chevron-right
200

Guardrail Rule Updated Successfully

application/json
idstringRequired

Unique identifier of the updated rule

Example: 507f1f77bcf86cd799439011Pattern: ^[0-9a-fA-F]{24}$
namestring · min: 1 · max: 100Required

Name of the Guardrail Rule

Example: Enforce S3 Encryption
enabledbooleanRequired

Whether the Rule is Active

Example: true
updatedAtstring · date-timeRequired

Timestamp of the Last Update

Example: 2024-11-11T10:00:00Z
patch
/guardrails/{ruleId}

Delete a Guardrail Rule

delete

Deletes a Guardrail Rule and its Associated Notification

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
ruleIdstringRequired

Unique identifier of the Guardrail Rule

Example: 684aac91c3f9b3880d3ece51Pattern: ^[0-9a-fA-F]{24}$
Responses
chevron-right
200

Guardrail Rule Deleted Successfully

application/json
statusinteger · enumRequired

HTTP Status Code

Example: 200Possible values:
messagestringRequired

Success message

Example: Guardrail rule and notification deleted successfully
delete
/guardrails/{ruleId}

Projects

Create a project

post

Creates a new project

Authorizations
AuthorizationstringRequired

JWT authentication token

Body
namestringRequired

Name of the project

descriptionstringOptional

Description of the project

labelsstring[]Optional

Labels to assign to the project

poolIdstring · uuidOptional

UUID of the runner pool associated with the project

Example: 123e4567-e89b-12d3-a456-426614174000
cronExecutionPatternstringOptional

Cron pattern for scheduled executions

oidcAuthenticationboolean · nullableOptional

OIDC authentication setting.

parentIdstringOptional

ID of the parent project. If missing or empty, the server will attempt to create a root project.

Responses
post
/runners/projects

Get a project

get

Retrieves a single project by ID

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired

Unique identifier of the project to retrieve

Responses
chevron-right
200

Project retrieved successfully

application/json
namestringOptional

Name of the project

descriptionstringOptional

Description of the project

labelsstring[]Optional

Labels to assign to the project

poolIdstring · uuidOptional

UUID of the runner pool associated with the project

Example: 123e4567-e89b-12d3-a456-426614174000
cronExecutionPatternstringOptional

Cron pattern for scheduled executions

oidcAuthenticationboolean · nullableOptional

OIDC authentication setting.

idstringOptional

Unique identifier for the project

accountIdstringOptional

ID of the account the project belongs to

membersCountintegerOptional

Number of members assigned to the project

workspaceCountintegerOptional

Number of workspaces in the project

parentIdstringOptional

ID of the parent project (for nested projects)

get
/runners/projects/{projectId}

Update a project

patch

Updates an existing project

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired

Unique identifier of the project to update

Body
namestringOptional

Name of the project

descriptionstringOptional

Description of the project

labelsstring[]Optional

Labels to assign to the project

poolIdstring · uuidOptional

UUID of the runner pool associated with the project

Example: 123e4567-e89b-12d3-a456-426614174000
cronExecutionPatternstringOptional

Cron pattern for scheduled executions

oidcAuthenticationboolean · nullableOptional

OIDC authentication setting.

Responses
chevron-right
200

Project updated successfully

application/json
namestringOptional

Name of the project

descriptionstringOptional

Description of the project

labelsstring[]Optional

Labels to assign to the project

poolIdstring · uuidOptional

UUID of the runner pool associated with the project

Example: 123e4567-e89b-12d3-a456-426614174000
cronExecutionPatternstringOptional

Cron pattern for scheduled executions

oidcAuthenticationboolean · nullableOptional

OIDC authentication setting.

idstringOptional

Unique identifier for the project

accountIdstringOptional

ID of the account the project belongs to

membersCountintegerOptional

Number of members assigned to the project

workspaceCountintegerOptional

Number of workspaces in the project

parentIdstringOptional

ID of the parent project (for nested projects)

patch
/runners/projects/{projectId}

Delete a project

delete

Deletes a project and all its associated workspaces

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired

Unique identifier of the project to delete

Responses
delete
/runners/projects/{projectId}

No content

List projects in flat structure

get

Retrieves all projects with pagination support

Authorizations
AuthorizationstringRequired

JWT authentication token

Query parameters
pageSizeinteger · min: 1OptionalDefault: 25
offsetintegerOptional

The offset of the items to return

Default: 0
maxDepthinteger · max: 5Optional

Maximum depth of the project tree to return

poolIdstringOptional

Filter projects by runner pool ID

Responses
chevron-right
200

Projects retrieved successfully in flat list format

application/json
totalCountintegerOptional

Total count of projects

get
/runners/projects/list

List projects in tree structure

get

Retrieves all projects in a hierarchical tree format

Authorizations
AuthorizationstringRequired

JWT authentication token

Query parameters
searchQuerystringOptional

Search query

variableSetIdstringOptional

Filter projects by variable set ID

consumedOnlybooleanOptional

When used with variableSetId, only return projects that consume the variable set

Responses
chevron-right
200

Projects retrieved successfully in tree format

application/json
get
/runners/projects/tree

List members of a project

get

Retrieves all members of a specified project

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired

Unique identifier of the project

Responses
chevron-right
200

Members retrieved successfully

application/json
userIdstringRequired

ID of the user

rolestring · enumRequired

Role of the user in the project

Possible values:
get
/runners/projects/{projectId}/members

Add members to a project

post

Adds new members to a specified project

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired

Unique identifier of the project

Bodyobject[]
userIdstringRequired

ID of the user

rolestring · enumRequired

Role of the user in the project

Possible values:
Responses
post
/runners/projects/{projectId}/members

Remove members from a project

delete

Deletes specified members from a project

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired

Unique identifier of the project

Bodystring[]
string[]Optional

User IDs of the members to remove

Responses
delete
/runners/projects/{projectId}/members

No content

List workspaces of a project

get

Retrieves all workspaces of a specified project

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired

Unique identifier of the project

Query parameters
searchQuerystringOptional

Search query

pageSizeinteger · min: 1OptionalDefault: 25
offsetintegerOptional

The offset of the items to return

Default: 0
poolIdstringOptional

Filter workspaces by runner pool ID

variableSetIdstringOptional

If provided, only workspaces that consume the variable set will be returned

explicitConsumptionbooleanOptional

If true, only workspaces that have an explicit consumption of the variable set will be returned. Must be used in conjunction with variableSetId

Responses
chevron-right
200

Workspaces retrieved successfully

application/json
idstringOptional

Unique identifier for the workspace

namestringRequired

Name of the workspace

descriptionstringOptional

Description of the workspace

accountIdstringOptional

ID of the account the workspace belongs to

repositorystringRequired

Repository URL for the workspace

workingDirectorystringOptional

Working directory within the repository

vcsIntegrationIdstringRequired

ID of the VCS integration

vcsstringRequired

VCS type (e.g., github, gitlab)

defaultBranchstringRequired

Default branch for the workspace

cronExecutionPatternstringOptional

Cron pattern for scheduled executions

labelsstring[]Optional

Labels assigned to the workspace

poolIdstringOptional

ID of the runner pool associated with the workspace

Example: 123e4567-e89b-12d3-a456-426614174000
oidcAuthenticationboolean · nullableOptional

OIDC authentication setting. If null, inherits from parent project.

isRemotebooleanOptional

Whether this workspace uses the internal remote backend for state management

get
/runners/projects/{projectId}/workspaces

List all project labels

get

Retrieves all available project labels for the account

Authorizations
AuthorizationstringRequired

JWT authentication token

Responses
chevron-right
200

Project labels retrieved successfully

application/json
string[]Optional

List of project labels

get
/runners/projects/labels

Variables Management

Project Variables

List variables for a project

get
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired
Responses
chevron-right
200

List of project variables

application/json
keystringOptional
valuestringOptional
sensitivitystring · enumOptionalPossible values:
destinationstring · enumOptionalPossible values:
get
/runners/variables/projects/{projectId}
200

List of project variables

Upsert variables within a project (create or update)

post
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired
Body
Responses
post
/runners/variables/projects/{projectId}/variables
204

Variables upserted within project

No content

Delete variables from a project

delete
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired
Body
variableKeysstring[] · min: 1Required

Array of variable keys to delete

Responses
delete
/runners/variables/projects/{projectId}/variables
204

Variables deleted from project

No content

Workspace Variables

List variables for a workspace

get
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired
Query parameters
pageSizeintegerOptional
offsetintegerOptional
Responses
chevron-right
200

List of workspace variables

application/json
keystringOptional
valuestringOptional
sensitivitystring · enumOptionalPossible values:
destinationstring · enumOptionalPossible values:
get
/runners/variables/workspaces/{workspaceId}/variables
200

List of workspace variables

Upsert variables within a workspace (create or update)

post
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired
Body
Responses
post
/runners/variables/workspaces/{workspaceId}/variables
204

Variables upserted within workspace

No content

Delete variables from a workspace

delete
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired
Body
variableIdsstring[] · min: 1Required

Array of variable IDs to delete

Responses
delete
/runners/variables/workspaces/{workspaceId}/variables
204

Variables deleted from workspace

No content

Variable Sets

List variable sets

get
Authorizations
AuthorizationstringRequired

JWT authentication token

Query parameters
searchQuerystringOptional
pageSizeintegerOptional
offsetintegerOptional
Responses
chevron-right
200

List of variable sets

application/json
idstringOptional

Unique identifier for the variable set

versionintegerOptional

Version number of the variable set

namestringOptional

Name of the variable set

descriptionstringOptional

Description of the variable set

labelsstring[]Optional

Labels assigned to the variable set

parentsstring[]Optional

Parent variable set IDs

get
/runners/variables/variable-sets
200

List of variable sets

Create a new variable set

post
Authorizations
AuthorizationstringRequired

JWT authentication token

Body
namestringRequired

Name of the variable set

descriptionstringOptional

Description of the variable set

labelsstring[]Optional

Labels to assign to the variable set

parentsstring[]Optional

Parent variable set IDs

Responses
post
/runners/variables/variable-sets

Get a variable set

get
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
variableSetIdstringRequired
Responses
chevron-right
200

Variable set

application/json
idstringOptional
versionintegerOptional
consumablebooleanOptional
namestringOptional
labelsstring[]Optional
descriptionstringOptional
get
/runners/variables/variable-sets/{variableSetId}

Update a variable set

put
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
variableSetIdstringRequired
Body
namestringOptional

Name of the variable set

descriptionstringOptional

Description of the variable set

labelsstring[]Optional

Labels to assign to the variable set

parentsstring[]Optional

Parent variable set IDs

Responses
put
/runners/variables/variable-sets/{variableSetId}

No content

Delete a variable set

delete
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
variableSetIdstringRequired
Responses
delete
/runners/variables/variable-sets/{variableSetId}

No content

List variables in a variable set

get
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
variableSetIdstringRequired
Query parameters
pageintegerOptionalDefault: 0
pageSizeinteger · min: 1OptionalDefault: 25
Responses
chevron-right
200

List of variables in variable set

application/json
keystringOptional
valuestringOptional
sensitivitystring · enumOptionalPossible values:
destinationstring · enumOptionalPossible values:
get
/runners/variables/variable-sets/{variableSetId}/variables
200

List of variables in variable set

Upsert variables within a variable set (create or update)

post
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
variableSetIdstringRequired
Body
Responses
post
/runners/variables/variable-sets/{variableSetId}/variables
204

Variables upserted within variable set

No content

Delete variables from a variable set

delete
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
variableSetIdstringRequired
Body
variableIdsstring[] · min: 1Required

Array of variable IDs to delete

Responses
delete
/runners/variables/variable-sets/{variableSetId}/variables
204

Variables deleted from variable set

No content

Variable Set Operations

Attach a variable set to a project

post
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired
variableSetIdstringRequired
Body
consumebooleanRequired

Whether to consume the variable set values

Default: true
Responses
post
/runners/variables/projects/{projectId}/variable-sets/{variableSetId}/attach
204

Variable set attached to project

No content

Detach a variable set from a project

post
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
projectIdstringRequired
variableSetIdstringRequired
Responses
post
/runners/variables/projects/{projectId}/variable-sets/{variableSetId}/detach
204

Variable set detached from project

No content

Bind a variable set to a workspace

post
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired
variableSetIdstringRequired
Responses
post
/runners/variables/workspaces/{workspaceId}/variable-sets/{variableSetId}/bind
204

Variable set bound to workspace

No content

Unbind a variable set from a workspace

post
Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired
variableSetIdstringRequired
Responses
post
/runners/variables/workspaces/{workspaceId}/variable-sets/{variableSetId}/unbind
204

Variable set unbound from workspace

No content

Runners Workspaces

Create a new workspace

post

Creates a new workspace with the provided configuration

Authorizations
AuthorizationstringRequired

JWT authentication token

Body
runnerTypestringRequired

Type of runner (e.g., firefly_runners)

Example: firefly_runners
iacTypestringRequired

Infrastructure as Code type

Example: terraform
workspaceNamestringRequired

Unique workspace name

Example: my-workspace
descriptionstringOptional

Workspace description

Example: Production environment workspace
labelsstring[]Optional

Labels assigned to the workspace

Example: ["production","terraform"]
vcsIdstringRequired

VCS integration ID

Example: 5fd126f5744410407fbc552f
repostringRequired

Repository name

Example: infralight/appiac
defaultBranchstringRequired

Default branch

Example: main
vcsTypestringRequired

VCS type (github, gitlab, etc.)

Example: github
workDirstringRequired

Working directory path

Example: terraform/production
consumedVariableSetsstring[]Optional

Array of variable set IDs that this workspace consumes

Example: ["var-set-1","var-set-2"]
projectstring · nullableOptional

Project ID or null for global access

terraformVariablesobjectOptional

Cleaned by deleteMockArrays

terraformSensitiveVariablesobjectOptional

Cleaned by deleteMockArrays

providersCredentialsobjectOptional

Cleaned by deleteMockArrays

runnerEnvironmentobjectOptional

Cleaned by deleteMockArrays

poolIdstringOptional

ID of the runner pool associated with the workspace

Example: 123e4567-e89b-12d3-a456-426614174000
oidcAuthenticationboolean · nullableOptional

OIDC authentication setting. If null, inherits from parent project.

isRemotebooleanOptional

Whether this workspace uses the internal remote backend for state management

Responses
post
/runners/workspaces

List all workspace labels

get

Retrieves all available workspace labels for the account

Authorizations
AuthorizationstringRequired

JWT authentication token

Responses
chevron-right
200

Workspace labels retrieved successfully

application/json
string[]Optional

List of workspace labels

get
/runners/workspaces/labels

Get workspace details

get

Retrieves details for a specific workspace

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

Responses
chevron-right
200

Workspace details retrieved successfully

application/json
idstringOptional

Unique identifier for the workspace

namestringRequired

Name of the workspace

descriptionstringOptional

Description of the workspace

accountIdstringOptional

ID of the account the workspace belongs to

repositorystringRequired

Repository URL for the workspace

workingDirectorystringOptional

Working directory within the repository

vcsIntegrationIdstringRequired

ID of the VCS integration

vcsstringRequired

VCS type (e.g., github, gitlab)

defaultBranchstringRequired

Default branch for the workspace

cronExecutionPatternstringOptional

Cron pattern for scheduled executions

labelsstring[]Optional

Labels assigned to the workspace

poolIdstringOptional

ID of the runner pool associated with the workspace

Example: 123e4567-e89b-12d3-a456-426614174000
oidcAuthenticationboolean · nullableOptional

OIDC authentication setting. If null, inherits from parent project.

isRemotebooleanOptional

Whether this workspace uses the internal remote backend for state management

get
/runners/workspaces/{workspaceId}

Deploy workspace

post

Deploys a workspace by running plan or apply tasks based on the provided task type

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

Body
taskTypestring · enumRequired

The type of task to run (plan or apply)

Possible values:
cmdArgumentsstringOptional

Additional command line arguments

Responses
chevron-right
200

Workspace deployed successfully

application/json
statusintegerOptionalExample: 200
post
/runners/workspaces/{workspaceId}

Update a workspace

patch

Updates an existing workspace with the provided configuration

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

Body
namestringOptional

Workspace name

Example: my-workspace
descriptionstringOptional

Workspace description

Example: Production environment workspace
labelsstring[]Optional

Labels assigned to the workspace

Example: ["production","terraform"]
vcsIntegrationIdstringOptional

VCS integration ID

Example: 5fd126f5744410407fbc552f
repositorystringOptional

Repository name

Example: infralight/appiac
defaultBranchstringOptional

Default branch

Example: main
vcsstringOptional

VCS type (github, gitlab, etc.)

Example: github
workingDirectorystringOptional

Working directory path

Example: terraform/production
runnerTypestringOptional

Type of runner (e.g., firefly_runners)

Example: firefly_runners
cronExecutionPatternstringOptional

Cron pattern for scheduled executions

Example: 0 2 * * *
parentIdstring · nullableOptional

Project ID or null for global access

poolIdstringOptional

ID of the runner pool associated with the workspace

Example: 123e4567-e89b-12d3-a456-426614174000
oidcAuthenticationboolean · nullableOptional

OIDC authentication setting. If null, inherits from parent project.

Responses
chevron-right
200

Workspace updated successfully

application/json
idstringOptional

Unique identifier for the workspace

namestringRequired

Name of the workspace

descriptionstringOptional

Description of the workspace

accountIdstringOptional

ID of the account the workspace belongs to

repositorystringRequired

Repository URL for the workspace

workingDirectorystringOptional

Working directory within the repository

vcsIntegrationIdstringRequired

ID of the VCS integration

vcsstringRequired

VCS type (e.g., github, gitlab)

defaultBranchstringRequired

Default branch for the workspace

cronExecutionPatternstringOptional

Cron pattern for scheduled executions

labelsstring[]Optional

Labels assigned to the workspace

poolIdstringOptional

ID of the runner pool associated with the workspace

Example: 123e4567-e89b-12d3-a456-426614174000
oidcAuthenticationboolean · nullableOptional

OIDC authentication setting. If null, inherits from parent project.

isRemotebooleanOptional

Whether this workspace uses the internal remote backend for state management

patch
/runners/workspaces/{workspaceId}

Delete a workspace

delete

Deletes a specific workspace and optionally destroys its infrastructure resources

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

Query parameters
destroybooleanOptional

Whether to destroy infrastructure resources before deleting the workspace

Default: false
descriptionstringOptional

Optional description for the deletion operation

Responses
chevron-right
200

Workspace deleted successfully

application/json
messagestringOptionalExample: Workspace deleted successfully
workspaceIdstringOptional

The ID of the deleted workspace

resourcesDestroyedbooleanOptional

Whether resources were destroyed

delete
/runners/workspaces/{workspaceId}

Destroy workspace infrastructure resources

post

Initiates a destroy task to clean up cloud infrastructure resources managed by this workspace. This does not delete the workspace entity itself.

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

Body

Request to run a task on workspace infrastructure

descriptionstringOptional

Optional description for the task

Example: Running infrastructure task
taskIdstringOptional

Optional ID of the task to run

Example: task-12345
cmdArgumentsstringOptional

Optional command line arguments for the task

Example: -auto-approve
Responses
chevron-right
200

Destroy task initiated successfully

application/json

Response from task initiation

accountIdstringOptional

ID of the account

idstringRequired

ID of the created task

statusstring · enumRequired

Current status of the task

Possible values:
currentStepstring · enumOptional

Current step in the task execution

Possible values:
workspaceIdstringRequired

ID of the workspace the task is running on

typestring · enumRequired

Type of task that was executed

Possible values:
cmdArgumentsstringOptional

Command line arguments used for the task

createdAtstring · date-timeOptional

When the task was created

updatedAtstring · date-timeOptional

When the task was last updated

post
/runners/workspaces/{workspaceId}/tasks/destroy

Manually trigger a apply on a task

post

Manually triggers a terraform apply for the specified task within the workspace

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

taskIdstringRequired

Unique identifier of the task

Body
taskTypestring · enumRequired

The type of task to run apply

Possible values:
cmdArgumentsstringOptional

Additional command line arguments

Responses
chevron-right
200

Manual apply triggered successfully

application/json
statusintegerOptionalExample: 200
post
/runners/workspaces/{workspaceId}/tasks/{taskId}/apply

Discard a task

post

Discards the specified task within the workspace

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

taskIdstringRequired

Unique identifier of the task

Responses
post
/runners/workspaces/{workspaceId}/tasks/{taskId}/discard

No content

List Task Resources

post

Lists resources for a specific task within the workspace

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

taskIdstringRequired

Unique identifier of the task

Query parameters
pageintegerOptionalDefault: 0
pageSizeinteger · min: 1OptionalDefault: 25
Body
projectionstring[]Optional

Fields to include in the response

searchValuestringOptional

Value to search for across searchable fields

modestring · enumRequired

The mode to display the resources in

Possible values:
Responses
chevron-right
200

Task resources retrieved successfully

application/json
or
post
/runners/workspaces/{workspaceId}/tasks/{taskId}/resources/search

Get specific run status

get

Retrieves the status of a specific run within the workspace

Authorizations
AuthorizationstringRequired

JWT authentication token

Path parameters
workspaceIdstringRequired

Unique identifier of the workspace

runIdstringRequired

Unique identifier of the run

Responses
chevron-right
200

Run status retrieved successfully

application/json
statusstringOptional

Current status of the run (e.g., pending, running, completed, failed, etc)

get
/runners/workspaces/{workspaceId}/run/{runId}/status

Last updated

Was this helpful?