Storefront Content Pages (v1)
These routes are public (Customer / anonymous). Managing pages is done in the workspace dashboard by Workspace Owner or Staff with store.manage via POST|PATCH|DELETE /v1/workspace/:workspaceId/storefront/content-pages.
List pages
Method & Path
GET /v1/public/storefront/stores/:slug/content-pages
Actual backend path: /v1/public/storefront/stores/:slug/content-pages
Description
Returns active storefront content pages for the store identified by slug, ordered by sortOrder then creation time. Each page includes a slug used in public URLs and a type (about-us, contact-us, privacy-policy, terms-and-return, faq, or custom). Built-in types use slug equal to the type (e.g. about-us). Custom pages use a merchant-defined slug (e.g. our-story).
Authentication
None — public.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | Yes | Storefront store slug |
Response 200 OK
{
"pages": [
{
"id": "...",
"storeId": "...",
"workspaceId": "...",
"slug": "about-us",
"type": "about-us",
"title": "من نحن",
"content": "<p>...</p>",
"status": "active",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
]
}
Common Errors
- 404: Store slug not found
Get page by slug
Method & Path
GET /v1/public/storefront/stores/:slug/content-pages/:pageSlug
Actual backend path: /v1/public/storefront/stores/:slug/content-pages/:pageSlug
Description
Returns a single active content page. The pageSlug path segment is the page slug (for built-in pages this matches the type, e.g. faq; for custom pages it is the slug configured in the dashboard).
Authentication
None — public.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | Yes | Storefront store slug |
| pageSlug | string | Yes | URL-safe slug: lowercase letters, numbers, hyphens (max 120) |
Response 200 OK
{
"page": {
"id": "...",
"storeId": "...",
"workspaceId": "...",
"slug": "our-story",
"type": "custom",
"title": "قصتنا",
"content": "<p>...</p>",
"status": "active",
"sortOrder": 10,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
}
Common Errors
- 404 NOT_FOUND: Store or page not found, or page not active
- 400: Invalid
pageSlugformat (validation)