Searching
Search Routes
- Use
POSTroutes ending with/search(other methods likeGET,PUT,DELETEare not supported). - Not all fields are searchable. Non-searchable fields are listed under each route.
- Multi-select Extended Attribute fields are not supported for search.
Search Operators
Comparison Operators
Operate on a single field:
equalsgreaterthan/lessthangreaterthanorequalto/lessthanorequaltocontains(case-insensitive, no wildcards/regex)isNull/isNotNull(starting release 94)
Boolean Operators
Can be nested for precedence:
andornot
Collections & Integer Arrays
- Search against fields containing multiple values, denoted by
[]. - Example collections:
rights[],users[],roles[].
Examples: Search with Operators
Comparison Examples
- Find users by login ID:
{
"equals": {
"fieldName": "loginId",
"fieldValue": "jwallace"
}
}
- Find attachments modified after 2016-10-09:
{
"greaterthan": {
"fieldName": "modifiedDate",
"fieldValue": "2016-10-09T20:16:24.723Z"
}
}
- Find activities containing 'RD' in the name:
{
"contains": {
"fieldName": "name",
"fieldValue": "RD"
}
}
Boolean Operators
- Modified date between 2016-09-09 and 2016-11-09:
{
"and": [
{
"greaterthanorequalto": {
"fieldName": "modifiedDate", "fieldValue": "2016-09-09T20:16:24.723Z"
}
},
{
"lessthanorequalto":
{
"fieldName": "modifiedDate", "fieldValue": "2016-11-09T20:16:24.723Z"
}
}
]
}
- Owner ID = 455 OR name contains 'RD':
{
"or": [
{
"contains":
{
"fieldName": "name",
"fieldValue": "RD"
}
},
{
"equals":
{
"fieldName": "ownerID",
"fieldValue": 455
}
}
]
}
Nested Boolean Example
- Activities where (name contains 'RD' OR ownerID = 455) AND activityID ≥ 4901:
{
"and": [
{
"or": [
{
"contains":
{
"fieldName": "name",
"fieldValue": "RD"
}
},
{
"equals":
{
"fieldName": "ownerID",
"fieldValue": 455
}
}
]
},
{
"greaterthanorequalto":
{
"fieldName": "activityID",
"fieldValue": 4901
}
}
]
}
Searching Collections
- Example Collection:
{
"rights": [
{
"functionID": 1,
"domainID": 1
},
{
"functionID": 5,
"domainID": 1
}
]
}
- Find users with domain rights 18, 24, or 697:
{
"equals": {
"collectionName": "rights",
"fieldName": "functionID",
"fieldValue": "[18, 24, 697]"
}
}
Searching Integer Arrays
-
Example Integer Array:
- Attachments:
projects[] - Users:
groups[]
- Attachments:
-
Find users in groups 105, 108, or 214:
{
"equals": {
"fieldName": "groups",
"fieldValue": "[105, 108, 214]"
}
}
Combining AND with Collections
- Review tasks assigned to a user (UserID = 1) with no votes (VoteResult = 0):
{
"and": [
{ "equals": { "collectionName": "assignees", "fieldName": "userId", "fieldValue": "[1]" } },
{ "equals": { "collectionName": "assignees", "fieldName": "voteResult", "fieldValue": "[0]" } }
]
}
Limitation
This search treats fields independently. For grouped matching (e.g., UserID = 1 AND VoteResult = 0 in the same record), use nested array syntax.
{
"equals": {
"collectionName": "assignees",
"nested": [
{ "fieldName": "userId", "fieldValue": "1" },
{ "fieldName": "voteResult", "fieldValue": "0" }
]
}
}