Portal API

User-facing portal endpoints for navigation, featured content, saved searches, content groups, continue watching, and user profiles.

Portal API

Overview

The Portal API provides user-facing endpoints for navigating content, managing personal preferences, and organizing content through groups. It serves as the primary API for end-user portal applications.

Base Routes

Route PrefixDescription
/portal/groupsPortal navigation groups
/portal/featured-contentFeatured content retrieval
/portal/savedsearchSaved search CRUD
/portal/searchSearch operations
/portal/searchprofileSearch profile management
/portal/userContentAttributeUser content preferences (favorites, bookmarks)
/portal/remove-watchingContinue watching list management
/portal/profileUser profile management
/contentgroupContent group CRUD and sharing

Portal Navigation

Groups

POST /portal/groups
Request body: PortalContentRequestModel { returnedGroupNames }
Response: PortalModel { featuredContent, savedSearches, contentGroups, sharedContentGroups }

Retrieves the portal group hierarchy for navigation. The returnedGroupNames parameter optionally filters which groups to include.

Featured Content

POST /portal/featured-content
Request body: FeaturedContentRequestModel { returnedFieldNames }
Response: PortalModel

Retrieves featured content items for prominent display on the portal.

User Content Attributes

User content attributes track per-user interactions such as favorites, likes, and bookmarks.

EndpointMethodDescription
/portal/userContentAttribute/addPOSTAdd an attribute (favorite, like, bookmark) to a content item
/portal/userContentAttribute/removePOSTRemove an attribute from a content item

Both endpoints accept UserContentAttributeModel with a content ID and attribute type.

Continue Watching

POST /portal/remove-watching/{assetOrContentId}?profileId=...
Response: true

Removes a video from the user's continue watching list by marking it as hidden. Accepts either an asset ID or content ID; if a content ID is provided, the main video asset is resolved automatically. Supports multi-profile scenarios via the optional profileId parameter.

User Profiles

GET /portal/profile/{name}
GET /portal/profile/{name}/{sourceId}
Response: Guid (profile ID)

Gets or creates a user profile by name or external ID. Profiles support multi-profile scenarios such as parental controls or personalized recommendations. The sourceId variant allows multiple external systems to maintain separate profile namespaces.

Content Groups

Content groups are user-defined collections for organizing and curating content.

CRUD Operations

EndpointMethodDescription
/contentgroupGETList all content groups for the current user
/contentgroup/{id}GETGet a content group by ID
/contentgroupPOSTCreate a new content group
/contentgroup/{id}PATCHRename a content group
/contentgroup/{id}DELETEDelete a content group

Content Management

EndpointMethodDescription
/contentgroup/add/{id}POSTAdd content items to a group (body: Guid[])
/contentgroup/remove/{id}POSTRemove content items from a group (body: Guid[])

Sharing

EndpointMethodDescription
/contentgroup/share/{id}POSTShare a group with users (body: Guid[] of user IDs)
/contentgroup/stopshare/{id}POSTRevoke sharing from users (body: Guid[] of user IDs)

Shared content groups appear in the recipient's SharedContentGroups list when retrieving portal groups.

Common Error Responses

Status CodeDescription
400Bad Request - Missing or invalid parameters
401Unauthorized - Missing or invalid Bearer token
404Not Found - Content group, saved search, or resource not found