---
title: Create a User Profile
url: https://docs.kaltura.com/docs/events-collaboration/user-profile-api/user-profile-create-a-user-profile
---

## Create a User Profile

```
POST /api/v1/user-profile/add
Content-Type: application/json
Authorization: Bearer &lt;KS&gt;
```

```json
{
  "appGuid": "app-guid-from-registry",
  "userId": "user@example.com",
  "profileData": {
    "name": "Jane Doe",
    "company": "Acme Corp",
    "role": "Speaker"
  },
  "loginData": {
    "lastLoginDate": "2025-06-15T10:30:00Z",
    "lastLoginType": "sso"
  },
  "eventData": {
    "regOrigin": "registration",
    "attendanceStatus": "registered",
    "userRegistrationType": "virtualAttendanceRequest"
  }
}
```

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `appGuid` | string | Yes | App Registry GUID (must be registered and enabled) |
| `userId` | string | Yes | Kaltura user ID (must exist in your account) |
| `profileData` | object | Yes | Custom user attributes (any valid JSON) |
| `loginData` | object | No | Login tracking (both subfields required if provided) |
| `eventData` | object | No | Event attendance data |
| `appData` | object | No | App-specific metadata |
| `status` | string | No | Default: `enabled` |

If `eventData.attendanceStatus` is set to `attended`, `participated`, or `participatedPostEvent` at creation time, `firstAttendedStatusTime` is automatically recorded.

**Response:** Full user profile object with generated `id`:

```json
{
  "id": "6620a1b2c3d4e5f6a7b8c9d0",
  "partnerId": 123456,
  "appGuid": "app-guid-from-registry",
  "userId": "user@example.com",
  "status": "enabled",
  "profileData": {
    "name": "Jane Doe",
    "company": "Acme Corp",
    "role": "Speaker"
  },
  "loginData": {
    "lastLoginDate": "2025-06-15T10:30:00Z",
    "lastLoginType": "sso"
  },
  "eventData": {
    "regOrigin": "registration",
    "attendanceStatus": "registered",
    "userRegistrationType": "virtualAttendanceRequest",
    "isRegistered": false,
    "statusUpdateTime": "2025-06-15T10:30:00.000Z"
  },
  "appData": {},
  "createdAt": "2025-06-15T10:30:00.000Z",
  "updatedAt": "2025-06-15T10:30:00.000Z",
  "objectType": "UserProfile"
}
```

```bash
curl -X POST "$KALTURA_USER_PROFILE_URL/user-profile/add" \
  -H "Authorization: Bearer $KALTURA_KS" \
  -H "Content-Type: application/json" \
  -d "{
    \"appGuid\": \"$APP_GUID\",
    \"userId\": \"user@example.com\",
    \"profileData\": {
      \"name\": \"Jane Doe\",
      \"company\": \"Acme Corp\"
    },
    \"eventData\": {
      \"regOrigin\": \"registration\",
      \"attendanceStatus\": \"registered\"
    }
  }"
```

#### Error Codes

| Code | Meaning |
|------|---------|
| `USER_ALREADY_ASSOCIATED_TO_APP_GUID` | Profile already exists for this appGuid + userId (active, non-deleted) |
| `USER_ALREADY_EXIST` | Duplicate key error (concurrent creation race) |
| `OBJECT_NOT_FOUND` | appGuid not found or not enabled in App Registry |
| `USER_ID_NOT_FOUND` | userId does not exist in your Kaltura account |
