---
title: Register an App
url: https://docs.kaltura.com/docs/events-collaboration/app-registry-api/app-registry-register-an-app
---

## Register an App

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

```json
{
  "appCustomId": "my-events-site-01",
  "appType": "ep",
  "appCustomName": "Annual Conference Portal"
}
```

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `appCustomId` | string | Yes | Custom identifier (unique per partner) |
| `appType` | string | Yes | Application type (see section 4.1) |
| `appCustomName` | string | Yes | Display name |
| `organizationDomain` | object | No | Domain binding (see section 4.2) |

The `status` is always set to `"enabled"` on creation (cannot be overridden). The `version` starts at `0`. The `partnerId` is extracted from the KS — it cannot be set in the request body.

**Response:** Full app object with generated `id`.

```json
{
  "id": "6f8a3c12-4b5d-4e9f-a1c7-8d2e3f4a5b6c",
  "partnerId": 1234567,
  "appCustomId": "my-events-site-01",
  "appCustomName": "Annual Conference Portal",
  "appType": "ep",
  "status": "enabled",
  "version": 0,
  "createdAt": "2026-04-09T04:56:27.940Z",
  "updatedAt": "2026-04-09T04:56:27.940Z",
  "objectType": "App"
}
```

```bash
curl -X POST "$KALTURA_APP_REGISTRY_URL/app-registry/add" \
  -H "Authorization: Bearer $KALTURA_KS" \
  -H "Content-Type: application/json" \
  -d '{
    "appCustomId": "my-events-site-01",
    "appType": "ep",
    "appCustomName": "Annual Conference Portal"
  }'
```

Save the `id` from the response — this is the `appGuid` used by other services like the [User Profile API](/docs/events-collaboration/user-profile-api/user-profile-overview).

#### Uniqueness Constraints

- `appCustomId` must be unique within your partner account
- If `organizationDomain` is provided, the combination of `organizationId` + `domain` + `appType` must be globally unique. Each comma-separated domain in the `domain` field is validated individually.

#### Error Codes

| Code | Meaning |
|------|---------|
| `APP_REGISTRY_ALREADY_EXISTS_WITH_THIS_APP_CUSTOM_ID` | Duplicate `appCustomId` for your partner |
| `ORGANIZATION_ID_DOMAIN_AND_APP_TYPE_MUST_BE_UNIQUE` | Domain/org/type combination already exists |
