/channels/{channelCode}/content-pages
List a channel's content pages
Returns the channel's editorial pages: standing pages, blog posts and news. All three are the same record told apart by pageType, so one call can fetch everything or be narrowed with ?pageType=.
Show the full description
Sorted by sort order, then slug. Each page carries its full section list under config, with products, categories and suppliers named by business key rather than internal id. publishDate may be in the future: the storefront hides such an article until it passes, but this endpoint returns it either way. Delta sync: ?modifiedSince= (ISO 8601 UTC datetime) returns records created or changed at or after that instant, and is the intended way to run an incremental sync. A change anywhere inside the record counts: editing a line moves the parent's modifiedDate too, so no change can hide below the resource level. Deletions are not visible here: a deleted record is really gone, so it simply stops appearing, which is indistinguishable from "unchanged". Poll GET /preview/deletions?deletedSince= alongside this endpoint to learn what was removed.
Path parameters
| Field | Type | Description |
|---|---|---|
channelCode
Required
|
string | Code of the channel whose pages to list. |
Query parameters
| Field | Type | Description |
|---|---|---|
pageType
|
enum |
Filters on the kind of page: Page, BlogPost or NewsPost.
Page
BlogPost
NewsPost
Home
|
isPublished
|
boolean | Filters on whether the page is published. |
search
|
string | Matches slug and title, case-insensitively and on partial words. |
tag
|
string | Returns only pages carrying this tag, matched case-insensitively. Applied before paging, so totalCount counts the tagged pages and page 1 is never empty while later pages hold matches. |
modifiedSince
|
string(date-time) | Returns only records created or changed at or after this instant (ISO 8601 UTC datetime). A change anywhere inside the record counts, including on its lines. |
page
|
integer | Page to return, 1-based. Default 1. |
pageSize
|
integer | Number of records per page. Default 50, max 200. |
Responses
PagedResult_PublicContentPageResponse
Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated
| Field | Type | Description |
|---|---|---|
authorName
|
string · nullable | Displayed author. Free text, not linked to a user. |
channelCode
Required
|
string · nullable | The channel the page belongs to. |
config
Required
|
PageConfig | A page built from sections: the layout plus the sections in order. |
createdDate
Required
|
string(date-time) | When the page was created (UTC). |
excerpt
|
string · nullable | Short summary for list cards, RSS and meta. Articles only. |
featuredImageUrl
|
string · nullable | Cover image for list cards and Open Graph. Articles only. |
isPublished
Required
|
boolean | Whether the page is published and visible in the storefront. |
links
|
Links | Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at. |
metaDescription
|
string · nullable | SEO meta description. |
modifiedDate
|
string(date-time) · nullable | When the page was last changed (UTC), or null if never changed. |
pageType
Required
|
enum |
What kind of content page this is. Mirrors `Domain.Ecom.ContentPageType`.
Page
BlogPost
NewsPost
Home
|
parentSlug
|
string · nullable | Slug of the parent page, for a hierarchy. Null at the top level. |
publishDate
|
string(date-time) · nullable | Editorial publication date shown and sorted on. May be in the future: public storefront queries hide an article until it passes. |
publishedAt
|
string(date-time) · nullable | When it was published (UTC), or null if it never has been. |
showInNavigation
Required
|
boolean | Whether the page appears in the navigation menu. |
slug
Required
|
string · nullable | URL slug, unique within the channel. |
sortOrder
Required
|
integer | Sort order in listings and navigation. |
tags
|
string[] · nullable | Tags used for filtering and related articles. |
title
Required
|
string · nullable | Page title, used for the heading and as the SEO title. |
ProblemDetails
pageType got a value outside its list.
| Field | Type |
|---|---|
detail
|
string · nullable |
instance
|
string · nullable |
status
|
integer · nullable |
title
|
string · nullable |
type
|
string · nullable |
ProblemDetails
No channel with that code.
| Field | Type |
|---|---|
detail
|
string · nullable |
instance
|
string · nullable |
status
|
integer · nullable |
title
|
string · nullable |
type
|
string · nullable |
Standard errors:
401
403
Errors
Examples
curl "https://api.fluit.cloud/preview/channels/{channelCode}/content-pages"
{
"hasNextPage": true,
"hasPreviousPage": true,
"items": [
{
"authorName": "Acme AB",
"channelCode": "STD",
"config": {
"fullWidth": true,
"layout": "Standard",
"sections": [
{
"alignment": "Left",
"anchor": "string",
"articleLinkText": "string",
"articleType": "All",
"bannerEndDate": "2026-06-11T09:24:13.418",
"bannerImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
"bannerLinkUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
"bannerStartDate": "2026-06-11T09:24:13.418",
"buttons": [],
"cardColumns": 42,
"cardVariant": "Icon",
"categoryCode": "STD",
"categoryCodes": [],
"contact": {},
"cssClass": "string",
"custom": {},
"eyebrow": "string",
"faq": {},
"featureCards": [],
"form": {},
"galleryImages": [],
"heroCtaText": "string",
"heroCtaUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
"heroImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
"heroTextColor": "Light",
"heroVideoPosterUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
"heroVideoUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
"htmlContent": "string",
"id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
"isVisible": true,
"itemGroupCode": "STD",
"lead": "string",
"logos": {},
"maxBrands": 42,
"maxProducts": 42,
"mediaText": {},
"narrowText": true,
"parentCategoryCode": "STD",
"productColumns": 42,
"productNumbers": [],
"productSort": "Manual",
"productSpotlight": {},
"sectionCollectionId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
"sortOrder": 42,
"spacing": "Normal",
"subtitle": "string",
"supplierNumbers": [],
"testimonials": [],
"timeline": {},
"title": "string",
"tone": "Default",
"twoColumns": true,
"type": "Hero",
"videoUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg"
}
]
},
"createdDate": "2026-06-11T09:24:13.418",
"excerpt": "string",
"featuredImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
"isPublished": true,
"links": {
"self": "string"
},
"metaDescription": "string",
"modifiedDate": "2026-06-11T09:24:13.418",
"pageType": "Page",
"parentSlug": "string",
"publishDate": "2026-06-11T09:24:13.418",
"publishedAt": "2026-06-11T09:24:13.418",
"showInNavigation": true,
"slug": "string",
"sortOrder": 42,
"tags": [
"string"
],
"title": "string"
}
],
"page": 1,
"pageSize": 50,
"totalCount": 137,
"totalPages": 3
}
Base URL https://api.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.