Flowable Content API
REST API for managing content items and attachments within Flowable, supporting binary content storage, retrieval, and association with tasks and process instances.
REST API for managing content items and attachments within Flowable, supporting binary content storage, retrieval, and association with tasks and process instances.
openapi: 3.0.0
info:
description: Flowable Platform
version: v1
title: Flowable Content REST API
contact:
name: Flowable
url: http://www.flowable.com/
tags:
- name: Case Definitions
- name: Content item
- name: Content item metadata
- name: Deployment
- name: Document Definitions
- name: Document Deployment
- name: Engine
- name: Query
- name: Rendition item
- name: Version parent item
paths:
/content-management/engine:
get:
tags:
- Engine
summary: Get Content engine info
description: ''
operationId: getEngineInfo
responses:
'200':
description: Indicates the engine info is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/EngineInfoResponse'
security:
- basicAuth: []
/content-service/content-items:
get:
tags:
- Content item
summary: List content items
description: ''
operationId: listContentItems
parameters:
- name: id
in: query
description: Only return content items with the given id.
required: false
schema:
type: string
- name: name
in: query
description: Only return content items with the given name.
required: false
schema:
type: string
- name: nameLike
in: query
description: Only return content items with a name like the given value.
required: false
schema:
type: string
- name: mimeType
in: query
description: Only return content items with the given mime type.
required: false
schema:
type: string
- name: mimeTypeLike
in: query
description: Only return content items with a mime type like the given value.
required: false
schema:
type: string
- name: taskId
in: query
description: Only return content items with the given task id.
required: false
schema:
type: string
- name: taskIdLike
in: query
description: Only return content items with a task like the given value.
required: false
schema:
type: string
- name: processInstanceId
in: query
description: Only return content items with the given process instance id.
required: false
schema:
type: string
- name: processInstanceIdLike
in: query
description: Only return content items with a process instance like the given
value.
required: false
schema:
type: string
- name: scopeId
in: query
description: Only return content items with the given scopeId. When this is
used then scopeType must also be set.
required: false
schema:
type: string
- name: scopeIdLike
in: query
description: Only return content items with s scopeId like the given value.
When this is used then scopeType must also be set.
required: false
schema:
type: string
- name: scopeType
in: query
description: Only return content items with the given scopeType.
required: false
schema:
type: string
- name: contentStoreId
in: query
description: Only return content items with the given content store id.
required: false
schema:
type: string
- name: contentStoreIdLike
in: query
description: Only return content items with a content store id like the given
value.
required: false
schema:
type: string
- name: contentStoreName
in: query
description: Only return content items with the given content store name.
required: false
schema:
type: string
- name: contentStoreNameLike
in: query
description: Only return content items with a content store name like the
given value.
required: false
schema:
type: string
- name: contentAvailable
in: query
description: Only return content items with or without content available.
required: false
schema:
type: boolean
- name: contentSize
in: query
description: Only return content items with the given content size.
required: false
schema:
type: number
format: int64
- name: minimumContentSize
in: query
description: Only return content items with the a minimum content size of
the given value.
required: false
schema:
type: number
format: int64
- name: maximumContentSize
in: query
description: Only return content items with the a maximum content size of
the given value.
required: false
schema:
type: number
format: int64
- name: field
in: query
description: Only return content items with the given field.
required: false
schema:
type: string
- name: fieldLike
in: query
description: Only return content items with a field like the given value.
required: false
schema:
type: string
- name: latest
in: query
description: Only return content items with the highest available version.
required: false
schema:
type: boolean
- name: createdOn
in: query
description: Only return content items with the given create date.
required: false
schema:
type: string
format: date-time
- name: createdBefore
in: query
description: Only return content items before given create date.
required: false
schema:
type: string
format: date-time
- name: createdAfter
in: query
description: Only return content items after given create date.
required: false
schema:
type: string
format: date-time
- name: createdBy
in: query
description: Only return content items with the given created by.
required: false
schema:
type: string
- name: createdByLike
in: query
description: Only return content items with a created by like the given value.
required: false
schema:
type: string
- name: lastModifiedOn
in: query
description: Only return content items with the given last modified date.
required: false
schema:
type: string
format: date-time
- name: lastModifiedBefore
in: query
description: Only return content items before given last modified date.
required: false
schema:
type: string
format: date-time
- name: lastModifiedAfter
in: query
description: Only return content items after given last modified date.
required: false
schema:
type: string
format: date-time
- name: lastModifiedBy
in: query
description: Only return content items with the given last modified by.
required: false
schema:
type: string
- name: lastModifiedByLike
in: query
description: Only return content items with a last modified by like the given
value.
required: false
schema:
type: string
- name: versionParentId
in: query
description: Only return content items with a given version parent id.
required: false
schema:
type: string
- name: tenantId
in: query
description: Only return content items with the given tenantId.
required: false
schema:
type: string
- name: tenantIdLike
in: query
description: Only return content items with a tenantId like the given value.
required: false
schema:
type: string
- name: withoutTenantId
in: query
description: If true, only returns content items without a tenantId set. If
false, the withoutTenantId parameter is ignored.
required: false
schema:
type: boolean
- name: type
in: query
description: Only return content items with the given type.
required: false
schema:
type: string
- name: subType
in: query
description: Only return content items with the given subType.
required: false
schema:
type: string
- name: state
in: query
description: Only return content items with the given state.
required: false
schema:
type: string
- name: subState
in: query
description: Only return content items with the given subState.
required: false
schema:
type: string
- name: parentFolderId
in: query
description: Only return content items with the given folder parent id.
required: false
schema:
type: string
responses:
'200':
description: The content items are returned.
content:
application/json:
schema:
$ref: '#/components/schemas/DataResponseContentItemResponse'
security:
- basicAuth: []
post:
tags:
- Content item
summary: Create a new content item, with content item information and an optional
attached file
description: 'This endpoint can be used in 2 ways: By passing a JSON Body (ContentItemRequest)
to link an external resource or by passing a multipart/form-data Object to
attach a file.
NB: Swagger V2 specification doesn''t support this use case that''s why this
endpoint might be buggy/incomplete if used with other tools.'
operationId: createContentItem
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
description: Attachment file
type: string
format: binary
name:
description: Required name of the variable
example: Simple content item
type: string
versionInfo:
description: A version identifier for the content item, optional
example: Simple content item
type: string
mimeType:
description: Mime type of the content item, optional
example: application/pdf
type: string
taskId:
description: Task identifier for the content item, optional
example: '12345'
type: string
processInstanceId:
description: Process instance identifier for the content item, optional
example: '1234'
type: string
scopeType:
description: Scope type of the content item, optional
example: cmmn or bpmn
type: string
scopeId:
description: Scope id for the content item, optional
example: '12345'
type: string
contentStoreId:
description: The identifier of the content item in an external content
store, optional
example: '5678'
type: string
contentStoreName:
description: The name of an external content store, optional
example: myFileStore
type: string
field:
description: The form field for the content item, optional
example: uploadField
type: string
createdBy:
description: The user identifier that created the content item,
optional
example: johndoe
type: string
lastModifiedBy:
description: The user identifier that last modified the content
item, optional
example: johndoe
type: string
versionParentId:
description: Parent version identifier to create a new version for
the content item, optional
example: '1234'
type: string
tenantId:
description: The tenant identifier of the content item, optional
example: myTenantId
type: string
description: Create a new content item, with content item information
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ContentItemResponse'
'201':
description: Indicates the content item was created and the result is returned.
'400':
description: Indicates required content item info is missing from the request.
security:
- basicAuth: []
/content-service/content-items/{contentItemId}:
get:
tags:
- Content item
summary: Get a content item
description: ''
operationId: getContentItem
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the content item was found and returned.
content:
application/json:
schema:
$ref: '#/components/schemas/ContentItemResponse'
'404':
description: Indicates the requested content item was not found.
security:
- basicAuth: []
put:
tags:
- Content item
summary: Updates a content item, with the provided content item information
description: ''
operationId: updateContentItem
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/ContentItemRequest'
responses:
'200':
description: Indicates the content item was updated and the result is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/ContentItemResponse'
'404':
description: Indicates content item could not be found.
security:
- basicAuth: []
delete:
tags:
- Content item
summary: Delete a content item
description: ''
operationId: deleteContentItem
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
responses:
'204':
description: Indicates the content item was deleted.
'404':
description: Indicates the content item was not found.
security:
- basicAuth: []
/content-service/content-items/{contentItemId}/copy:
post:
tags:
- Content item
summary: Copy a content item to the parent folder
description: ''
operationId: copyContentItem
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/ContentItemRequest'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ContentItemResponse'
'201':
description: Indicates the content item was copied and the result is returned.
'404':
description: Indicates content item could not be found.
security:
- basicAuth: []
/content-service/content-items/{contentItemId}/data:
get:
tags:
- Content item
summary: Get the data of a content item
description: The response body contains the binary content. By default, the
content-type of the response is set to application/octet-stream unless the
content item type contains a valid mime type.
operationId: getContentItemData
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
- name: download
in: query
description: Explicitly request the content to be downloaded or viewed in
a browser. By default it would be done based on the content media type
required: false
schema:
type: boolean
responses:
'200':
description: Indicates the content item was found and the requested content
is returned.
content:
'*/*':
schema:
$ref: '#/components/schemas/Resource'
'404':
description: Indicates the content item was not found or the content item
does not have a binary stream available. Status message provides additional
information.
security:
- basicAuth: []
post:
tags:
- Content item
summary: Save the content item data
description: Save the content item data with an attached file. The request should
be of type multipart/form-data. There should be a single file-part included
with the binary value of the content item.
operationId: saveContentItemData
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/saveContentItemData'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ContentItemResponse'
'201':
description: Indicates the content item data was saved and the result is
returned.
'400':
description: Indicates required content item data is missing from the request.
security:
- basicAuth: []
/content-service/content-items/{contentItemId}/data/latest:
get:
tags:
- Content item
summary: Get the latest data of a content item
description: The response body contains the binary content. By default, the
content-type of the response is set to application/octet-stream unless the
content item type contains a valid mime type.
operationId: getLatestContentItemData
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
- name: download
in: query
description: Explicitly request the latest content to be downloaded or viewed
in a browser. By default it would be done based on the content media type
required: false
schema:
type: boolean
responses:
'200':
description: Indicates the latest content item was found and the requested
content is returned.
content:
'*/*':
schema:
$ref: '#/components/schemas/Resource'
'404':
description: Indicates the latest content item was not found or the latest
content item does not have a binary stream available. Status message provides
additional information.
security:
- basicAuth: []
/content-service/content-items/{contentItemId}/metadata:
get:
tags:
- Content item metadata
summary: List metadata for a content item instance
description: ''
operationId: listContentMetadata
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the content item was found and metadata is returned.
content:
application/json:
schema:
type: object
additionalProperties:
type: object
'400':
description: Indicates the requested content item was not found.
security:
- basicAuth: []
post:
tags:
- Content item metadata
summary: Create variables or new binary variable on a content item
description: 'This endpoint can be used in 2 ways: By passing a JSON Body (RestVariable
or an array of RestVariable) or by passing a multipart/form-data Object.
Nonexistent metadata are created on the content item and existing ones are
overridden without any error.
Any number of variables can be passed into the request body array.
Note that scope is ignored, only local variables can be set in a case instance.
NB: Swagger V2 specification doesn''t support this use case that''s why this
endpoint might be buggy/incomplete if used with other tools.'
operationId: createContentMetadata
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/MetadataCollectionResource'
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
'201':
description: Indicates the content item was found and metadata is created.
'400':
description: Indicates the request body is incomplete or contains illegal
values. The status description contains additional information about the
error.
'404':
description: Indicates the requested content item was not found.
security:
- basicAuth: []
put:
tags:
- Content item metadata
summary: Update a multiple/single (non)binary variable on a content item
description: 'This endpoint can be used in 2 ways: By passing a JSON Body (RestVariable
or an array of RestVariable) or by passing a multipart/form-data Object.
Nonexistent variables are created on the content item and existing ones are
overridden without any error.
Any number of variables can be passed into the request body array.
Note that scope is ignored, only local variables can be set in a case instance.
NB: Swagger V2 specification doesn''t support this use case that''s why this
endpoint might be buggy/incomplete if used with other tools.'
operationId: createOrUpdateContentMetadata
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/MetadataCollectionResource'
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
'201':
description: Indicates the content item was found and variable is created.
'400':
description: Indicates the request body is incomplete or contains illegal
values. The status description contains additional information about the
error.
'404':
description: Indicates the requested content item was not found.
'415':
description: Indicates the serializable data contains an object for which
no class is present in the JVM running the Flowable engine and therefore
cannot be deserialized.
security:
- basicAuth: []
delete:
tags:
- Content item metadata
summary: Delete all content item metadata
description: ''
operationId: deleteContentMetadata
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
responses:
'204':
description: Indicates metadata was found and have been deleted. Response-body
is intentionally empty.
'404':
description: Indicates the requested content item was not found.
security:
- basicAuth: []
/content-service/content-items/{contentItemId}/metadata/{metadataName}:
get:
tags:
- Content item metadata
summary: Get a metadata value for a content item
description: ''
operationId: getContentItemMetadataValue
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
- name: metadataName
in: path
required: true
schema:
type: string
- name: scope
in: query
required: false
schema:
type: string
responses:
'200':
description: Indicates both the content item and variable were found and
variable is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/EngineRestVariable'
'404':
description: Indicates the requested content item was not found or the case
instance does not have a variable with the given name. Status description
contains additional information about the error.
security:
- basicAuth: []
put:
tags:
- Content item metadata
summary: Update a single metadata value on a content item
description: 'This endpoint can be used in 2 ways: By passing a JSON Body (RestVariable)
or by passing a multipart/form-data Object.
Nonexistent variables are created on the case instance and existing ones are
overridden without any error.
Note that scope is ignored, only local variables can be set in a process instance.
NB: Swagger V2 specification doesn''t support this use case that''s why this
endpoint might be buggy/incomplete if used with other tools.'
operationId: updateContentItemMetadataValue
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
- name: metadataName
in: path
required: true
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
name:
example: Simple content item
type: string
type:
example: integer
type: string
description: Create a variable on a case instance
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/EngineRestVariable'
'201':
description: Indicates both the content item and metadata value were found
and variable is updated.
'404':
description: Indicates the requested content item was not found or the content
item does not have a metadata value with the given name. Status description
contains additional information about the error.
security:
- basicAuth: []
delete:
tags:
- Content item metadata
summary: Delete a metadata value
description: ''
operationId: deleteContentItemMetadataValue
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
- name: metadataName
in: path
required: true
schema:
type: string
- name: scope
in: query
required: false
schema:
type: string
responses:
'204':
description: Indicates the variable was found and has been deleted. Response-body
is intentionally empty.
'404':
description: Indicates the requested variable was not found.
security:
- basicAuth: []
/content-service/content-items/{contentItemId}/rendition/{renditionType}:
get:
tags:
- Content item
summary: Get a rendition item (data) with a rendition type related to a content
item
description: Rendition type can be 'thumbnail' or 'pdf'The response body contains
the binary content. By default, the content-type of the response is set to
application/octet-stream unless the content item type contains a valid mime
type.
operationId: getRenditionForContentItem
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
- name: renditionType
in: path
required: true
schema:
type: string
- name: download
in: query
description: Explicitly request the content to be downloaded or viewed in
a browser. By default it would be done based on the content media type
required: false
schema:
type: boolean
responses:
'200':
description: Indicates the rendition item was found and returned.
content:
'*/*':
schema:
$ref: '#/components/schemas/Resource'
'404':
description: Indicates the requested rendition item was not found.
security:
- basicAuth: []
/content-service/content-items/{contentItemId}/rendition/{renditionType}/latest:
get:
tags:
- Content item
summary: Get the latest rendition item (data) with a rendition type related
to a content item
description: Rendition type can be 'thumbnail' or 'pdf'The response body contains
the binary content. By default, the content-type of the response is set to
application/octet-stream unless the content item type contains a valid mime
type.
operationId: getLatestRenditionForContentItem
parameters:
- name: contentItemId
in: path
required: true
schema:
type: string
- name: renditionType
in: path
required: true
schema:
type: string
- name: download
in: query
description: Explicitly request the content to be downloaded or viewed in
a browser. By default it would be done based on the content media type
required: false
schema:
type: boolean
responses:
'200':
description: Indicates the rendition item was found and returned.
content:
'*/*':
schema:
$ref: '#/components/schemas/Resource'
'404':
description: Indicates the requested rendition item was not found.
security:
- basicAuth: []
/content-service/rendition-items/{renditionItemId}/data:
post:
tags:
- Rendition item
summary: Save the rendition item data
description: Save the rendition item data with an attached file. The request
should be of type multipart/form-data. There should be a single file-part
included with the binary value of the content item.
operationId: saveContentItemData
parameters:
- name: renditionItemId
in: path
required: true
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/saveContentItemData'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/RenditionItemResponse'
'201':
description: Indicates the rendition item data was saved and the result
is returned.
'400':
description: Indicates required rendition item data is missing from the
request.
security:
- basicAuth: []
/content-service/version-parent-items/{ve
# --- truncated at 32 KB (89 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/flowable/refs/heads/main/openapi/flowable-content-openapi.yml