Skip to main content
View as Markdown

List User Profiles - User Profile

List User Profiles​

POST /api/v1/user-profile/list
Content-Type: application/json
Authorization: Bearer <KS>
{
"filter": {
"appGuidIn": ["app-guid"],
"attendanceStatus": "registered"
},
"pager": {
"offset": 0,
"limit": 100
},
"orderBy": "-createdAt",
"includeTotalCount": true
}

Deleted profiles are always excluded from list results — this is hardcoded and cannot be overridden with a status filter.

10.1 Filter Fields​

All filter fields are optional. Provided fields are AND'd together.

FieldTypeDescription
idInstring[]Filter by profile IDs. Invalid IDs silently ignored.
appGuidInstring[]Filter by app GUIDs
userIdInstring[]Filter by user IDs. Email addresses (containing @) are matched case-insensitively. Non-email IDs are matched case-sensitively.
statusstringenabled or disabled (deleted always excluded)
attendanceStatusstringFilter by current attendance status
regOriginInstring[]Filter by registration origins
previousAttendanceStatusstringFilter by previous status
userRegistrationTypestringFilter by requested attendance type
attendanceTypestringFilter by confirmed attendance type
allowedAttendanceTypestringFilter by allowed attendance type
createdAtGreaterThanOrEqualstringISO 8601 minimum creation date
createdAtLessThanOrEqualstringISO 8601 maximum creation date
updatedAtGreaterThanOrEqualstringISO 8601 minimum update date
updatedAtLessThanOrEqualstringISO 8601 maximum update date

Deprecated: The regOrigin (singular) filter field still works but is superseded by regOriginIn (array). If both are provided, regOriginIn takes precedence.

10.2 Pager​

FieldTypeDefaultDescription
offsetinteger0Number of records to skip
limitinteger50Maximum records to return

10.3 Sorting​

Use orderBy with a field name. Prefix with - for descending order:

  • "createdAt" — oldest first
  • "-createdAt" — newest first
  • "-updatedAt" — recently updated first

10.4 Total Count​

Set "includeTotalCount": true (default) to include the total number of matching records. Set to false for faster queries — totalCount returns -1 when disabled.

Response:

{
"objects": [
{
"id": "...",
"appGuid": "...",
"userId": "user@example.com",
"profileData": {"name": "Jane Doe"},
"eventData": {"attendanceStatus": "registered"},
"objectType": "UserProfile",
...
}
],
"totalCount": 250
}
# List all registered users for an event app
curl -X POST "$KALTURA_USER_PROFILE_URL/user-profile/list" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "{
\"filter\": {
\"appGuidIn\": [\"$APP_GUID\"],
\"attendanceStatus\": \"registered\"
},
\"pager\": {\"offset\": 0, \"limit\": 100},
\"orderBy\": \"-createdAt\"
}"