Search for User Profiles

Endpoint URL: {registrationDomain} /entity.find


Searches an entity type for all the users who meet the specified criteria. For example, you might search for all the users who have not logged on since a specified date, or all the users whose accounts were created after a specified date.

When constructing a search query (by using the filter parameter), the following operators are supported, from highest to lowest precedence.

  • is null, is not null (postfix)
  • not, ! (prefix)
  • >, >=, <, <= (infix)
  • =, != (infix)
  • and (infix)
  • or (infix)
Note. Previous releases of this call included the contains operator. This operator has been removed because its behavior was counterintuitive. If you use this operator now, you will get a 485 error.

For the filter parameter, String values specified by operators must be surrounded by single quotes. Integer values work either with or without single quotes. If used with email, only a full email address can be used (for example, ` You cannot filter on a domain (for example,`).

Refer to the Registration Error Codes section for details on error codes.

Important: Querying Large Datasets

When using the entity.find endpoint to search large sets of data (> 100,000), queries should be optimized using natural database sorting by sorting on the id attribute. This has two benefits:

  • Records created between when the time iteration begins and when the time iteration ends are included in the results.
  • Efficient and consistent performance querying and loading for each page of results.

The following tips will help you optimize your queries:

  • Use the attributes parameter to limit the number of attributes returned for each record. This helps to minimize the size of the HTTP payload.
  • Experiment with the max_results parameter to optimize for responses under 10 seconds.
  • Include the timeout parameter (up to 60 seconds) if, and only if, you are unable to keep responses under 10 seconds using the max_results parameter.
  • If you don't care about the order in which your results are returned (for example, if you're returning only one user profile or if the sort order doesn't really matter), it's recommended that you include the sort_on parameter and set the value to an empty array:
    This typically results in improved performance.

See the article Managing User Data for a sample Python script that returns each record created since January 1, 2016.

Note. Having problems finding user profiles that you just created? See this article for more information. 

API Client Permissions

The following table indicates the API clients that can (and the API clients that can't) be used to call this endpoint:



This endpoint supports both Basic authentication (recommended) and janrain-signed authentication.

How to Create an Authentication String

Base URL

The base URL for this endpoint is your Identity Cloud Capture domain; for example:

Your Capture domains (also known as Registration domains) can be found in the Console on the Manage Application page:


This command returns user profile information for all the users in the user entity type, sorting the returned results by the lastUpdated attribute (the last time the user profile was modified). Note that the hyphen in front of lastUpdated means that the returned data will be sorted in descending order (i.e., from the most-recently updated profile to the profile that has gone the longest amount of time without being updated). To sort in ascending order, leave off the hyphen.

curl -X POST -H "Authorization: Basic c2dueXZ1czZwYzRqbTdraHIybmVxNWdzODlnYnIyZXE6d3Q0YzN1bjl3a2tjZnZ5a25xeDQ0eW5jNDc2YWZzNjg=" \
  --data-urlencode type_name=user \
  --data-urlencode sort_on='["-lastUpdated"]' \

Example: Find users with a birthday

This command returns user profile information for all the users who have included their birthday in their user profile (that is, profiles where the birthday attribute is not set to a null value).

curl -X POST \
  -H "Authorization: c2dueXZ1czZwYzRqbTdraHIybmVxNWdzODlnYnIyZXE6d3Q0YzN1bjl3a2tjZnZ5a25xeDQ0eW5jNDc2YWZzNjg=" \
  --data-urlencode type_name=user \
  --data-urlencode filter="birthday is not null" \

Example: Find users who identify as male

This command returns information about all the users who have set their gender attribute to male.

curl -X POST \
  -H "Authorization: Basic c2dueXZ1czZwYzRqbTdraHIybmVxNWdzODlnYnIyZXE6d3Q0YzN1bjl3a2tjZnZ5a25xeDQ0eW5jNDc2YWZzNjg=" \
  --data-urlencode type_name=user \
  --data-urlencode filter="gender='male'" \

Example: Adding more than one condition to a filter

This command returns the display name and email address for all users who have a gender attribute equal to male and were born on December 19, 1989.

curl -X POST \
  -H "Authorization: Basic c2dueXZ1czZwYzRqbTdraHIybmVxNWdzODlnYnIyZXE6d3Q0YzN1bjl3a2tjZnZ5a25xeDQ0eW5jNDc2YWZzNjg=" \
  --data-urlencode type_name=user \
  --data-urlencode filter="gender='male' and birthday='12-19-1989'" \

Example: Retrieve data for specific attributes

This command returns two attributes (displayName and email) for all the users in the user entity type.

curl -X POST \
  -H "Authorization: Basic c2dueXZ1czZwYzRqbTdraHIybmVxNWdzODlnYnIyZXE6d3Q0YzN1bjl3a2tjZnZ5a25xeDQ0eW5jNDc2YWZzNjg=" 
  --data-urlencode type_name=user \
  --data-urlencode attributes='["displayName", "email"]' \

      Running this command in Postman

Example Response

  "result_count": 6,
  "stat": "ok",
  "results": [
      "displayName": "ian",
      "email": ""
      "displayName": "Rex",
      "email": ""
      "displayName": "sam",
      "email": ""
      "displayName": "alex",
      "email": ""
      "displayName": "john.j",
      "email": ""
      "displayName": "daniel",
      "email": ""

Query Parameters

type_namestringYesName of the entityType.
Expression used to filter the result. By default, all records are returned.
Integer value between 1 and 1000, inclusive, specifying the maximum number of records to be returned. The default value is 100.
JSON array of attributes used to specify the sort order. Note that the sort_on parameter sorts results by using ASCII order; see the note below for more information.

By default, results are sorted in ascending order. To sort in descending order, place a minus sign (-) directly in front of the appropriate attribute. For example:
If the sort order is not important it's recommended that you include the sort_on parameter and set the value to an empty array:


Doing this typically improves the speed of an unsorted query.

JSON array of attributes to be returned. By default, all attributes and attribute values are returned.

ASCII Sorting

Search results returned by the entity.find endpoint are sorted by using the ASCII (American Standard Code for Information Interchange) sort order. This means that:

  1. Strings beginning with a control code or a special character are sorted first.
  2. Strings beginning with a number are sorted second.
  3. Strings beginning with an uppercase letter are sorted third.
  4. Strings beginning with a lowercase letter are sorted fourth.

For example, suppose your search result returns the following items: aardvark; +llama; Orangutan; 7zebra. Those items would be sorted like this:

  • +llama
  • 7Zebra
  • Orangutan
  • aardvark