Fetch all groups associated to a user
You can use the Kisi API to fetch all groups associated with a user, get more information about a group, or see a list of doors belonging to a specific group.
To achieve these, first you must identify the user_id
. Once you have this, you need to fetch all group level role assignments associated with this user id. Follow the steps below.
Identify the user id
Send a GET
request to the Fetch users endpoint, while using the query
parameter to filter by email. See the example below.
curl --request GET \
--url 'https://api.kisi.io/users?query=user@example.com' \
--header 'Authorization: KISI-LOGIN <API_KEY>' \
--header 'Content-Type: application/json' \
Response
If your request was successful, you'll receive a 200 OK
response containing the user object and, within it, the related user id.
{
"id": 0,
"email": "user@example.com"
"name": "string"
}
Copy the id
value from within the user object, since you'll need this in the next step.
Fetch all group level role assignments
Next, send a GET
request to the Fetch role assignments endpoint, and filter by the user_id
you obtained in the previous step. See the example below.
Example
curl --request GET \
--url 'https://api.kisi.io/role_assignments?user_id=0' \
--header 'Authorization: KISI-LOGIN <API_KEY>' \
--header 'Content-Type: application/json' \
Response
If your request was successful, you'll receive a 200 OK
response containing all role assignments associated to this user_id
, including those on organization and place levels. Go through the list and pick all group_id
attributes.
{
"group_id": 0,
"group": {
"id": 0,
"name": "Example group name"
}
}
Get more information about a group
You can use the group_id
that you obtained in the previous step to get more information about the group, like its name and permissions.
Send a GET
request to the Fetch groups endpoint, while using the ids
parameter to filter by group_id
. See the example below.
Example
curl --request GET \
--url 'https://api.kisi.io/groups?ids=0' \
--header 'Authorization: KISI-LOGIN <API_KEY>' \
--header 'Content-Type: application/json' \
Response
If your request was successful, you'll receive a 200 OK
response containing all the information about the group associated with this group_id
.
[
{
"id": 0,
"name": "string",
"description": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"geofence_restriction_enabled": true,
"geofence_restriction_radius": 0,
"primary_device_restriction_enabled": true,
"reader_restriction_enabled": true,
"time_restriction_enabled": true,
"login_enabled": true,
"members_count": 0,
"locks_count": 0,
"elevator_stops_count": 0,
"place_id": 0,
"place": {
"id": 0,
"name": "string"
},
"time_restriction_time_zone": "string",
"time_restriction_time_slots": []
}
]
Get a list of doors belonging to a specific group
Once you know the group_id
, you can also use this to get a list of doors belonging to the group associated with this value.
Send GET
request to the Fetch group locks endpoint, while filtering by group_id
, as shown below:
Example
curl --request GET \
--url 'https://api.kisi.io/group_locks?group_id=0' \
--header 'Authorization: KISI-LOGIN <API_KEY>' \
--header 'Content-Type: application/json' \
Response
If your request was successful, you'll receive a 200 OK
response containing all the locks (i.e. doors) associated with this group_id
.
[
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"group_id": 0,
"group": {
"id": 0,
"name": "string"
},
"lock_id": 0,
"lock": {
"id": 0,
"name": "string",
"description": "string"
},
"place_id": 0,
"place": {
"id": 0,
"name": "string"
}
}
]