Admin API - Query Users

Routes#

MethodURINameSummary
GET/v1.0/admin/usersGet list of all users
GET/v1.0/admin/users/countGet count of all users
GET/v1.0/admin/users/{user_id}Get single user identity
POST/v1.0/admin/usersCreate a user
PUT/v1.0/admin/users/{user_id}Update User details
GET/v1.0/admin/users?email={user_email}Get single user by email
GET/v1.0/admin/users?firstName={first_name}Get All users that match by first name
GET/v1.0/admin/users?lastName={last_name}Get All users that match by last name

Responses#

CodeStatusDescriptionHas headersSchema
200OKSuccessful company retrievalschema
400Bad RequestBad request sent to serverschema
401UnauthorizedYou are unauthorizedschema
403ForbiddenYou are forbidden to perform this actionschema

Examples#

Get all Users#

Example call (don't forget to swap in actual values for bold items):

curl --request GET --url https://api.iotinabox.com/v1.0/admin/users \
--header 'authorization: Bearer MyAuthTokenHere' \
--header 'content-type: application/json'

Example result (abbreviated to show 2 users):

{
"count": 2,
"rows": [
{
"access": {
"manageGroupMembership": true,
"mapRoles": true,
"impersonate": false,
"view": true,
"manage": true
},
"id": "99e86f3f-87f4-4d7e-9e87-529e16f27438",
"emailVerified": false,
"totp": false,
"username": "robcan...@yopmail.com",
"lastName": "Canada4",
"disableableCredentialTypes": [
"password"
],
"email": "robcan...@yopmail.com",
"firstName": "Rob",
"createdTimestamp": 1557270232546,
"notBefore": 0,
"attributes": {
"invite_code": [
"null"
],
"invite_timestamp": [
"1557270232528"
],
"invite_status": [
"CREATED"
],
"accepted_timestamp": [
"1557270232528"
],
"is_invited": [
"false"
],
"phone_number": [
"111"
]
},
"enabled": true,
"requiredActions": []
},
{
"access": {
"manageGroupMembership": true,
"mapRoles": true,
"impersonate": false,
"view": true,
"manage": true
},
"id": "99e86f3f-87f4-4d7e-9e87-529e16f27438",
"emailVerified": false,
"totp": false,
"username": "robcan...@yopmail.com",
"lastName": "Canada4",
"disableableCredentialTypes": [
"password"
],
"email": "robcan...@yopmail.com",
"firstName": "Rob",
"createdTimestamp": 1557270232546,
"notBefore": 0,
"attributes": {
"invite_code": [
"null"
],
"invite_timestamp": [
"1557270232528"
],
"invite_status": [
"CREATED"
],
"accepted_timestamp": [
"1557270232528"
],
"is_invited": [
"false"
],
"phone_number": [
"111"
]
},
"enabled": true,
"requiredActions": []
}
]
}

Get a single user#

curl --request GET \
--url https://api.iotinabox.com/v1.0/admin/users/b19c2c9d-0000-0000-0000-61113c157c54 \
--header 'Authorization: Bearer Token'

Response

{
"access": {
"manageGroupMembership": true,
"mapRoles": true,
"impersonate": false,
"view": true,
"manage": true
},
"id": "99e86f3f-87f4-4d7e-9e87-529e16f27438",
"emailVerified": false,
"totp": false,
"username": "robcan...@yopmail.com",
"lastName": "Canada4",
"disableableCredentialTypes": [
"password"
],
"email": "robcan...@yopmail.com",
"firstName": "Rob",
"createdTimestamp": 1557270232546,
"notBefore": 0,
"attributes": {
"invite_code": [
"null"
],
"invite_timestamp": [
"1557270232528"
],
"invite_status": [
"CREATED"
],
"accepted_timestamp": [
"1557270232528"
],
"is_invited": [
"false"
],
"phone_number": [
"111"
]
},
"enabled": true,
"requiredActions": []
}

Get Owner/Admin for Location#

Example of how to find the Owner/Admin contact for a Location. This may be useful for those who are putting together a billing system and need to know the Owner contact for a location so that you can match an account with its owner.

Currently looking up this information requires you to first obtain the user_id for the Location in question. You can then use a call to obtain the information. Start by making a call to obtain Companies and then find the corresponding user_id for that company.

{
"id": 1265,
"name": "SecondCo",
"industry": "[\"Food & Beverage\"]",
"address": "101 N Citrus Ave",
...
"user_id": "9c60c56b-d468-4f75-ac76-7670bf425375",
"application_id": "neosmart",
...
}

Then make a call to Users, but look up a specific user id.

curl --request GET --url https://auth.mydevices.com/auth/admin/realms/MyRealm/users/9c60c56b-d468-4f75-ac76-7670bf425375 \
--header 'authorization: Bearer MyAuthTokenHere' \
--header 'content-type: application/json'

Example Response:

{
"id": "9c60c56b-d468-4f75-ac76-7670bf425375",
"createdTimestamp": 1560290037034,
"username": "jdoe-pp061119b@yopmail.com",
"enabled": true,
"totp": false,
"emailVerified": false,
"firstName": "John",
"lastName": "Doe",
"email": "jdoe-pp061119b@yopmail.com",
"attributes": {
"accepted_timestamp": [
"1560290037021"
],
"phoneNumber": [
"7205550100"
],
"is_invited": [
"false"
],
"invite_timestamp": [
"1560290037021"
],
"phone_number": [
"7205550100"
],
"invite_status": [
"CREATED"
]
...
}
}

Create a user#

curl --request POST \
--url https://api.iotinabox.com/v1.0/admin/users?notify=true&application_id=your_application_id \
--header 'Authorization: Bearer Token'
--data \
'{
"email": "testiotina0032@mailinator.com",
"password": "testiotina0032", // optional
"first_name": "Test", // optional
"last_name": "Iotina", // optional
"locale": "en-us", // optional
"phone_number": "12345678910" // optional
}'
{
"id": "1880d6e5-a832-474b-b974-9c3206eaff86",
"federated_user_id": "ec68eec3-98c9-4a5f-ab43-4643b3ff9143",
"tina_user_id": "1880d6e5-a832-474b-b974-9c3206eaff86",
"enabled": true,
"email": "testiotina0032@mailinator.com",
"username": "testiotina0032@mailinator.com",
"locale": "en-us",
"phone_number": "12345678910",
"is_invited": "false",
"invite_status": "CREATED",
"accepted_timestamp": "1643404400143",
"invite_timestamp": "1643404400143",
"attributes": {
"locale": [
"en-us"
],
"phoneNumber": [
"12345678910"
],
"is_invited": [
"false"
],
"invite_status": [
"CREATED"
],
"accepted_timestamp": [
"1643404400143"
],
"invite_timestamp": [
"1643404400143"
]
}
}

