Get changes by filter
### Filtering
The request body is an **array of filter objects**. Send an empty array (`[]`) to retrieve all records.
Each filter object has the following fields:
| Field | Type | Description |
|---|---|---|
| `attribute` | string | The field to filter on (see Supported attributes below) |
| `operator` | string | Comparison operator (see Available operators below) |
| `values` | array | One or more `{ "value": <scalar> }` objects |
**Supported attributes**
| Attribute | Typical operator | Description |
|---|---|---|
| `status` | `IS_ANY_OF` | Change status (e.g. `DRAFT`, `IN_REVIEW`, `APPROVED`, `IMPLEMENTED`). |
| `type` | `IS_ANY_OF` | Change type. |
| `assignee_id` | `IS_ANY_OF` | Assigned agent user ID. |
| `created_at` | `IS_BETWEEN` | Creation timestamp (ISO 8601). |
**Available operators**
| Operator | Meaning |
|---|---|
| `EQUALS` | Exact match |
| `NOT_EQUALS` | Exclude exact match |
| `IN` / `IS_ANY_OF` | Match any value in the list |
| `IS_NOT_ANY_OF` | Exclude all listed values |
| `IS_BETWEEN` | Inclusive range — pass exactly two values: `[start, end]` |
| `IS_ON_OR_BEFORE` / `IS_ON_OR_AFTER` | Date/time boundary comparisons |
| `CONTAINS` / `TEXT_CONTAINS` | Substring or set membership |
| `IS_NULL` / `IS_NOT_NULL` | Null checks — `values` array can be empty |
| `STARTS_WITH` / `ENDS_WITH` | String prefix/suffix match |
**Example**
```json
[
{
"attribute": "status",
"operator": "IS_ANY_OF",
"values": [
{
"value": "DRAFT"
},
{
"value": "IN_REVIEW"
}
]
},
{
"attribute": "created_at",
"operator": "IS_BETWEEN",
"values": [
{
"value": "2024-01-01T00:00:00Z"
},
{
"value": "2024-12-31T23:59:59Z"
}
]
}
]
```
Authentication
X-Api-Keystring
API Key authentication via header
Path parameters
workspace_id
Workspace ID (numeric). Find yours under Settings → Workspace.
Headers
X-Workspace-Id
Query parameters
filter_name
sort_order
Allowed values:
page
per_page
paginate
Request
This endpoint expects a list of objects.
attribute
operator
values
Response
Successful response

