Search process instances
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://localhost:8080/v2/process-instances/search")) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{ \"filter\": { \"processDefinitionId\": \"order-fulfilment\", \"state\": \"ACTIVE\" }, \"page\": { \"limit\": 25 } }")) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());const url = 'http://localhost:8080/v2/process-instances/search';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"filter":{"processDefinitionId":"order-fulfilment","state":"ACTIVE"},"page":{"limit":25}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:8080/v2/process-instances/search \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "filter": { "processDefinitionId": "order-fulfilment", "state": "ACTIVE" }, "page": { "limit": 25 } }'Lists the process instances of the caller’s tenant from the history
projection. The filters processDefinitionId,
processDefinitionVersion, processDefinitionKey,
processInstanceKey, state, hasIncident, startDate, endDate
and tenantId each take a plain value or an object of operators;
variables takes one exact variable match; tags keeps the
instances that carry every tag listed, and the extension
excludedTags those that carry none of them. An instance with an open
incident is ACTIVE with hasIncident: true. No instance is ever
SUSPENDED, so that state matches nothing. Sort by any 8.9 sort
field; page with page.after (the previous page.endCursor) or
page.from.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters”Tenant selection. A principal bound to one tenant may omit it; if
sent, it must equal that tenant (403 otherwise). A principal that
may act in several tenants must send it on every request:
without it the request is refused with 400, and a tenant it may
not act in is refused with 403.
Request Body
Section titled “Request Body”object
object
Whether the instance has an open incident.
object
The value as JSON text (for example "\"A-1042\""), or as a plain JSON value.
The instance carries every one of these tags.
A TinyConductor extension. The instance carries none of these tags (["tc-test"] leaves out the console’s test runs).
Sorted by these properties in turn; a missing value sorts last.
object
object
The endCursor of the previous page.
Not supported. Any value is rejected with 400.
Example
{ "filter": { "processDefinitionId": "order-fulfilment", "state": "ACTIVE" }, "page": { "limit": 25 }}Responses
Section titled “ Responses ”One page of process instances.
object
object
Part of the wire shape. This release always sends null.
Part of the wire shape. This release always sends null.
An RFC 3339 timestamp.
An instance with an open incident is ACTIVE with hasIncident set.
Part of the wire shape. This release always sends null.
Positive signed 64-bit entity key, written as a decimal string.
Positive signed 64-bit entity key, written as a decimal string.
Part of the wire shape. This release always sends null.
Part of the wire shape. This release always sends null.
Part of the wire shape. This release always sends null.
The tags the process instance was created with.
Part of the wire shape. This release always sends null.
totalItems counts every match of the query across all pages, and hasMoreTotalItems is always false. Every page with items carries both cursors; paging with page.after = endCursor ends with an empty page.
object
Opaque, base64. Set on every page with items; null only on an empty page.
Opaque, base64. Set on every page with items; pass it as page.after for the next page, which is empty once every item was seen. null only on an empty page.
Example
{ "items": [ { "state": "ACTIVE", "processInstanceKey": "2251799813685249", "processDefinitionKey": "2251799813685249" } ]}The request is malformed, or it uses a property or filter this release does not support.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:invalid-argument", "title": "Bad Request", "status": 400, "detail": "entity key must be a positive int64 string", "instance": "/v2/process-instances/0"}No valid credential was presented.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:unauthorized", "title": "Unauthorized", "status": 401, "detail": "A valid bearer credential is required", "instance": "/v2/process-instances/search"}Headers
Section titled “Headers”The caller lacks the required permission, a tenant named in the request is not the caller’s tenant, or a cookie write has no valid CSRF token.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:forbidden", "title": "Forbidden", "status": 403, "detail": "The principal lacks the action this route requires", "instance": "/v2/process-instances/search"}The body exceeds the configured request-size bound.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:payload-too-large", "title": "Payload Too Large", "status": 413, "detail": "The request exceeds the configured size limit", "instance": "/v2/process-instances/search"}An internal failure. The details are never exposed.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:internal", "title": "Internal Server Error", "status": 500, "detail": "The request could not be completed", "instance": "/v2/process-instances/search"}The operation is not offered in the engine’s current deployment mode.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:mode-not-supported", "title": "Mode Not Supported", "status": 501, "detail": "/v2/clock is not supported in bundled mode: the deterministic virtual clock and the storage-free reset exist only for the Embedded engine; Bundled and Cluster run on the system clock over durable history, which cannot be pinned, rewound or discarded", "instance": "/v2/clock", "mode": "bundled"}Backpressure, or a dependency is not ready. Retry with the same idempotency key.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:unavailable", "title": "Service Unavailable", "status": 503, "detail": "The required engine service is not ready", "instance": "/v2/process-instances/search"}