Flowable Form API
REST API for managing form definitions and submissions in Flowable, enabling rendering, completion, and retrieval of forms associated with process and case tasks.
REST API for managing form definitions and submissions in Flowable, enabling rendering, completion, and retrieval of forms associated with process and case tasks.
openapi: 3.0.0
info:
description: Flowable Platform
version: v1
title: Flowable Form REST API
contact:
name: Flowable
url: http://www.flowable.com/
tags:
- name: Engine
- name: Form Definitions
- name: Form Deployments
- name: Form Instance Models
- name: Form Instances
- name: Form Models
- name: Query
paths:
/form-management/engine:
get:
tags:
- Engine
summary: Get form engine info
description: Returns a read-only view of the engine that is used in this REST-service.
operationId: getEngineInfo
responses:
'200':
description: Indicates the engine info is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/EngineInfoResponse'
security:
- basicAuth: []
/form-repository/button-definitions/key/{formDefinitionKey}/model:
get:
tags:
- Form Definitions
summary: Get a form definition Form model by form definition key with only buttons
description: ''
operationId: getFormDefinitionButtonsByKey
parameters:
- name: formDefinitionKey
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the form definition Form model was found returned.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ButtonModelResponse'
'404':
description: Indicates the form definition Form model was not found.
security:
- basicAuth: []
/form-repository/deployments:
get:
tags:
- Form Deployments
summary: List of Form Deployments
description: ''
operationId: listFormDeployments
parameters:
- name: name
in: query
description: Only return form deployments with the given name.
required: false
schema:
type: string
- name: nameLike
in: query
description: Only return form deployments with a name like the given name.
required: false
schema:
type: string
- name: category
in: query
description: Only return form deployments with the given category.
required: false
schema:
type: string
- name: categoryNotEquals
in: query
description: Only return form deployments which don’t have the given category.
required: false
schema:
type: string
- name: parentDeploymentId
in: query
description: Only return form deployments with the given parent deployment
id.
required: false
schema:
type: string
- name: tenantId
in: query
description: Only return form deployments with the given tenantId.
required: false
schema:
type: string
- name: tenantIdLike
in: query
description: Only return form deployments with a tenantId like the given value.
required: false
schema:
type: string
- name: withoutTenantId
in: query
description: If true, only returns form deployments without a tenantId set.
If false, the withoutTenantId parameter is ignored.
required: false
schema:
type: boolean
- name: sort
in: query
description: Property to sort on, to be used together with the order.
required: false
schema:
type: string
enum:
- id
- name
- deployTime
- tenantId
responses:
'200':
description: Indicates the request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/DataResponseFormDeploymentResponse'
security:
- basicAuth: []
post:
tags:
- Form Deployments
summary: Create a new form deployment
description: The request body should contain data of type multipart/form-data.
There should be exactly one file in the request, any additional files will
be ignored. The deployment name is the name of the file-field passed in. Make
sure the file-name ends with .form or .xml.
operationId: uploadDeployment
parameters:
- name: tenantId
in: query
required: false
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/FormDeploymentResponse'
'201':
description: Indicates the form deployment was created.
'400':
description: Indicates there was no content present in the request body
or the content mime-type is not supported for form deployment. The status-description
contains additional information.
security:
- basicAuth: []
/form-repository/deployments/{deploymentId}:
get:
tags:
- Form Deployments
summary: Get a form deployment
description: ''
operationId: getFormDeployment
parameters:
- name: deploymentId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the form deployment was found and returned.
content:
application/json:
schema:
$ref: '#/components/schemas/FormDeploymentResponse'
'404':
description: Indicates the requested form deployment was not found.
security:
- basicAuth: []
delete:
tags:
- Form Deployments
summary: Delete a form deployment
description: ''
operationId: deleteFormDeployment
parameters:
- name: deploymentId
in: path
required: true
schema:
type: string
responses:
'204':
description: Indicates the form deployment was found and has been deleted.
Response-body is intentionally empty.
'404':
description: Indicates the requested form deployment was not found.
security:
- basicAuth: []
/form-repository/deployments/{deploymentId}/resourcedata/{resourceName}:
get:
tags:
- Form Deployments
summary: Get a form deployment resource content
description: The response body will contain the binary resource-content for
the requested resource. The response content-type will be the same as the
type returned in the resources mimeType property. Also, a content-disposition
header is set, allowing browsers to download the file instead of displaying
it.
operationId: getFormDeploymentResource
parameters:
- name: deploymentId
in: path
required: true
schema:
type: string
- name: resourceName
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates both form deployment and resource have been found
and the resource data has been returned.
content:
'*/*':
schema:
type: array
items:
type: string
format: byte
'404':
description: Indicates the requested form deployment was not found or there
is no resource with the given id present in the form deployment. The status-description
contains additional information.
security:
- basicAuth: []
/form-repository/form-definitions:
get:
tags:
- Form Definitions
summary: List of form definitions
description: ''
operationId: listFormDefinitions
parameters:
- name: category
in: query
description: Only return form definitions with the given category.
required: false
schema:
type: string
- name: categoryLike
in: query
description: Only return form definitions with a category like the given value.
required: false
schema:
type: string
- name: categoryNotEquals
in: query
description: Only return form definitions not with the given category.
required: false
schema:
type: string
- name: key
in: query
description: Only return form definitions with the given key.
required: false
schema:
type: string
- name: keyLike
in: query
description: Only return form definitions with a key like the given value.
required: false
schema:
type: string
- name: name
in: query
description: Only return form definitions with the given name.
required: false
schema:
type: string
- name: nameLike
in: query
description: Only return form definitions with a name like the given value.
required: false
schema:
type: string
- name: resourceName
in: query
description: Only return form definitions with the given resource name.
required: false
schema:
type: string
- name: resourceNameLike
in: query
description: Only return form definitions a resource name like the given value.
required: false
schema:
type: string
- name: version
in: query
description: Only return form definitions with the given version.
required: false
schema:
type: string
- name: versionGreaterThan
in: query
description: Only return form definitions with a version greater than the
given value.
required: false
schema:
type: string
- name: versionGreaterThanOrEquals
in: query
description: Only return form definitions with a version greater than or equal
to the given value.
required: false
schema:
type: string
- name: versionLowerThan
in: query
description: Only return form definitions with a version lower than the given
value.
required: false
schema:
type: string
- name: versionLowerThanOrEquals
in: query
description: Only return form definitions with a version lower than or equal
to the given value.
required: false
schema:
type: string
- name: deploymentId
in: query
description: Only return form definitions with the given deployment id.
required: false
schema:
type: string
- name: parentDeploymentId
in: query
description: Only return form definitions with the given parent deployment
id.
required: false
schema:
type: string
- name: tenantId
in: query
description: Only return form definitions with the given tenant id.
required: false
schema:
type: string
- name: tenantIdLike
in: query
description: Only return form definitions with a tenant id like the given
value.
required: false
schema:
type: string
- name: withoutTenantId
in: query
description: Only return form definitions without a tenant id.
required: false
schema:
type: string
- name: latest
in: query
description: If true; only the latest versions will be returned.
required: false
schema:
type: boolean
- name: sort
in: query
description: Property to sort on, to be used together with the order.
required: false
schema:
type: string
enum:
- key
- category
- id
- version
- name
- deploymentId
- tenantId
responses:
'200':
description: Indicates request was successful and the form definitions are
returned
content:
application/json:
schema:
$ref: '#/components/schemas/DataResponseFormDefinitionResponse'
'400':
description: Indicates a parameter was passed in the wrong format . The
status-message contains additional information.
security:
- basicAuth: []
/form-repository/form-definitions/key/{formDefinitionKey}/model:
get:
tags:
- Form Definitions
summary: Get a form definition Form model by form definition key
description: ''
operationId: getFormDefinitionFormModelByKey
parameters:
- name: formDefinitionKey
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the form definition Form model was found returned.
content:
application/json:
schema:
$ref: '#/components/schemas/FormModelResponse'
'404':
description: Indicates the form definition Form model was not found.
security:
- basicAuth: []
/form-repository/form-definitions/{formDefinitionId}:
get:
tags:
- Form Definitions
summary: Get a form definition
description: ''
operationId: getForm
parameters:
- name: formDefinitionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the form definition was found returned.
content:
application/json:
schema:
$ref: '#/components/schemas/FormDefinitionResponse'
'404':
description: Indicates the form definition was not found.
security:
- basicAuth: []
/form-repository/form-definitions/{formDefinitionId}/model:
get:
tags:
- Form Definitions
summary: Get a form definition Form model
description: ''
operationId: getFormDefinitionFormModel
parameters:
- name: formDefinitionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the form definition Form model was found returned.
content:
application/json:
schema:
$ref: '#/components/schemas/FormModelResponse'
'404':
description: Indicates the form definition Form model was not found.
security:
- basicAuth: []
/form-repository/form-definitions/{formDefinitionId}/resourcedata:
get:
tags:
- Form Definitions
summary: Get a form definition resource content
description: ''
operationId: getFormDefinitionContent
parameters:
- name: formDefinitionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates both form definition and resource have been found
and the resource data has been returned.
content:
application/json:
schema:
type: array
items:
type: string
format: byte
'404':
description: Indicates the requested form definition was not found or there
is no resource with the given id present in the process definition. The
status-description contains additional information.
security:
- basicAuth: []
/form/form-instance-model:
post:
tags:
- Form Instance Models
summary: Get a form instance model
description: ''
operationId: getFormInstanceModel
requestBody:
$ref: '#/components/requestBodies/FormRequest'
responses:
'200':
description: Indicates the form instance was found and the model is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/FormInstanceModelResponse'
'404':
description: Indicates the form instance was not found.
security:
- basicAuth: []
/form/form-instance/{formInstanceId}:
get:
tags:
- Form Instances
summary: Get a form instance
description: ''
operationId: getFormInstance
parameters:
- name: formInstanceId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the form instance was found and returned.
content:
application/json:
schema:
$ref: '#/components/schemas/FormInstanceResponse'
'404':
description: Indicates the requested form instance was not found.
security:
- basicAuth: []
/form/form-instance/{formInstanceId}/values:
get:
tags:
- Form Instances
summary: Get form instance values
description: ''
operationId: getFormInstance
parameters:
- name: formInstanceId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the form instance was found and the values returned.
content:
application/json:
schema:
type: string
'404':
description: Indicates the requested form instance was not found.
security:
- basicAuth: []
/form/form-instances:
get:
tags:
- Form Instances
summary: List of form instances
description: ''
operationId: listFormInstances
parameters:
- name: id
in: query
description: Only return form instances with the given id.
required: false
schema:
type: string
- name: formDefinitionId
in: query
description: Only return form instances with the given form definition id.
required: false
schema:
type: string
- name: formDefinitionIdLike
in: query
description: Only return form instances with a form definition id like the
given value.
required: false
schema:
type: string
- name: taskId
in: query
description: Only return form instances with the given task id.
required: false
schema:
type: string
- name: taskIdLike
in: query
description: Only return form instances with a task id like the given value.
required: false
schema:
type: string
- name: processInstanceId
in: query
description: Only return form instances with the given process instance id.
required: false
schema:
type: string
- name: processInstanceIdLike
in: query
description: Only return form instances with a process instance id like the
given value.
required: false
schema:
type: string
- name: processDefinitionId
in: query
description: Only return form instances with the given process definition
id.
required: false
schema:
type: string
- name: processDefinitionIdLike
in: query
description: Only return form instances with a process definition id like
the given value.
required: false
schema:
type: string
- name: scopeId
in: query
description: Only return form instances with the given scope id.
required: false
schema:
type: string
- name: scopeType
in: query
description: Only return form instances with a scope type like the given value.
required: false
schema:
type: string
- name: scopeDefinitionId
in: query
description: Only return form instances with the given scope definition id.
required: false
schema:
type: string
- name: submittedBy
in: query
description: Only return form instances submitted by the given value.
required: false
schema:
type: string
- name: submittedByLike
in: query
description: Only return form instances submitted by like the given value.
required: false
schema:
type: string
- name: tenantId
in: query
description: Only return form instances with the given tenantId.
required: false
schema:
type: string
- name: tenantIdLike
in: query
description: Only return form instances with a tenantId like the given value.
required: false
schema:
type: string
- name: withoutTenantId
in: query
description: If true, only returns form instances without a tenantId set.
If false, the withoutTenantId parameter is ignored.
required: false
schema:
type: boolean
- name: sort
in: query
description: Property to sort on, to be used together with the order.
required: false
schema:
type: string
enum:
- submittedDate
- tenantId
responses:
'200':
description: Indicates request was successful and the form instances are
returned
content:
application/json:
schema:
$ref: '#/components/schemas/DataResponseFormInstanceResponse'
'400':
description: Indicates a parameter was passed in the wrong format . The
status-message contains additional information.
security:
- basicAuth: []
post:
tags:
- Form Instances
summary: Store a form instance
description: Provide either a FormDefinitionKey or a FormDefinitionId together
with the other properties.
operationId: storeFormInstance
requestBody:
$ref: '#/components/requestBodies/FormRequest'
responses:
'201':
description: Indicates the form instance was stored.
'404':
description: Indicates the related form model was not found.
security:
- basicAuth: []
/form/model:
post:
tags:
- Form Models
summary: Get a populated form model
description: Provide variables needed to pre populated form fields and to render
expression based form fields
operationId: getFormModel
requestBody:
$ref: '#/components/requestBodies/FormRequest'
responses:
'200':
description: Indicates the form model was found and returned.
content:
application/json:
schema:
$ref: '#/components/schemas/FormModelResponse'
'404':
description: Indicates the requested form model was not found.
security:
- basicAuth: []
/query/form-instances:
post:
tags:
- Form Instances
- Query
summary: Query form instances
description: 'The request body can contain all possible filters that can be
used in the List form instances URL query. On top of these, it’s possible
to provide an array of variables to include in the query, with their format
described here.
The general paging and sorting query-parameters can be used for this URL.'
operationId: queryFormInstances
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FormInstanceQueryRequest'
responses:
'200':
description: Indicates request was successful and the form instances are
returned
content:
application/json:
schema:
$ref: '#/components/schemas/DataResponseFormInstanceResponse'
'400':
description: Indicates a parameter was passed in the wrong format . The
status-message contains additional information.
security:
- basicAuth: []
servers:
- url: http://localhost:8090/form-api
- url: https://localhost:8090/form-api
components:
requestBodies:
FormRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/FormRequest'
securitySchemes:
basicAuth:
type: http
scheme: basic
schemas:
ButtonModelResponse:
type: object
properties:
label:
type: string
value:
type: string
CustomValidationDefinition:
type: object
properties:
expression:
type: string
errorMsg:
type: string
i18n:
type: object
additionalProperties:
type: object
additionalProperties:
type: string
DataResponse:
type: object
properties:
data:
type: array
items:
type: object
total:
type: integer
format: int64
start:
type: integer
format: int32
sort:
type: string
order:
type: string
size:
type: integer
format: int32
DataResponseFormDefinitionResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/FormDefinitionResponse'
total:
type: integer
format: int64
start:
type: integer
format: int32
sort:
type: string
order:
type: string
size:
type: integer
format: int32
DataResponseFormDeploymentResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/FormDeploymentResponse'
total:
type: integer
format: int64
start:
type: integer
format: int32
sort:
type: string
order:
type: string
size:
type: integer
format: int32
DataResponseFormInstanceResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/FormInstanceResponse'
total:
type: integer
format: int64
start:
type: integer
format: int32
sort:
type: string
order:
type: string
size:
type: integer
format: int32
EngineInfoResponse:
type: object
properties:
name:
type: string
example: default
resourceUrl:
type: string
example: file://flowable/flowable.cfg.xml
exception:
type: string
example: 'null'
version:
type: string
example: 6.3.1
EventDefinition:
type: object
properties:
id:
type: string
eventType:
type: string
implementationType:
type: string
expression:
type: string
resultVariable:
type: string
FormDefinitionResponse:
type: object
properties:
id:
type: string
example: '10'
url:
type: string
example: http://localhost:8182/form-repository/form-definitions/simpleForm
category:
type: string
example: Examples
name:
type: string
example: The Simple Form
key:
type: string
example: simpleForm
description:
type: string
example: This is a form for testing purposes
version:
type: integer
format: int32
example: 1
resourceName:
type: string
example: SimpleSourceName
deploymentId:
type: string
example: 818e4703-f1d2-11e6-8549-acde48001121
tenantId:
type: string
example: 'null'
FormDeploymentResponse:
type: object
properties:
id:
type: string
example: '10'
name:
type: string
example: flowable-form-examples
deploymentTime:
type: string
format: date-time
example: '2010-10-13T14:54:26.750+02:00'
category:
type: string
example: examples
url:
type: string
example: http://localhost:8081/form-api/form-repository/deployments/10
parentDeploymentId:
type: string
example: '5'
tenantId:
type: string
example: 'null'
FormInstanceModelResponse:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
key:
type: string
version:
type: integer
format: int32
formInstanceId:
type: string
submittedBy:
type: string
submittedDate:
type: string
format: date-time
selectedOutcome:
type: string
taskId:
type: string
processInstanceId:
type: string
processDefinitionId:
type: string
tenantId:
type: string
url:
type: string
formKey:
type: string
dialogSize:
type: string
dialogTitle:
type: string
dialogDescription:
type: string
forceValidation:
type: boolean
defaultDateFormat:
type: string
defaultNumberFormat:
type: string
rows:
type: array
items:
$ref: '#/components/schemas/RowDefinition'
metadata:
$ref: '#/components/schemas/MetadataDefinition'
section:
$ref: '#/components/schemas/SectionDefinition'
outcomes:
type: array
items:
$ref: '#/components/schemas/OutcomeDefinition'
customValidations:
type: array
items:
$ref: '#/components/schemas/CustomValidationDefinition'
FormInstanceQueryRequest:
type: object
properties:
start:
type: integer
format: int32
size:
type: integer
format: int32
sort:
type: string
order:
type: string
id:
type: string
formDefinitionId:
type: string
formDefinitionIdLike:
type: string
taskId:
type: string
taskIdLike:
type: string
processInstanceId:
type: string
processInstanceIdLike:
type: string
processDefinitionId:
type: string
processDefinitionIdLike:
type: string
scopeId:
type: string
scopeType:
type: string
scopeDefinitionId:
type: string
submittedBy:
type: string
submittedByLike:
type: string
tenantId:
type: string
tenantIdLike:
type: string
withoutTenantId:
type: boolean
FormInstanceResponse:
type: object
properties:
id:
type: string
example: 48b9ac82-f1d3-11e6-8549-acde48001122
formDefinitionId:
type: string
example: 818e4703-f1d2-11e6-8549-acde48001122
taskId:
type: string
example: '88'
processInstanceId:
type: string
example: '66'
processDefinitionId:
type: string
example: oneTaskProcess:1:158
submittedDate:
type: string
format: date-time
example: 2013-04-17T10:17:43.902+0000
submittedBy:
type: string
example: testUser
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/flowable/refs/heads/main/openapi/flowable-form-openapi.yml