Skip to main content
View as Markdown

Register an App - App Registry

Register an App​

POST /api/v1/app-registry/add
Content-Type: application/json
Authorization: Bearer <KS>
{
"appCustomId": "my-events-site-01",
"appType": "ep",
"appCustomName": "Annual Conference Portal"
}
FieldTypeRequiredDescription
appCustomIdstringYesCustom identifier (unique per partner)
appTypestringYesApplication type (see section 4.1)
appCustomNamestringYesDisplay name
organizationDomainobjectNoDomain 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.

{
"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"
}
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.

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​

CodeMeaning
APP_REGISTRY_ALREADY_EXISTS_WITH_THIS_APP_CUSTOM_IDDuplicate appCustomId for your partner
ORGANIZATION_ID_DOMAIN_AND_APP_TYPE_MUST_BE_UNIQUEDomain/org/type combination already exists