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 Prefix | Description |
|---|---|
/portal/groups | Portal navigation groups |
/portal/featured-content | Featured content retrieval |
/portal/savedsearch | Saved search CRUD |
/portal/search | Search operations |
/portal/searchprofile | Search profile management |
/portal/userContentAttribute | User content preferences (favorites, bookmarks) |
/portal/remove-watching | Continue watching list management |
/portal/profile | User profile management |
/contentgroup | Content 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.
| Endpoint | Method | Description |
|---|---|---|
/portal/userContentAttribute/add | POST | Add an attribute (favorite, like, bookmark) to a content item |
/portal/userContentAttribute/remove | POST | Remove 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
| Endpoint | Method | Description |
|---|---|---|
/contentgroup | GET | List all content groups for the current user |
/contentgroup/{id} | GET | Get a content group by ID |
/contentgroup | POST | Create a new content group |
/contentgroup/{id} | PATCH | Rename a content group |
/contentgroup/{id} | DELETE | Delete a content group |
Content Management
| Endpoint | Method | Description |
|---|---|---|
/contentgroup/add/{id} | POST | Add content items to a group (body: Guid[]) |
/contentgroup/remove/{id} | POST | Remove content items from a group (body: Guid[]) |
Sharing
| Endpoint | Method | Description |
|---|---|---|
/contentgroup/share/{id} | POST | Share a group with users (body: Guid[] of user IDs) |
/contentgroup/stopshare/{id} | POST | Revoke 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 Code | Description |
|---|---|
| 400 | Bad Request - Missing or invalid parameters |
| 401 | Unauthorized - Missing or invalid Bearer token |
| 404 | Not Found - Content group, saved search, or resource not found |
