On this page

2 endpoints.

MethodPathSummary
GET/api/app-store/listingsPublic store grid — every app with its published listing
GET/api/app-store/listings/{appKey}Public detail page for one app

Unauthenticated. Returns every app in the feature catalog, each with its PUBLISHED marketing content or listing: null.

listing: null means NO CONTENT YET, never "no such app". The app list is driven by the feature catalog, so an app nobody has written copy for still appears, and the client falls back to name / nameArabic. DRAFT listings are indistinguishable from missing ones here, by design.

Order: featured first, then sortOrder, then appKey. Apps with no listing sort last — sortOrder defaults to 0, so they would otherwise outrank every deliberately merchandised app.

No price and no entitlement are returned. Both are per-viewer and stay behind authentication.

Auth: Bearer JWT required.

Responses

StatusDescriptionBody
200Catalog apps with published listingsobject

Unauthenticated. 404 only when the APP does not exist in the feature catalog. A real app whose listing is missing or still DRAFT returns 200 with listing: null — "nobody has written the copy" is a content state, not a missing resource, and a 404 would make the page vanish the moment an editor unpublished a draft.

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
appKeypathyesstring

Responses

StatusDescriptionBody
200The app, with or without contentobject
404APP_STORE_UNKNOWN_APP — appKey is not in the feature catalog