Update user information#

curl --request PUT \
--url https://api.iotinabox.com/v1.0/admin/users/b19c2c9d-0000-0000-0000-61113c157c54 \
--header 'Authorization: Bearer Token'
--data 'UserModelJson'
{
"access": {
"manageGroupMembership": true,
"mapRoles": true,
"impersonate": false,
"view": true,
"manage": true
},
"emailVerified": false,
"totp": false,
"username": "robcan...@yopmail.com",
"lastName": "Canada4",
"disableableCredentialTypes": [
"password"
],
"email": "robcan...@yopmail.com",
"firstName": "Rob",
"createdTimestamp": 1557270232546,
"notBefore": 0,
"attributes": {
"invite_code": [
"null"
],
"invite_timestamp": [
"1557270232528"
],
"invite_status": [
"CREATED"
],
"accepted_timestamp": [
"1557270232528"
],
"is_invited": [
"false"
],
"phone_number": [
"111"
]
},
"enabled": true,
"requiredActions": []
}

Query for user by email#

curl --request GET \
--url https://api.iotinabox.com/v1.0/admin/users?email={user_email} \
--header 'Authorization: Bearer Token'
{
"count": 1,
"rows": [
{
"id": "04e5fafc-c2a7-425b-8378-7c3f7baf6726",
"createdTimestamp": 1601575453318,
"username": "joe@yopmail.com",
"enabled": true,
"totp": false,
"emailVerified": false,
"firstName": "Joe",
"lastName": "Doe",
"email": "joe@yopmail.com",
"attributes": {
"adminHasOrgRole": [
"false"
],
"adminHasRole": [
"false"
],
"adminHasAppRole": [
"false"
]
},
"disableableCredentialTypes": [],
"requiredActions": [
"record-user-stats-action"
],
"notBefore": 0,
"access": {
"manageGroupMembership": true,
"view": true,
"mapRoles": true,
"impersonate": true,
"manage": true
},
"application_id": "iotinabox",
"federated_user_id": "04e5fafc-c2a7-425b-8378-7c3f7baf6726",
"tina_user_id": null
}
]
}

Query for user by first name#

