Users
Search users
Search users using OpenSearch-powered full-text and field-specific search.
This endpoint provides fast, indexed search across user data with support for:
- Full-text search across multiple fields
- Field-specific filtering with various operators
- Sorting and pagination
- Saved search preferences
Note: Only active (non-deleted) users are searchable. Soft-deleted records are automatically excluded from all search results.
Response Formats:
- flat (default): Returns indexed fields only for faster performance
- full: Returns complete user objects with all relationships
post/users/search
Request body
Example request
{
"criteria": {
"id": {
"operator": "EQUALS",
"values": [
"550e8400-e29b-41d4-a716-446655440000"
]
},
"name": {
"operator": "INCLUDES",
"values": [
"search term"
]
},
"email": {
"operator": "INCLUDES",
"values": [
"search term"
]
},
"emailVerified": {
"operator": "TRUE"
},
"phone": {
"operator": "INCLUDES",
"values": [
"search term"
]
},
"status": {
"operator": "ONE_OF",
"values": [
"ACTIVE",
"PENDING"
]
},
"roles": {
"operator": "ONE_OF",
"values": [
"ACTIVE",
"PENDING"
]
},
"visibility": {
"operator": "ONE_OF",
"values": [
"ACTIVE",
"PENDING"
]
},
"teamIds": {
"operator": "EQUALS",
"values": [
"550e8400-e29b-41d4-a716-446655440000"
]
},
"teamNames": {
"operator": "INCLUDES",
"values": [
"search term"
]
},
"customersCount": {
"operator": "BETWEEN",
"min": 10,
"max": 100
},
"quotesCount": {
"operator": "BETWEEN",
"min": 10,
"max": 100
},
"quotesWon": {
"operator": "BETWEEN",
"min": 10,
"max": 100
},
"quoteWinRate": {
"operator": "GREATER_THAN",
"value": 1000.5
},
"ordersCount": {
"operator": "BETWEEN",
"min": 10,
"max": 100
},
"ordersTotalRevenue": {
"operator": "GREATER_THAN",
"value": 1000.5
},
"ordersTotalTransportationCost": {
"operator": "GREATER_THAN",
"value": 1000.5
},
"ordersTotalGrossProfit": {
"operator": "GREATER_THAN",
"value": 1000.5
},
"averageGrossProfitPerOrder": {
"operator": "GREATER_THAN",
"value": 1000.5
},
"carriersCount": {
"operator": "BETWEEN",
"min": 10,
"max": 100
},
"createdAt": {
"operator": "AFTER",
"value": "2025-01-01T00:00:00Z"
},
"lastInvitedAt": {
"operator": "AFTER",
"value": "2025-01-01T00:00:00Z"
}
},
"pagination": {
"pageNumber": 1,
"pageSize": 50
},
"sort": [
{
"field": "createdAt",
"order": "desc"
}
],
"savedSearch": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}Response
Successful search results
Example response
{
"data": [
{
"object": "USER",
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "john.doe@example.com",
"name": "John Doe",
"phone": "+1-555-123-4567",
"phoneExt": "123",
"roles": [
"CUSTOMER_REP",
"ADMIN"
],
"key": "ERP-USER-12345",
"datUsername": "johndoe_dat",
"mcpUsername": "johndoe_mcp",
"avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"teams": [
{
"object": "TEAM",
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Sales Team - West Coast",
"key": "ERP-TEAM-WEST",
"createdAt": "2025-01-15T10:00:00Z",
"updatedAt": "2025-01-15T14:30:00Z"
}
],
"createdAt": "2025-01-15T10:00:00Z",
"updatedAt": "2025-01-15T14:30:00Z"
}
],
"pagination": {
"pageNumber": 1,
"pageSize": 50,
"totalPages": 25
}
}