ControlUp Public API API
The Public API API from ControlUp — 11 operation(s) for public api.
The Public API API from ControlUp — 11 operation(s) for public api.
openapi: 3.2.0
info:
title: Flow3 Public Public API API
description: Public API endpoints for Flow3 - accessible via Bearer authentication using a DEX token
version: 1.0.0
servers:
- url: https://api.controlup.com
description: Production API server
- url: https://api.qa.controlup.com
description: QA API server
tags:
- name: Public API
paths:
/workflows/v1/flows:
get:
tags:
- Public API
summary: Get Flows
description: Retrieve a complete list of workflows available in your organization.
operationId: get_flows_workflows_v1_flows_get
parameters:
- name: _page
in: query
required: false
schema:
type: integer
minimum: 1
description: 'Desired page in the paginated result (default: 1)'
default: 1
title: ' Page'
description: 'Desired page in the paginated result (default: 1)'
- name: _limit
in: query
required: false
schema:
type: integer
maximum: 200
minimum: 1
description: Page size
default: 50
title: ' Limit'
description: Page size
- name: _sortBy
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/FlowSortBy'
- type: 'null'
description: Field to sort by
title: ' Sortby'
description: Field to sort by
- name: _order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: Sorting direction
default: asc
description: Sorting direction
- name: _expand
in: query
required: false
schema:
type: boolean
description: Expand flow objects into their full representation
default: false
title: ' Expand'
description: Expand flow objects into their full representation
- name: _select
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fetch only selected fields
title: ' Select'
description: Fetch only selected fields
- name: name
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by flow name (case-insensitive)
title: Name
description: Filter by flow name (case-insensitive)
- name: description
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by flow description (case-insensitive)
title: Description
description: Filter by flow description (case-insensitive)
- name: createdAt
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by flow creation time
title: Createdat
description: Filter by flow creation time
- name: updatedAt
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by flow updating time
title: Updatedat
description: Filter by flow updating time
- name: lastRun
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by flow last run time
title: Lastrun
description: Filter by flow last run time
- name: status
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by flow status
title: Status
description: Filter by flow status
- name: scheduleType
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/FlowScheduleType'
- type: 'null'
description: Filter by flow schedule type
title: Scheduletype
description: Filter by flow schedule type
- name: creator
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by flow creator
title: Creator
description: Filter by flow creator
- name: lastEditor
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by flow latest editor
title: Lasteditor
description: Filter by flow latest editor
- name: excludeFormFlows
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Filter by excluding form based flows
default: false
title: Excludeformflows
description: Filter by excluding form based flows
- name: runnableWithoutInputs
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Filter without providing any input variables
default: false
title: Runnablewithoutinputs
description: Filter without providing any input variables
responses:
'200':
description: List of flows
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/workflows/v1/flows/{flowId}:
get:
tags:
- Public API
summary: Get Flow
description: Retrieve details about a specific workflow by its ID.
operationId: get_flow_workflows_v1_flows__flowId__get
parameters:
- name: flowId
in: path
required: true
schema:
type: string
title: Flowid
- name: _expand
in: query
required: false
schema:
type: boolean
description: Expand flow objects into their full representation
default: false
title: ' Expand'
description: Expand flow objects into their full representation
- name: _select
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fetch only selected fields
title: ' Select'
description: Fetch only selected fields
responses:
'200':
description: Flow details
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
patch:
tags:
- Public API
summary: Enable/Disable Flow
description: Change the status of a flow (enable or disable)
operationId: update_flow_status_workflows_v1_flows__flowId__patch
parameters:
- name: flowId
in: path
required: true
schema:
type: string
title: Flowid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FlowEnableDisableRequest'
responses:
'200':
description: Updated flow
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
delete:
tags:
- Public API
summary: Delete Flow
description: Delete a flow by its ID from your organization.
operationId: delete_flow_workflows_v1_flows__flowId__delete
parameters:
- name: flowId
in: path
required: true
schema:
type: string
title: Flowid
responses:
'200':
description: Delete a flow by its ID from your organization.
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/workflows/v1/flows/{flowId}/runs:
get:
tags:
- Public API
summary: Get Flow Runs Status
description: Retrieve the status and details of runs for a specific workflow.
operationId: get_flow_runs_workflows_v1_flows__flowId__runs_get
parameters:
- name: flowId
in: path
required: true
schema:
type: string
title: Flowid
- name: _limit
in: query
required: false
schema:
type: integer
maximum: 200
minimum: 1
description: Page size
default: 10
title: ' Limit'
description: Page size
- name: _select
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fetch only selected fields
title: ' Select'
description: Fetch only selected fields
- name: status
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/FlowRunStatus'
- type: 'null'
description: Filter by run status
title: Status
description: Filter by run status
responses:
'200':
description: List of flow runs
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/workflows/v1/flows/launch:
post:
tags:
- Public API
summary: Launch Flow
description: Launch a flow by its ID from your organization.
operationId: launch_flow_workflows_v1_flows_launch_post
responses:
'200':
description: Launch a flow by its ID from your organization.
content:
application/json:
schema: {}
security:
- BearerAuth: []
/workflows/v1/forms:
get:
tags:
- Public API
summary: Get Forms
description: Retrieve a complete list of all forms available in your organization.
operationId: get_all_forms_workflows_v1_forms_get
parameters:
- name: _page
in: query
required: false
schema:
type: integer
minimum: 1
description: 'Desired page in the paginated result (default: 1)'
default: 1
title: ' Page'
description: 'Desired page in the paginated result (default: 1)'
- name: _limit
in: query
required: false
schema:
type: integer
maximum: 200
minimum: 1
description: Page size
default: 50
title: ' Limit'
description: Page size
- name: _sortBy
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/FormSortBy'
- type: 'null'
description: Field to sort by
title: ' Sortby'
description: Field to sort by
- name: _order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: Sorting direction
default: asc
description: Sorting direction
- name: _expand
in: query
required: false
schema:
type: boolean
description: Expand form objects into their full representation
default: false
title: ' Expand'
description: Expand form objects into their full representation
- name: _select
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fetch only selected fields
title: ' Select'
description: Fetch only selected fields
- name: name
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by form name (case-insensitive)
title: Name
description: Filter by form name (case-insensitive)
- name: description
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by form description (case-insensitive)
title: Description
description: Filter by form description (case-insensitive)
- name: createdAt
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by form creation time
title: Createdat
description: Filter by form creation time
- name: updatedAt
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by form updating time
title: Updatedat
description: Filter by form updating time
- name: lastRun
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by form last run time
title: Lastrun
description: Filter by form last run time
responses:
'200':
description: List of forms
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/workflows/v1/forms/{formId}:
get:
tags:
- Public API
summary: Get Form
description: Retrieve details about a specific form by its ID.
operationId: get_form_workflows_v1_forms__formId__get
parameters:
- name: formId
in: path
required: true
schema:
type: string
title: Formid
- name: _expand
in: query
required: false
schema:
type: boolean
description: Expand form objects into their full representation
default: false
title: ' Expand'
description: Expand form objects into their full representation
- name: _select
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fetch only selected fields
title: ' Select'
description: Fetch only selected fields
responses:
'200':
description: Form details
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
delete:
tags:
- Public API
summary: Delete Form
description: Delete a form by its ID from your organization.
operationId: delete_form_workflows_v1_forms__formId__delete
parameters:
- name: formId
in: path
required: true
schema:
type: string
title: Formid
responses:
'200':
description: Deleted form ID
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/workflows/v1/integrations:
get:
tags:
- Public API
summary: Get Integrations
description: Retrieve a complete list of available integrations in your organization.
operationId: get_all_integrations_workflows_v1_integrations_get
parameters:
- name: _page
in: query
required: false
schema:
type: integer
minimum: 1
description: 'Desired page in the paginated result (default: 1)'
default: 1
title: ' Page'
description: 'Desired page in the paginated result (default: 1)'
- name: _limit
in: query
required: false
schema:
type: integer
maximum: 200
minimum: 1
description: Page size
default: 50
title: ' Limit'
description: Page size
- name: _sortBy
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/IntegrationSortBy'
- type: 'null'
description: Field to sort by
title: ' Sortby'
description: Field to sort by
- name: _order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: Sorting direction
default: asc
description: Sorting direction
- name: _expand
in: query
required: false
schema:
type: boolean
description: Expand integration objects into their full representation
default: false
title: ' Expand'
description: Expand integration objects into their full representation
- name: _select
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fetch only selected fields
title: ' Select'
description: Fetch only selected fields
- name: name
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by integration name (case-insensitive)
title: Name
description: Filter by integration name (case-insensitive)
- name: integrationType
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by integration type
title: Integrationtype
description: Filter by integration type
- name: createdAt
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by integration creation time
title: Createdat
description: Filter by integration creation time
- name: updatedAt
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by integration updating time
title: Updatedat
description: Filter by integration updating time
responses:
'200':
description: List of integrations
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/workflows/v1/integrations/{integrationId}:
get:
tags:
- Public API
summary: Get Integration
description: Retrieve details about a specific integration by its ID.
operationId: get_integration_workflows_v1_integrations__integrationId__get
parameters:
- name: integrationId
in: path
required: true
schema:
type: string
title: Integrationid
- name: _expand
in: query
required: false
schema:
type: boolean
description: Expand integration objects into their full representation
default: false
title: ' Expand'
description: Expand integration objects into their full representation
- name: _select
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fetch only selected fields
title: ' Select'
description: Fetch only selected fields
responses:
'200':
description: Integration details
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
delete:
tags:
- Public API
summary: Delete Integration
description: Delete an integration by its ID from your organization.
operationId: delete_integration_workflows_v1_integrations__integrationId__delete
parameters:
- name: integrationId
in: path
required: true
schema:
type: string
title: Integrationid
responses:
'200':
description: Deleted integration ID
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/workflows/v1/integrations/{integration_id}/actions:
get:
tags:
- Public API
summary: Get Integration Actions
description: Retrieve a list of all available actions for a specific integration within your organization
operationId: get_integration_actions_workflows_v1_integrations__integration_id__actions_get
parameters:
- name: integration_id
in: path
required: true
schema:
type: string
title: Integration Id
- name: _expand
in: query
required: false
schema:
type: boolean
description: Expand flow objects into their full representation
default: false
title: ' Expand'
description: Expand flow objects into their full representation
- name: _select
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fetch only selected fields
title: ' Select'
description: Fetch only selected fields
responses:
'200':
description: List of integration actions
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/workflows/v1/integrations/{integration_id}/actions/{node_type}:
get:
tags:
- Public API
summary: Get Integration Action
description: Retrieve details for a specific action of a specific integration, including the action input/output schema
operationId: get_integration_action_workflows_v1_integrations__integration_id__actions__node_type__get
parameters:
- name: integration_id
in: path
required: true
schema:
type: string
title: Integration Id
- name: node_type
in: path
required: true
schema:
type: string
title: Node Type
- name: _select
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fetch only selected fields
title: ' Select'
description: Fetch only selected fields
responses:
'200':
description: Integration action details
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/workflows/v1/integrations/{integration_id}/actions/{node_type}/execute:
post:
tags:
- Public API
summary: Execute Integration Action
description: Execute a single integration action directly (without running a flow). The request body must match the action input schema.
operationId: execute_integration_action_workflows_v1_integrations__integration_id__actions__node_type__execute_post
parameters:
- name: integration_id
in: path
required: true
schema:
type: string
title: Integration Id
- name: node_type
in: path
required: true
schema:
type: string
title: Node Type
requestBody:
content:
application/json:
schema:
anyOf:
- type: object
additionalProperties: true
- type: 'null'
title: Body
responses:
'200':
description: Action execution result
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
components:
schemas:
FlowRunStatus:
type: string
enum:
- unspecified
- running
- completed
- failed
- canceled
- terminated
- continued as new
- time out
- waiting for action
title: FlowRunStatus
IntegrationSortBy:
type: string
enum:
- name
- createdDate
- createdAt
- updatedAt
title: IntegrationSortBy
FlowScheduleType:
type: string
enum:
- manual
- api
- listener
- Form
- time
title: FlowScheduleType
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
SortOrder:
type: string
enum:
- asc
- desc
title: SortOrder
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
FlowEnableDisableRequest:
properties:
isActive:
type: boolean
title: Isactive
type: object
required:
- isActive
title: FlowEnableDisableRequest
FormSortBy:
type: string
enum:
- name
- createdDate
- createdAt
- updatedAt
- lastRun
title: FormSortBy
FlowSortBy:
type: string
enum:
- name
- status
- createdDate
- createdAt
- updatedAt
- lastRun
- scheduleType
- creator
- lastEditor
title: FlowSortBy
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'Use a DEX token in the Authorization header: Bearer <DEX_TOKEN>'