Skip to main content
View as Markdown

Bulk Create User Profiles - User Profile

Bulk Create User Profiles​

Create multiple profiles in a single request. All profiles must belong to the same app.

POST /api/v1/user-profile/bulkAdd
Content-Type: application/json
Authorization: Bearer <KS>
[
{
"appGuid": "app-guid",
"userId": "user1@example.com",
"profileData": {"name": "Alice"}
},
{
"appGuid": "app-guid",
"userId": "user2@example.com",
"profileData": {"name": "Bob"}
}
]

Each array element has the same fields as user-profile/add:

FieldTypeRequiredDescription
appGuidstringYesApp Registry GUID (must be the same for all items)
userIdstringYesKaltura user ID (must exist in your account)
profileDataobjectYesCustom user attributes (any valid JSON)
loginDataobjectNoLogin tracking
eventDataobjectNoEvent attendance data
appDataobjectNoApp-specific metadata
statusstringNoDefault: enabled

Constraints:

  • All items must have the same appGuid (mixed appGuids return NOT_YET_SUPPORTED)
  • Array size: minimum 1, maximum 50 (configurable per deployment)
  • The app is validated once for the shared appGuid; user IDs are validated in bulk via user.list

Response: Array of results in the same order as input. Each element is either a user profile object (on success) or an error object (on failure). Partial success is possible — HTTP 200 even if some items fail.

[
{"id": "...", "userId": "user1@example.com", "objectType": "UserProfile", ...},
{"code": "USER_ALREADY_ASSOCIATED_TO_APP_GUID", "message": "...", "objectType": "KalturaAPIException"}
]
curl -X POST "$KALTURA_USER_PROFILE_URL/user-profile/bulkAdd" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "[
{\"appGuid\": \"$APP_GUID\", \"userId\": \"user1@example.com\", \"profileData\": {\"name\": \"Alice\"}},
{\"appGuid\": \"$APP_GUID\", \"userId\": \"user2@example.com\", \"profileData\": {\"name\": \"Bob\"}}
]"