Skip to content
  • SDKs and APIs
  • Kinde Management API

Advanced User Search with the Kinde Management API

Search and filter users via the Kinde Management API. Use this to find users with specific properties — for example, users in a particular city or industry.

  • A Kinde M2M application with Management API access, and app keys — see the quickstart guide
  • Scope: read:users
  • A way to call the API (cURL, Postman, or the JS SDK)

Search users by name or email

Link to this section
GET /api/v1/search/users?query={searchterm}

The query parameter searches against a user’s name and email address. To match all users, use a wildcard (*).

GET /api/v1/search/users?query=*

Example response:

{
"code": "",
"message": "",
"results": [
{
"id": "kp_0ba7c433e5d648cf992621ce99d42817",
"provided_id": "U123456",
"email": "user@domain.com",
"username": "john.snow",
"last_name": "Snow",
"first_name": "John",
"is_suspended": true,
"picture": "https://example.com/john_snow.jpg",
"total_sign_ins": 1,
"failed_sign_ins": 0,
"last_signed_in": "2025-02-12T18:02:23.614638+00:00",
"created_on": "2025-02-12T18:02:23.614638+00:00",
"organizations": [""],
"identities": [
{
"type": "",
"identity": ""
}
],
"properties": {
"{{key}}": ""
},
"api_scopes": [
{
"org_code": "",
"scope": "",
"api_id": ""
}
]
}
]
}

Filter users by property

Link to this section

Append properties[key]=value parameters to filter by user properties. You can combine query with property filters.

GET /api/v1/search/users?query={searchterm}&properties[{key}]={value}

For example, find all users from Sydney:

GET /api/v1/search/users?query=*&properties[kp_usr_city]=Sydney

Filter with AND (multiple conditions)

Link to this section

Use multiple properties[key]=value parameters joined with & to require all conditions to match.

GET /api/v1/search/users?query=*&properties[kp_usr_last_name]=Swan&properties[kp_usr_industry]=Construction

Returns users whose last name is Swan and whose industry is Construction.

Filter with OR (comma-separated values)

Link to this section

Use a comma-separated list of values within a single property filter to match any of them.

GET /api/v1/search/users?query=*&properties[kp_usr_last_name]=Hornet,Swan

Returns users whose last name is Hornet or Swan.

Combined filters

Link to this section

Mix AND and OR conditions, and use expand to include nested data such as identities and properties in the response.

GET /api/v1/search/users?query=*&properties[kp_usr_last_name]=Hornet,Swan&properties[kp_usr_industry]=Construction&expand=identities,properties

Returns users whose last name is Hornet or Swan and whose industry is Construction, with their identities and properties expanded.

Use query=* to match all users, then narrow results with property filters.

GET /api/v1/search/users?query=*&properties[kp_usr_middle_name]=Hornet,Swan&properties[kp_usr_industry]=Construction&expand=identities,properties

Search users by last activity date

Link to this section
GET /api/v1/users?active_since={ISO8601datetime}

Use the active_since parameter to return users whose last login is on or after the specified date. This is useful for identifying inactive accounts or targeting recently active users.

GET /api/v1/users?active_since=2024-01-01T00:00:00Z

The active_since value must be an ISO 8601 formatted date/time string.

Example response:

{
"code": "",
"message": "",
"users": [
{
"id": "",
"provided_id": "",
"email": "",
"phone": "",
"username": "",
"last_name": "",
"first_name": "",
"is_suspended": true,
"picture": "",
"total_sign_ins": 1,
"failed_sign_ins": 1,
"last_signed_in": "",
"created_on": "",
"last_organization_sign_ins": [
{
"org_code": "org_d2d85014942",
"last_signed_in": "2026-01-28T14:26:02.448856+00:00"
}
],
"organizations": [""],
"identities": [
{
"type": "",
"identity": ""
}
],
"billing": {
"customer_id": "customer_1245adbc6789"
}
}
],
"next_token": ""
}