curl --request GET \
--url https://api.iotinabox.com/v1.0/admin/users?firstName={first_name} \
--header 'Authorization: Bearer Token'
{
"count": 4,
"rows": [
{
"id": "3e8811bf-c0b6-4b26-82db-5f789a39c40f",
"createdTimestamp": 1572518751722,
"username": "guardian@yopmail.com",
"enabled": true,
"totp": false,
"emailVerified": false,
"firstName": "Larry",
"lastName": "Beger",
"email": "guardian@yopmail.com",
"attributes": {
"login_count": [
"1"
],
"sign_up_source": [
"iot-console"
],
"last_login": [
"1572894057437"
],
"first_login": [
"1572894057437"
]
},
"disableableCredentialTypes": [],
"requiredActions": [],
"notBefore": 0,
"access": {
"manageGroupMembership": true,
"view": true,
"mapRoles": true,
"impersonate": true,
"manage": true
},
"application_id": "iotinabox",
"federated_user_id": "3e8811bf-c0b6-4b26-82db-5f789a39c40f",
"tina_user_id": null
},
{
"id": "b1199ec5-4e0b-4c55-b656-c5d60363839d",
"createdTimestamp": 1580345304414,
"username": "sensorworks.mydevices.com@yopmail.com",
"enabled": true,
"totp": false,
"emailVerified": false,
"firstName": "Larry",
"lastName": "Liang",
"email": "sensorworks.mydevices.com@yopmail.com",
"disableableCredentialTypes": [],
"requiredActions": [
"record-user-stats-action"
],
"notBefore": 0,
"access": {
"manageGroupMembership": true,
"view": true,
"mapRoles": true,
"impersonate": true,
"manage": true
},
"application_id": "iotinabox",
"attributes": {},
"federated_user_id": "b1199ec5-4e0b-4c55-b656-c5d60363839d",
"tina_user_id": null
},
{
"id": "e2e1aa70-ae90-44bf-900e-2d044ac33177",
"createdTimestamp": 1580345386600,
"username": "sensorworks@yopmail.com",
"enabled": true,
"totp": false,
"emailVerified": false,
"firstName": "Larry",
"lastName": "Liang",
"email": "sensorworks@yopmail.com",
"disableableCredentialTypes": [],
"requiredActions": [
"record-user-stats-action"
],
"notBefore": 0,
"access": {
"manageGroupMembership": true,
"view": true,
"mapRoles": true,
"impersonate": true,
"manage": true
},
"application_id": "iotinabox",
"attributes": {},
"federated_user_id": "e2e1aa70-ae90-44bf-900e-2d044ac33177",
"tina_user_id": null
}
]
}

Query for user by last name#

curl --request GET \
--url https://api.iotinabox.com/v1.0/admin/users?firstName={last_name} \
--header 'Authorization: Bearer Token'
{
"count": 3,
"rows": [
{
"id": "ba158f55-8c63-444c-ac4b-129ad6708819",
"createdTimestamp": 1558714636482,
"username": "rssi052419stag@yopmail.com",
"enabled": true,
"totp": false,
"emailVerified": false,
"firstName": "Mike",
"lastName": "Richards",
"email": "rssi052419stag@yopmail.com",
"attributes": {
"requiredActions": [
"UPDATE_PASSWORD",
"UPDATE_PROFILE"
],
"invite_status": [
"PENDING"
],
"invite_code": [
"KAX73JHU"
],
"is_invited": [
"true"
],
"invite_timestamp": [
"1558714636464"
]
},
"disableableCredentialTypes": [],
"requiredActions": [
"record-user-stats-action"
],
"notBefore": 0,
"access": {
"manageGroupMembership": true,
"view": true,
"mapRoles": true,
"impersonate": true,
"manage": true
},
"application_id": "iotinabox",
"federated_user_id": "ba158f55-8c63-444c-ac4b-129ad6708819",
"tina_user_id": "ba158f55-8c63-444c-ac4b-129ad6708819"
},
{
"id": "4b2d5eb9-e92a-430a-8e46-dcbdb1e0f167",
"createdTimestamp": 1545180144313,
"username": "rsss1218c@yopmail.com",
"enabled": true,
"totp": false,
"emailVerified": false,
"firstName": "Mike",
"lastName": "Richards",
"email": "rsss1218c@yopmail.com",
"attributes": {
"requiredActions": [
"UPDATE_PASSWORD",
"UPDATE_PROFILE"
],
"invite_code": [
"0HNAVLXY"
],
"invite_status": [
"PENDING"
],
"is_invited": [
"true"
],
"invite_timestamp": [
"1545180144287"
]
},
"disableableCredentialTypes": [],
"requiredActions": [
"record-user-stats-action"
],
"notBefore": 0,
"access": {
"manageGroupMembership": true,
"view": true,
"mapRoles": true,
"impersonate": true,
"manage": true
},
"application_id": "iotinabox",
"federated_user_id": "4b2d5eb9-e92a-430a-8e46-dcbdb1e0f167",
"tina_user_id": "4b2d5eb9-e92a-430a-8e46-dcbdb1e0f167"
},
{
"id": "21296cae-e462-46ea-9969-a82afeedd727",
"createdTimestamp": 1537309553453,
"username": "rst0918e@yopmail.com",
"enabled": true,
"totp": false,
"emailVerified": false,
"firstName": "Mike",
"lastName": "Richards",
"email": "rst0918e@yopmail.com",
"attributes": {
"accepted_timestamp": [
"1537309553442"
],
"login_count": [
"2"
],
"phoneNumber": [
"6505211135"
],
"sign_up_source": [
"iotinabox"
],
"is_invited": [
"false"
],
"last_login": [
"1537402598708"
],
"invite_timestamp": [
"1537309553442"
],
"phone_number": [
"6505211135"
],
"invite_code": [
"null"
],
"invite_status": [
"CREATED"
],
"first_login": [
"1537395392918"
]
},
"disableableCredentialTypes": [],
"requiredActions": [],
"notBefore": 0,
"access": {
"manageGroupMembership": true,
"view": true,
"mapRoles": true,
"impersonate": true,
"manage": true
},
"application_id": "iotinabox",
"federated_user_id": "21296cae-e462-46ea-9969-a82afeedd727",
"tina_user_id": null
}
]
}