The Dynamic API is the mobile app's primary content feed. It is entirely read-only. Pages and themes are served from published JSON snapshots — not live draft rows — so the mobile app always receives stable, admin-approved content. Mobile developers integrate via the MobileContent.ApiClient.Dynamic NuGet package (IDynamicApiClient).
Auth: All Dynamic endpoints are [AllowAnonymous]. Authentication is handled at the API gateway level.
GET /api/mobilecontent/dynamic/site/{siteKey} → SiteDto
Returns the site metadata and its list of active pages (page keys, titles, sort orders). Does not include full page content — fetch individual pages separately.
Parameter
Type
Description
siteKey
string (path)
Lowercase semantic key of the site (e.g., ual).
SiteDto response
Field
Type
Description
key
string
Site key.
description
string
Human-readable label.
activeThemeId
guid?
GUID of the site-level active theme. Use to fetch the theme via the theme endpoint.
activeThemeKey
string?
Key of the site-level active theme.
pages
PageDto[]
Active pages in sort order.
Get Page
GET /api/mobilecontent/dynamic/site/{siteKey}/page/{pageKey} → PageDto
Returns a fully composed page from its active snapshot. The response includes all containers and all items, deserialized from the stored JSON snapshot. Returns 404 if the page does not exist or is not in Published state.
Draft preview: When the requesting user is listed in the page's DynamicPagePreviewUsers, the Dynamic API serves the live draft rows instead of the active snapshot. This allows designated users to preview content on their mobile device before publishing.
Parameter
Type
Description
siteKey
string (path)
Lowercase semantic key of the site (e.g., ual).
pageKey
string (path)
Lowercase semantic key of the page.
PageDto response
Field
Type
Description
key
string
Page key.
title
string?
Display title.
sortOrder
int
activeThemeId
guid?
Page-level theme override. When set, use this theme instead of the site-level theme.
activeThemeKey
string?
Key of the page-level theme override.
containers
ContainerDto[]
Ordered list of layout containers, each with their items.
ContainerDto
Field
Type
Description
id
int
containerType
string
Layout type (e.g., VerticalStack, HorizontalRow).
title
string?
viewAllText
string?
viewAllLink
string?
columns
int?
backgroundToken
string?
Token path for background styling.
cornerRadiusToken
string?
paddingToken
string?
isSortable
bool
sortOrder
int
items
ItemDto[]
Ordered list of content items.
ItemDto
Field
Type
Description
id
int
itemType
string
Content type (e.g., TextBlock, Image, Button).
isSortable
bool
sortOrder
int
title
string?
headerText
string?
description
string?
eyebrow
string?
label
string?
image
string?
link
string?
linkText
string?
ctaText
string?
ctaLink
string?
backgroundToken
string?
eyebrowToken
string?
Theme token path applied to the eyebrow text color/style.
titleToken
string?
Theme token path applied to the title text color/style.
descriptionToken
string?
Theme token path applied to the description text color/style.
headerTextToken
string?
Theme token path applied to the header text color/style.
identityToken
string?
Theme token path used to resolve user/member identity styling.
contractLinkToken
string?
Theme token path applied to the contract link element.
ctaTextToken
string?
Theme token path applied to the call-to-action button text.
template
string?
Item-type-specific layout or data payload. Raw JSON string; parsed and applied by the mobile client based on itemType.
Get Theme by ID
GET /api/mobilecontent/dynamic/theme/{themeId} → ThemeDto
Returns a theme and all its tokens by GUID. Use activeThemeId from a SiteDto or PageDto to look up the appropriate theme. Returns 404 if the theme does not exist or has been soft-deleted (IsActive = false).
Parameter
Type
Description
themeId
guid (path)
GUID of the theme (activeThemeId from SiteDto or PageDto).
Get All Themes
GET /api/mobilecontent/dynamic/theme → IEnumerable<ThemeDto>
Returns all active themes with their full token sets. Soft-deleted themes (IsActive = false) are automatically excluded. Useful for pre-fetching the complete theme catalogue on app launch.
ThemeDto response
Field
Type
Description
id
int
Database ID — used as the FK in SiteDto and PageDto.
key
string
Semantic key (e.g., ual-default).
description
string?
tokens
Dictionary<string, string>
Token path → value map. Apply these values to your design token system at runtime.
Recommended Mobile App Integration Pattern
On app launch: Fetch the site for the user's MEC (GET /dynamic/site/{siteKey}) to get the page list and active theme ID.
Fetch the active theme:GET /dynamic/theme/{activeThemeId} and apply the token dictionary to your app's theme system. You may also use activeThemeKey for logging or display.
On screen navigation: Fetch the relevant page (GET /dynamic/page/{pageKey}) to get its containers and items.
Theme override: If PageDto.activeThemeId is non-null, fetch and apply that theme instead of the site-level theme for this screen.
Caching: Cache site and theme data aggressively; cache page data with a short TTL or invalidate on app foreground.
Complete Dynamic Endpoint Reference
GET /api/mobilecontent/dynamic/site/{siteKey}
GET /api/mobilecontent/dynamic/site/{siteKey}/page/{pageKey}
GET /api/mobilecontent/dynamic/theme/{themeId}
GET /api/mobilecontent/dynamic/theme