Openapi
ZenBPM OpenAPI (0.1.0)
Download OpenAPI specification:Download
REST API for ZenBPM
Get list of process definitions
query Parameters
| onlyLatest | boolean Default: false If true, returns only the latest version of each process definition grouped by bpmnProcessId |
| sortBy | string Enum: "name" "bpmnProcessId" "bpmnProcessName" "version" "key" Sort field |
| sortOrder | string Enum: "asc" "desc" Sort direction |
| bpmnProcessId | string Filter by BPMN process ID to get all versions of a specific process |
| page | integer <int32> >= 1 Default: 1 Example: page=1 Page number (1-based indexing) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Number of items per page (max 100) |
Responses
Response samples
- 200
- 500
{- "items": [
- {
- "key": "4503599627370498",
- "version": 1,
- "bpmnProcessId": "loan-application"
}, - {
- "key": "4503599627370499",
- "version": 2,
- "bpmnProcessId": "loan-application"
}, - {
- "key": "4503599627370500",
- "version": 1,
- "bpmnProcessId": "credit-check"
}
], - "page": 1,
- "size": 10,
- "count": 3,
- "totalCount": 3
}Get process definition
path Parameters
| processDefinitionKey required | integer <int64> Example: 4503599627370498 |
Responses
Response samples
- 200
- 400
- 500
{- "key": "4503599627370498",
- "version": 1,
- "bpmnProcessId": "loan-application",
- "bpmnData": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<bpmn:definitions>\n <bpmn:process id=\"loan-application\" name=\"Loan Application Process\" isExecutable=\"true\">\n ...\n </bpmn:process>\n</bpmn:definitions>\n"
}Create a new process instance
Request Body schema: application/jsonrequired
| processDefinitionKey required | integer <int64> |
| variables | object |
| historyTimeToLive | string Duration for which process instance data are kept in storage after the process instance ends. If omitted the default will be picked up from engine configuration. (1d8h, 1M5d8h) |
| businessKey | string Business key of the process instance used mainly for correlating process instance to the business entity. |
Responses
Request samples
- Payload
{- "processDefinitionKey": 4503599627370498,
- "variables": {
- "customerId": "customer-456",
- "amount": 1000,
- "applicationDate": "2025-08-22"
}
}Response samples
- 201
- 400
- 500
- 502
{- "key": "4503599627370501",
- "processDefinitionKey": "4503599627370498",
- "createdAt": "2025-08-22T14:30:25Z",
- "state": "active",
- "variables": {
- "customerId": "customer-456",
- "amount": 1000,
- "applicationDate": "2025-08-22"
}
}Get list of running process instances
query Parameters
| processDefinitionKey | integer <int64> Example: processDefinitionKey=4503599627370498 Key of the process definition |
| parentProcessInstanceKey | integer <int64> Example: parentProcessInstanceKey=1603294627315478 Key of the parent process instance |
| businessKey | string Business key of the process instance used mainly for correlating process instance to the business entity. |
| page | integer <int32> >= 1 Default: 1 Example: page=1 Page number (1-based indexing) |
| size | integer <int32> >= 1 Default: 10 Example: size=10 Number of items per page |
Responses
Response samples
- 200
- 400
- 500
- 502
{- "partitions": [
- {
- "partition": 1,
- "items": [
- {
- "key": "4503599627370501",
- "processDefinitionKey": "4503599627370498",
- "createdAt": "2025-08-22T14:30:25Z",
- "state": "active",
- "variables": {
- "customerId": "customer-456",
- "amount": 1000,
- "applicationDate": "2025-08-22"
}
}, - {
- "key": "4503599627370505",
- "processDefinitionKey": "4503599627370498",
- "createdAt": "2025-08-22T15:10:12Z",
- "state": "active",
- "variables": {
- "customerId": "customer-789",
- "amount": 5000,
- "applicationDate": "2025-08-22"
}
}
]
}, - {
- "partition": 2,
- "items": [
- {
- "key": "9007199254740992",
- "processDefinitionKey": "4503599627370498",
- "createdAt": "2025-08-22T15:45:33Z",
- "state": "active",
- "variables": {
- "customerId": "customer-101",
- "amount": 7500,
- "applicationDate": "2025-08-22"
}
}
]
}
], - "page": 1,
- "size": 10,
- "count": 3,
- "totalCount": 3
}Get state of a process instance selected by processInstanceKey
path Parameters
| processInstanceKey required | integer <int64> Example: 4503599627370501 |
Responses
Response samples
- 200
- 400
- 500
- 502
{- "key": "4503599627370501",
- "processDefinitionKey": "4503599627370498",
- "createdAt": "2025-08-22T14:30:25Z",
- "state": "active",
- "variables": {
- "customerId": "customer-456",
- "amount": 1000,
- "applicationDate": "2025-08-22",
- "taskAssignee": "john.doe",
- "currentStatus": "Application review"
}
}Get list of jobs for a process instance
path Parameters
| processInstanceKey required | integer <int64> Example: 4503599627370501 |
query Parameters
| page | integer <int32> >= 1 Default: 1 Example: page=1 Page number (1-based indexing) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Number of items per page (max 100) |
Responses
Response samples
- 200
- 400
- 500
- 502
{- "items": [
- {
- "key": "4503599627370510",
- "elementId": "Task_CheckApplication",
- "type": "user-task",
- "processInstanceKey": "4503599627370501",
- "state": "active",
- "createdAt": "2025-08-22T14:30:26Z",
- "variables": {
- "formKey": "loan-application-form",
- "assignee": "john.doe"
}
}, - {
- "key": "4503599627370511",
- "elementId": "Task_CreditCheck",
- "type": "service-task",
- "processInstanceKey": "4503599627370501",
- "state": "completed",
- "createdAt": "2025-08-22T14:32:15Z",
- "variables": {
- "result": "approved",
- "score": 85
}
}
], - "page": 1,
- "size": 10,
- "count": 2,
- "totalCount": 2
}Get list of visited flow elements for a process instance
path Parameters
| processInstanceKey required | integer <int64> Example: 4503599627370501 |
query Parameters
| page | integer <int32> >= 1 Default: 1 Example: page=1 Page number (1-based indexing) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Number of items per page (max 100) |
Responses
Response samples
- 200
- 400
- 502
{- "items": [
- {
- "key": "4503599627370525",
- "elementId": "StartEvent_1",
- "processInstanceKey": "4503599627370501",
- "createdAt": "2025-08-22T14:30:26Z"
}, - {
- "key": "4503599627370526",
- "elementId": "Flow_1",
- "processInstanceKey": "4503599627370501",
- "createdAt": "2025-08-22T14:30:26Z"
}, - {
- "key": "4503599627370527",
- "elementId": "Task_CheckApplication",
- "processInstanceKey": "4503599627370501",
- "createdAt": "2025-08-22T14:30:27Z"
}
], - "page": 1,
- "size": 10,
- "count": 3,
- "totalCount": 3
}Get list of incidents for a process instance
path Parameters
| processInstanceKey required | integer <int64> Example: 4503599627370501 |
query Parameters
| page | integer <int32> >= 1 Default: 1 Example: page=1 Page number (1-based indexing) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Number of items per page (max 100) |
Responses
Response samples
- 200
- 400
- 502
{- "items": [
- {
- "key": "4503599627370530",
- "elementInstanceKey": "4503599627370521",
- "elementId": "Task_CheckApplication",
- "processInstanceKey": "4503599627370501",
- "message": "Failed to assign task: User not found",
- "createdAt": "2025-08-22T14:35:10Z",
- "executionToken": "123456"
}, - {
- "key": "4503599627370531",
- "elementInstanceKey": "4503599627370522",
- "elementId": "Task_CreditCheck",
- "processInstanceKey": "4503599627370501",
- "message": "External service unavailable",
- "createdAt": "2025-08-22T14:36:22Z",
- "resolvedAt": "2025-08-22T14:45:18Z",
- "executionToken": "123457"
}
], - "page": 1,
- "size": 10,
- "count": 2,
- "totalCount": 2
}Start a new process instance starting at chosen elements
Request Body schema: application/jsonrequired
| processDefinitionKey required | integer <int64> |
| variables | object |
| startingElementIds required | Array of strings Allows for a start at chosen element id |
Responses
Request samples
- Payload
{- "processDefinitionKey": 4503599627370498,
- "variables": {
- "customerId": "customer-456",
- "amount": 1000,
- "applicationDate": "2025-08-22"
}, - "startingElementIds": [
- "flowNode-1",
- "flowNode-2"
]
}Response samples
- 201
- 400
- 500
- 502
{- "key": 0,
- "processDefinitionKey": 0,
- "businessKey": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "active",
- "parentProcessInstanceKey": 0,
- "variables": { },
- "activeElementInstances": [
- {
- "elementInstanceKey": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "string",
- "elementId": "string"
}
]
}Modify process instance
Request Body schema: application/jsonrequired
| processInstanceKey required | integer <int64> |
| variables | object Sets process instance variables. |
Array of objects (StartElementInstanceData) Starts execution token. | |
Array of objects (TerminateElementInstanceData) Terminates execution token. |
Responses
Request samples
- Payload
{- "processInstanceKey": 0,
- "variables": { },
- "elementInstancesToStart": [
- {
- "elementId": "flow-node-1"
}
], - "elementInstancesToTerminate": [
- {
- "elementId": "flow-node-1"
}
]
}Response samples
- 201
- 400
- 500
- 502
{- "processInstance": {
- "key": 0,
- "processDefinitionKey": 0,
- "businessKey": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "active",
- "parentProcessInstanceKey": 0,
- "variables": { },
- "activeElementInstances": [
- {
- "elementInstanceKey": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "string",
- "elementId": "string"
}
]
}, - "activeElementInstances": [
- {
- "elementInstanceKey": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "string",
- "elementId": "string"
}
]
}Deploy a new dmn resource definition
Request Body schema: application/xmlrequired
Responses
Request samples
- Payload
<?xml version="1.0" encoding="UTF-8"?> <definitions> <decision id="loan-approval" name="Loan Approval"> ... </decision> </definitions>
Response samples
- 201
- 400
- 409
- 502
{- "dmnResourceDefinitionKey": 4503599627370495
}Get list of dmn resource definitions
query Parameters
| page | integer <int32> >= 1 Default: 1 Example: page=1 Page number (1-based indexing) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Number of items per page (max 100) |
Responses
Response samples
- 200
- 502
{- "items": [
- {
- "key": "4503599627370495",
- "version": 1,
- "decisionDefinitionId": "loan-approval"
}, - {
- "key": "4503599627370496",
- "version": 2,
- "decisionDefinitionId": "loan-approval"
}, - {
- "key": "4503599627370497",
- "version": 1,
- "decisionDefinitionId": "credit-score-check"
}
], - "page": 1,
- "size": 10,
- "count": 3,
- "totalCount": 3
}Get dmn resource definition
path Parameters
| dmnResourceDefinitionKey required | integer <int64> Example: 4503599627370495 |
Responses
Response samples
- 200
- 400
- 502
{- "key": "4503599627370495",
- "version": 1,
- "decisionDefinitionId": "loan-approval",
- "dmnData": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions>\n <decision id=\"loan-approval\" name=\"Loan Approval\">\n ...\n </decision>\n</definitions>\n"
}Evaluate latest version of decision definition directly in engine
path Parameters
| decisionId required | string Example: loan-approval |
Request Body schema: application/jsonrequired
| bindingType required | string Enum: "latest" "deployment" "versionTag" |
| decisionDefinitionId | string Can be used in combination with bindingType latest |
| versionTag | string Is used in combination with bindingType versionTag |
| variables | object |
Responses
Request samples
- Payload
{- "bindingType": "latest",
- "variables": {
- "age": 25,
- "income": 50000
}
}Response samples
- 200
- 500
{- "evaluatedDecisions": [
- {
- "decisionId": "loan-approval",
- "decisionName": "Loan Approval",
- "decisionType": "DECISION_TABLE",
- "decisionDefinitionVersion": 1,
- "dmnResourceDefinitionKey": 4503599627370495,
- "decisionDefinitionId": "loan-approval",
- "matchedRules": [
- {
- "ruleId": "rule1",
- "ruleIndex": 0,
- "evaluatedOutputs": [
- {
- "outputId": "output1",
- "outputName": "approved",
- "outputValue": {
- "approved": true
}
}
]
}
], - "decisionOutput": {
- "approved": true
}, - "evaluatedInputs": [
- {
- "inputId": "input1",
- "inputName": "Age",
- "inputExpression": "age",
- "inputValue": {
- "age": 25
}
}, - {
- "inputId": "input2",
- "inputName": "Income",
- "inputExpression": "income",
- "inputValue": {
- "income": 50000
}
}
]
}
], - "decisionOutput": {
- "approved": true
}
}Get list of jobs on partitions
query Parameters
| jobType | string Example: jobType=service-task |
| state | string (JobState) Enum: "active" "completed" "terminated" "failed" Example: state=active |
| page | integer <int32> Default: 1 Example: page=1 |
| size | integer <int32> Default: 10 Example: size=10 |
Responses
Response samples
- 200
- 500
- 502
{- "partitions": [
- {
- "partition": 1,
- "items": [
- {
- "key": "4503599627370540",
- "elementId": "Task_ProcessPayment",
- "type": "service-task",
- "processInstanceKey": "4503599627370501",
- "state": "active",
- "createdAt": "2025-08-22T15:10:26Z",
- "variables": {
- "paymentDetails": {
- "amount": 1000,
- "currency": "USD",
- "method": "credit-card"
}
}
}
]
}, - {
- "partition": 2,
- "items": [
- {
- "key": "9007199254740995",
- "elementId": "Task_SendNotification",
- "type": "service-task",
- "processInstanceKey": "9007199254740992",
- "state": "active",
- "createdAt": "2025-08-22T15:46:33Z",
- "variables": {
- "notificationType": "email",
- "recipient": "customer@example.com"
}
}
]
}
], - "page": 1,
- "size": 10,
- "count": 2,
- "totalCount": 2
}Complete a job
Request Body schema: application/jsonrequired
| jobKey required | integer <int64> |
| variables | object |
Responses
Request samples
- Payload
{- "jobKey": 4503599627370540,
- "variables": {
- "result": "success",
- "transactionId": "tx-789-xyz",
- "processedAt": "2025-08-22T15:15:30Z"
}
}Response samples
- 400
- 502
{- "code": "NOT_FOUND",
- "message": "Process instance with key 4503599627370501 not found"
}Publish a message
Request Body schema: application/jsonrequired
| correlationKey required | string |
| messageName required | string |
| variables | object |
Responses
Request samples
- Payload
{- "correlationKey": "011-235-813",
- "messageName": "payment-received",
- "variables": {
- "paymentId": "pay-123-abc",
- "amount": 1000,
- "currency": "USD",
- "receivedAt": "2025-08-22T16:25:10Z"
}
}Response samples
- 400
- 502
{- "code": "NOT_FOUND",
- "message": "Process instance with key 4503599627370501 not found"
}Start a new process instance starting at chosen elements
Request Body schema: application/jsonrequired
| processDefinitionKey required | integer <int64> |
| variables | object |
| startingElementIds required | Array of strings Allows for a start at chosen element id |
Responses
Request samples
- Payload
{- "processDefinitionKey": 4503599627370498,
- "variables": {
- "customerId": "customer-456",
- "amount": 1000,
- "applicationDate": "2025-08-22"
}, - "startingElementIds": [
- "flowNode-1",
- "flowNode-2"
]
}Response samples
- 201
- 400
- 500
- 502
{- "key": 0,
- "processDefinitionKey": 0,
- "businessKey": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "active",
- "parentProcessInstanceKey": 0,
- "variables": { },
- "activeElementInstances": [
- {
- "elementInstanceKey": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "string",
- "elementId": "string"
}
]
}Modify process instance
Request Body schema: application/jsonrequired
| processInstanceKey required | integer <int64> |
| variables | object Sets process instance variables. |
Array of objects (StartElementInstanceData) Starts execution token. | |
Array of objects (TerminateElementInstanceData) Terminates execution token. |
Responses
Request samples
- Payload
{- "processInstanceKey": 0,
- "variables": { },
- "elementInstancesToStart": [
- {
- "elementId": "flow-node-1"
}
], - "elementInstancesToTerminate": [
- {
- "elementId": "flow-node-1"
}
]
}Response samples
- 201
- 400
- 500
- 502
{- "processInstance": {
- "key": 0,
- "processDefinitionKey": 0,
- "businessKey": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "active",
- "parentProcessInstanceKey": 0,
- "variables": { },
- "activeElementInstances": [
- {
- "elementInstanceKey": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "string",
- "elementId": "string"
}
]
}, - "activeElementInstances": [
- {
- "elementInstanceKey": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "state": "string",
- "elementId": "string"
}
]
}