This web service makes it possible to search for one or more users based on criteria such as display name, email address, role, group, and realm.
Method | Endpoint |
---|---|
POST |
/api/users/search |
It is possible to use pagination with this web service.
Request example
The following lines show an example of a JSON request body:
{
"userTextSearch": "john",
"realm": "internal",
"group": "string",
"role": "KHUB_ADMIN",
"sort": {
"criterion": "LAST_ACTIVITY_DATE",
"order":"DESC"
},
"paging": {
"page": 1,
"perPage": 30
}
}
Field | Type | Required? | Description |
---|---|---|---|
userTextSearch |
String | No | Expects information such as a user's display name, their email address, user* , * , etc. |
realm |
String | No | Expects one of the realms configured for the tenant. |
group |
String | No | Expects one of the user groups configured for the tenant. |
role |
String | No | Expects one of the Fluid Topics user roles. |
sort |
Object | No | Sorts results. Expects the criterion and order parameters. |
criterion |
String | No | Expects one of the following values: NAME , REALM , CREATION_DATE , or LAST_ACTIVITY_DATE . If undefined, the default value is NAME . |
order |
String | No | Expects one of the following values: ASC or DESC . If undefined, the default value is ASC . |
paging |
Object | No | Information about paging. Expects the page and perPage parameters. |
page |
Number | No | Defines the page number. If undefined, the default value is 1 . |
perPage |
Number | No | Defines the number of results to display per page. If undefined, the default value is 20 . |
Defining more than one role, group, or realm at a time in the request body returns an HTTP 400
error.
Return code | Description |
---|---|
200 OK |
The request is valid and data is returned. |
400 BAD REQUEST |
The request is invalid or the requested realm or user role does not exist. |
401 UNAUTHORIZED |
The authorization header was not provided or is invalid. |
403 FORBIDDEN |
The user or API key does not have the ADMIN or USERS_ADMIN role. |
For a comprehensive list of all possible return codes, see Return codes.
Response body
The following lines show an example of a JSON response body:
{
"results": [
{
"userId": "a43eb18a-3f48-4732-9389-61b540ce9d0d",
"displayName": "A User",
"emailAddress": "user@example.com",
"creationDate": "2022-10-26T08:55:19.746+00:00",
"lastActivityDate": "2022-10-26T08:55:19.756+00:00",
"realm": "oidc",
"groups": [
"group-a",
"group-b"
],
"roles": [
"BETA_USER",
"USERS_ADMIN"
],
"locked": false
},
...
],
"paging": {
"currentPage": 1,
"perPage": 30,
"totalCount": 200
}
}
Field | Type | Description |
---|---|---|
results |
Array | A list of results. |
userId |
String | The user's identifier. |
displayName |
String | The user's name as it appears in the portal. |
emailAddress |
String | The user's email address. |
creationDate |
String | The date and time when the user was created. |
lastActivityDate |
String | The date and time of the user's last activity. |
realm |
String | The realm used to authenticate. |
groups |
Array | The groups to which the user belongs. |
roles |
Array | The roles assigned to the user. |
locked |
Boolean | If the user's account is locked, the value of this parameter is true . |
paging |
Object | Information about paging. |
currentPage |
Number | The number of the page of results currently displayed. |
perPage |
Number | The number of results per page. |
totalCount |
Number | The number of matching users when taking all pages into account. |
Technically, it is possible to use the Search for users web service to achieve the same goal as the List all users web service by defining an empty payload. However, the Search for users web service is unique in that it makes it possible to filter directly on a specific user or subset of users without having a user ID on hand.