CMS · layout
2 routes. Paths are relative to https://api.intersink.com/v1.
- GET/cms/channels/{channelId}/layoutGet the channel's layout/theme settings
- PUT/cms/channels/{channelId}/layoutReplace the layout/theme (schema-validated, max 16 KB)
Get the channel's layout/theme settings
GET/cms/channels/{channelId}/layout
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Replace the layout/theme (schema-validated, max 16 KB)
PUT/cms/channels/{channelId}/layout
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Request body application/json
| Field | Type | Description |
|---|---|---|
| header | object | |
| header.logo | string | directus_files id |
| header.sticky | boolean | |
| header.menu_id | number | Menu id (this channel) Minimum 1. |
| header.show_search | boolean | |
| header.cta | object | |
| header.cta.label | string | At most 40 characters. |
| header.cta.url | string | Example: "/contact" |
| header.cta.target | string | One of: "_self", "_blank". |
| header.announcement | object | |
| header.announcement.titlerequired | string | At least 2 characters, at most 140 characters. |
| header.announcement.body | string | At least 0 characters, at most 1000 characters. |
| header.announcement.level | string | One of: "info", "warning", "critical". |
| header.announcement.ends_at | string | |
| header.announcement.cascade | boolean | Also show on every channel below this one |
| footer | object | |
| footer.columns | object[] | |
| footer.columns[].title | string | At most 60 characters. |
| footer.columns[].menu_id | number | Menu id (this channel) Minimum 1. |
| footer.columns[].text | string | Plain text At most 500 characters. |
| footer.copyright | string | At most 200 characters. |
| footer.social | object[] | |
| footer.social[].network | string | One of: "facebook", "instagram", "x", "twitter", "linkedin", "youtube", "tiktok", "pinterest", "whatsapp", "telegram", "github". |
| footer.social[].url | string | At most 500 characters. Example: "https://instagram.com/acme" |
| footer.show_newsletter | boolean | |
| theme | object | |
| theme.primary_color | string | Example: "#4F46E5" |
| theme.secondary_color | string | Example: "#0EA5E9" |
| theme.background_color | string | Example: "#FFFFFF" |
| theme.text_color | string | Example: "#111827" |
| theme.font_family | string | Example: "Inter" |
| theme.border_radius | number | Minimum 0, maximum 32. |
| theme.mode | string | One of: "light", "dark", "auto". |
Response
200. The payload in data is not described in the spec yet.