In this page
Target-state reference for display composition endpoints intended for future consumer clients.
Where this lives in the code
src/MediaEngine.Api/Endpoints/DisplayEndpoints.cssrc/MediaEngine.Api/Services/Displaysrc/MediaEngine.Contracts/Display
The Engine owns consumer display composition for Home, Watch, Read, Listen, music landing pages, browse results, continue surfaces, search results, and grouped shelves. Web, iOS, Android, Roku, and TV clients should consume this API for browsing cards instead of reimplementing media-specific display rules.
Endpoints
GET /api/v1/display/home?profileId=...GET /api/v1/display/browse?lane=watch&mediaType=Movie&grouping=allGET /api/v1/display/continue?lane=readGET /api/v1/display/search?q=duneGET /api/v1/display/shelves/{shelfKey}?lane=listen&mediaType=Music&grouping=home&cursor=...GET /api/v1/display/groups/{groupId}(a Series’ see-all list: the run as theitemsshelf, “Also in this world” members as a second shelf, split like the Universe read)
Payload Rules
- Page-style endpoints return
DisplayPageDto. - Shelf pagination returns
DisplayShelfPageDtowithnextCursorandhasMore. - Browse/search endpoints return cards in
catalogby default to avoid duplicating the same cards in aresultsshelf. - Clients that need a shelf-shaped browse response can pass
includeCatalog=false. - Home composition is shelf-driven: Jump Back In, Watch, Read, Listen, Collections & Lists, then New in your library when each shelf has real data. The final New shelf is filled only with structural work/group identities not already placed in the preceding Home shelves and is omitted when it would be entirely repetitive.
- Home collections come from accessible collection placements at
location=home; clients should not synthesize top-level series/franchise cards. - Detail/edit/playback APIs remain separate; display cards carry compact facts and semantic action targets, not full detail payloads.
DTO Semantics
DisplayPageDto: a client-neutral page with optional hero, shelves, and/or catalog.DisplayShelfDto: a named row ofDisplayCardDtocards plus an optional see-all route.DisplayHeroDto: spotlight identity, artwork, actions, progress, display facts, genres, presentation, and optional ordered preview items copied from the source card. Album previews let compact Listen heroes show track context without turning tracks into landing cards.- Listen landing composition is album-first.
continue-listening,new-tracks-added, andalbumsreturn album cards for Music; Audiobooks remain individual or series cards.new-tracks-addeddescribes newly arrived tracks on each album card rather than returning one card per track. DisplayCardDto: compact card identity, title, facts, typed badges, optional ordered preview items, artwork, progress, flags, and semantic actions.DisplayCardBadgeDto: typed badge metadata such asqualityandsource; badges are omitted unless source data exists.DisplayCardPreviewItemDto: ordered owned-child preview metadata for series and collection cards, including work/asset identity, title, managed image, shape, optional position, media type, and child web route. Clients should preserve sequence order, show positions when present, and usepreviewTotalCountfor owned counts or overflow.DisplayArtworkDto: platform-neutral artwork variants and dimensions.DisplayProgressDto: progress percent, display label, last access timestamp, and resume action.DisplayActionDto: semantic action type such asopenWork,openCollection,playAsset, orreadAsset, plus IDs and optional web fallback URL.
Client Responsibilities
Clients own layout and interaction style. Web can render hover cards, mobile can render long-press previews, and TV clients can render focus cards. All clients should use the same facts, artwork choices, progress, and action targets from the Engine.