Get Instances (POST)

Query for process instances that fulfill given parameters through a JSON object. This method is slightly more powerful than the GET query because it allows filtering by multiple process variables of types String, Number or Boolean.

Method

POST /process-instance

Parameters

Query Parameters

Name Description
firstResult Pagination of results. Specifies the index of the first result to return.
maxResults Pagination of results. Specifies the maximum number of results to return. Will return less results, if there are no more results left.

Request Body

A JSON object with the following properties:

Name Description
processInstanceIds Filter by a list of process instance ids. Must be a JSON array of Strings.
businessKey Filter by process instance business key.
caseInstanceId Filter by case instance id.
processDefinitionId Filter by the process definition the instances run on.
processDefinitionKey Filter by the key of the process definition the instances run on.
deploymentId Filter by the deployment the id belongs to.
superProcessInstance Restrict query to all process instances that are sub process instances of the given process instance. Takes a process instance id.
subProcessInstance Restrict query to all process instances that have the given process instance as a sub process instance. Takes a process instance id.
superCaseInstance Restrict query to all process instances that are sub process instances of the given case instance. Takes a case instance id.
subCaseInstance Restrict query to all process instances that have the given case instance as a sub case instance. Takes a case instance id.
active Only include active process instances. Value may only be true, as false is the default behavior.
suspended Only include suspended process instances. Value may only be true, as false is the default behavior.
incidentId Filter by the incident id.
incidentType Filter by the incident type.
incidentMessage Filter by the incident message. Exact match.
incidentMessageLike Filter by the incident message that the parameter is a substring of.
variables A JSON array to only include process instances that have variables with certain values.
The array consists of objects with the three properties name, operator and value. name (String) is the variable name, operator (String) is the comparison operator to be used and value the variable value.
value may be String, Number or Boolean.
Valid operator values are: eq - equal to; neq - not equal to; gt - greater than; gteq - greater than or equal to; lt - lower than; lteq - lower than or equal to; like.
sorting A JSON array of criteria to sort the result by. Each element of the array is a JSON object that specifies one ordering. The position in the array identifies the rank of an ordering, i.e. whether it is primary, secondary, etc. The ordering objects have the following properties:
sortBy Mandatory. Sort the results lexicographically by a given criterion. Valid values are instanceId, definitionKey and definitionId.
sortOrder Mandatory. Sort the results in a given order. Values may be asc for ascending order or desc for descending order.

Result

A JSON array of process instance objects. Each process instance object has the following properties:

Name Value Description
id String The id of the process instance.
definitionId String The id of the process definition that this process instance belongs to.
businessKey String The business key of the process instance.
caseInstanceId String The id of the case instance associated with the process instance.
ended Boolean A flag indicating whether the process instance has ended or not. Deprecated: will always be false!
suspended Boolean A flag indicating whether the process instance is suspended or not.

Response Codes

Code Media type Description
200 application/json Request successful.
400 application/json Returned if some of the query parameters are invalid, for example if a sortOrder parameter is supplied, but no sortBy, or if an invalid operator for variable comparison is used. See the Introduction for the error response format.

Example

Request

POST /process-instance

Request Body:

{"variables":
    [{"name": "myVariable",
     "operator": "eq",
     "value": "camunda"
    },
    {"name": "mySecondVariable",
     "operator": "neq",
     "value": 124}],
"processDefinitionId":"aProcessDefinitionId",
"sorting":
    [{"sortBy": "definitionKey",
    "sortOrder": "asc"
    },
    {"sortBy": "instanceId",
    "sortOrder": "desc"
    }}]
}

Response

[{"links":[],
 "id":"anId",
 "definitionId":"aProcessDefinitionId",
 "businessKey":"aKey",
 "caseInstanceId":"aCaseInstanceId",
 "ended":false,
 "suspended":false}]

On this Page: