Skip to content

Search process instances

POST
/v2/process-instances/search
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 } }'
Available inEmbeddedBundledCluster
AuthAuthenticated Bearer token or console session with X-CSRF-Token · requires history:read

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.

x-tenant-id
string
>= 1 characters

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.

Media typeapplication/json
object
filter
object
processDefinitionId
Any of:
string
processDefinitionVersion
Any of:
string
processDefinitionKey
Any of:
string
processInstanceKey
Any of:
string
state
Any of:
string
hasIncident

Whether the instance has an open incident.

boolean
startDate
Any of:
string
endDate
Any of:
string
tenantId
Any of:
string
variables
Array<object>
>= 1 items <= 1 items
object
name
required
string
value
required

The value as JSON text (for example "\"A-1042\""), or as a plain JSON value.

tags

The instance carries every one of these tags.

Array<string>
<= 10 items
excludedTags

A TinyConductor extension. The instance carries none of these tags (["tc-test"] leaves out the console’s test runs).

Array<string>
<= 10 items
sort

Sorted by these properties in turn; a missing value sorts last.

Array<object>
object
field
required
string
Allowed values: processInstanceKey processDefinitionId processDefinitionName processDefinitionVersion processDefinitionVersionTag processDefinitionKey parentProcessInstanceKey parentElementInstanceKey startDate endDate suspendedDate state hasIncident tenantId businessId
order
string
default: ASC
Allowed values: ASC DESC
page
object
limit
integer
default: 100 >= 1 <= 500
from
integer
after

The endCursor of the previous page.

string
before

Not supported. Any value is rejected with 400.

string
limit
<= 500
Example
{
"filter": {
"processDefinitionId": "order-fulfilment",
"state": "ACTIVE"
},
"page": {
"limit": 25
}
}

One page of process instances.

Media typeapplication/json
object
items
required
Array<object>
object
processDefinitionId
required
string
processDefinitionName
required

Part of the wire shape. This release always sends null.

null
processDefinitionVersion
required
integer format: int32
processDefinitionVersionTag
required

Part of the wire shape. This release always sends null.

null
startDate
required

An RFC 3339 timestamp.

string format: date-time
endDate
required
Any of:

An RFC 3339 timestamp.

string format: date-time
state
required

An instance with an open incident is ACTIVE with hasIncident set.

string
Allowed values: ACTIVE COMPLETED TERMINATED
suspendedDate
required

Part of the wire shape. This release always sends null.

null
hasIncident
required
boolean
tenantId
required
string
processInstanceKey
required

Positive signed 64-bit entity key, written as a decimal string.

string
/^[1-9][0-9]*$/
processDefinitionKey
required

Positive signed 64-bit entity key, written as a decimal string.

string
/^[1-9][0-9]*$/
parentProcessInstanceKey
required

Part of the wire shape. This release always sends null.

null
parentElementInstanceKey
required

Part of the wire shape. This release always sends null.

null
rootProcessInstanceKey
required

Part of the wire shape. This release always sends null.

null
tags
required

The tags the process instance was created with.

Array<string>
<= 10 items
businessId
required

Part of the wire shape. This release always sends null.

null
page
required

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
totalItems
required
integer format: int64
hasMoreTotalItems
required
boolean
startCursor
required

Opaque, base64. Set on every page with items; null only on an empty page.

string | null format: base64
endCursor
required

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.

string | null format: base64
Example
{
"items": [
{
"state": "ACTIVE",
"processInstanceKey": "2251799813685249",
"processDefinitionKey": "2251799813685249"
}
]
}

The request is malformed, or it uses a property or filter this release does not support.

Media typeapplication/problem+json

An RFC 9457 problem document. type is a stable TinyConductor URN.

object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
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.

Media typeapplication/problem+json

An RFC 9457 problem document. type is a stable TinyConductor URN.

object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "A valid bearer credential is required",
"instance": "/v2/process-instances/search"
}
WWW-Authenticate
string
Allowed value: Bearer

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.

Media typeapplication/problem+json

An RFC 9457 problem document. type is a stable TinyConductor URN.

object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
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.

Media typeapplication/problem+json

An RFC 9457 problem document. type is a stable TinyConductor URN.

object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
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.

Media typeapplication/problem+json

An RFC 9457 problem document. type is a stable TinyConductor URN.

object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
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.

Media typeapplication/problem+json

An RFC 9457 problem document. type is a stable TinyConductor URN.

object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
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.

Media typeapplication/problem+json

An RFC 9457 problem document. type is a stable TinyConductor URN.

object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The required engine service is not ready",
"instance": "/v2/process-instances/search"
}