Filtering Lists
To filter a list endpoint, append the “filter” query string parameter and specify the property you want to filter on. Multiple filters can be separated using a semicolon (ProcessPlan’s standard list delimiter.)
Here is an example.
/api/v4/process_instance_header/list/pending?take=10&skip=0&filter=th_name[ct]Test%20Process;ih_instance_description[ct]Test%20DescriptionThe available filter operators include:
[ct] = contains (use OR in capital letters to add an OR condition to the [ct] filter operator).
[nct] = does not contain
[eq] = equal to
[neq] = not equal to
[sw] = starts with
[empty] = the property is empty
[hasvalue] = the property has a value
[range] = the property is within a range (dates and numbers - see below)
Filtering dates and date ranges
Section titled “Filtering dates and date ranges”To filter a date property, use the [range] operator. The filter value has the form from..until - two date expressions separated by two periods. Either side may be left empty for an open-ended range.
/api/v4/process_instance_header/list/pending?take=10&skip=0&filter=ih_created_date_local[range]now-7d..nowEach side of the range is either:
-
An absolute date:
YYYY-MM-DD, optionally with a time (YYYY-MM-DDTHH:mmorYYYY-MM-DDTHH:mm:ss) -
A relative expression: start with
now, then optionally add or subtract amounts of time (+/-) and/or snap to the start of a time unit (/)
The available time units are:
| Unit | Meaning |
|---|---|
s | seconds |
m | minutes |
h | hours |
d | days |
w | weeks |
M | months |
Q | quarters |
y | years |
Casing matters: lowercase m is minutes, capital M is months.
Relative expressions are evaluated left to right. For example, now/M-1M means “snap to the start of the current month, then go back one month” - in other words, the start of last month.
Common examples:
| Filter value | Matches dates in… |
|---|---|
now-7d..now | the last 7 days |
now/d..now/d+1d | today |
now/d-1d..now/d | yesterday |
now/w..now/w+1w | this week |
now/w-1w..now/w | last week |
now/M..now/M+1M | this month |
now/M-1M..now/M | last month |
now/Q-1Q..now/Q | last quarter |
now/y..now/y+1y | this year |
2026-01-01..2026-02-01 | all of January 2026 |
2026-01-01.. | January 1, 2026 or later |
..now | any date up to now |
Date ranges include the start and exclude the end (from ≤ date < until), so consecutive ranges like “last month” and “this month” line up exactly with no gap or overlap.
Filtering number ranges
Section titled “Filtering number ranges”The [range] operator also works for numeric properties. Numeric ranges include both ends (from ≤ value ≤ to), and either side may be left empty for an open-ended range.
/api/v4/process_instance_header/list/pending?take=10&skip=0&filter=ih_progress_percentage[range]10..50The following comparison operators can also be used for numeric properties.
/api/v4/process_instance_header/list/pending?take=10&skip=0&filter=ih_progress_percentage[gtn]0[gte] = greater than or equal to
[gtn] = greater than or null
[gt] = greater than
[lte] = less than or equal to
[ltn] = less than or null
[lt] = less than