--- title: Project Configuration --- ## Get Project Config **Required scope:** `public-api:read` This endpoint returns the [Project Config](/reference/project-config/llms.txt). **Use Cases** - Used by [Livingdocs CLI](/reference/cli/llms.txt) to download the Project Config **Curl Example** ```bash ACCESS_TOKEN=ey1234 curl -k -X GET "https://server.livingdocs.io/api/2026-05/projectConfig" \ -H "Authorization: Bearer $ACCESS_TOKEN" ``` **Endpoint** ```http GET /api/2026-05/projectConfig ``` **Response** _200 OK_ ```json { "v": 2, "$baseRevision": 28, "settings": { "handle": "service", "languages": { "available": [ { "label": "German", "locale": "de" } ], "defaultLanguage": { "label": "German", "locale": "de" }, "requiredOnCreation": true, "translationWorkflow": true }, "editMode": "default" }, "editorSettings": { "mainNavigation": [ { "handle": "articleManagement", "label": "Articles", "dashboard": "articleManagement", "icon": "file-document-edit" }, { "liItem": "mediaLibrary" } ], "dashboards": [ { "handle": "articleManagement", "type": "tableDashboard", "pageTitle": "Article Management", "baseFilters": [ { "type": "documentType", "value": "article" } ], "displayFilters": [ "contentType" ], "sort": "-updated_at", "columns": [ { "label": "Article", "minWidth": 375, "growFactor": 2, "priority": 1, "componentName": "liTableDashboardCellMain", "componentOptions": { "image": { "metadataPropertyName": "teaserImage" }, "clampTitle": false, "showContentType": true }, "editable": false }, { "label": "Description", "metadataPropertyName": "description", "editable": true, "minWidth": 150, "growFactor": 1, "priority": 5 } ] } ] }, "contentTypes": [ { "handle": "regular", "documentType": "article", "info": { "label": "Regular Article" }, "components": [ { "name": "web-teaser" }, { "name": "title" }, { "name": "p" } ], "editorWrapper": "
", "defaultContent": [ { "component": "title" } ], "metadata": [ { "handle": "title", "type": "li-text", "config": { "minLength": 5, "maxLength": 200, "recommendedMinLength": 50, "recommendedMaxLength": 150, "allowNewlines": false, "required": false, "hideFromForm": false, "translatable": false }, "ui": { "config": { "readOnly": false } } }, { "handle": "description", "type": "li-text", "config": { "allowNewlines": true, "required": false, "hideFromForm": false, "translatable": false }, "ui": { "config": { "readOnly": false } } } ], "metadataGroups": [ { "label": "General", "properties": [ "title", "description" ], "expanded": true } ] } ], "mediaTypes": [ { "type": "mediaImage", "handle": "image", "info": { "label": "Images", "description": "" }, "asset": { "translatable": true, "replaceable": true }, "metadata": [ { "handle": "title", "type": "li-text", "config": { "required": true, "requiredErrorMessage": "Please provide a title", "maxLength": 200, "translatable": true, "index": true, "hideFromForm": false }, "ui": { "config": { "readOnly": false } } } ], } ], "designSettings": { "assets": { "css": [ "https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" ] }, "mediaRendering": { "backgroundImage": { "defaultWidth": 1000 }, "srcSet": { "defaultWidth": 1000, "widths": [ 1000, 600, 300 ], "sizes": [ "100vw" ] }, "video": { "muted": true } }, "componentGroups": [ { "name": "text", "label": "Text", "components": [ "title", "section-title", "p" ] } ], "defaultComponents": { "paragraph": "p", "image": "image", "video": "video-include" }, "fieldExtractor": [ { "identifier": "title", "type": "text", "matches": [ "title.title" ] } ], "componentProperties": [ { "name": "depth", "label": "Shadow", "type": "option", "value": "z-depth-2" } ], "namedCrops": [ { "handle": "mobile", "label": "Mobile", "description": "this image will be shown on small screens", "recommendedRatios": [ "1:1", "16:9" ] } ] }, "components": [ { "name": "title", "label": "Title", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_header_simple.svg", "directives": [ { "type": "editable", "name": "title", "minLength": 1, "maxLength": 150, "recommendedMinLength": 20, "recommendedMaxLength": 80, "plainText": true } ], "html": "

\n Title\n

" }, { "name": "p", "label": "Paragraph", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_text.svg", "html": "

\n Paragraph\n

" } ], "categories": [ { "id": "123abc", "label": "Home", "path": "/", "metadata": { "adId": "foo" } } ], "deliveries": [ { "handle": "web", "label": "Website", "isPrimary": true, "icon": "book-open", "url": { "origin": "https://livingdocs.io", "pathPattern": "/doc/{id}" } } ], "notifications": { "actionGroups": [ { "handle": "all", "label": "All Events", "description": "Comments, Tasks, Publish and delete", "actions": [ "task.change", "document.publish", "document.unpublish", "document.copy", "document.delete", "document.transform", "comment.add", "comment.resolve" ] } ], "notifyTaskRequester": true, "autoSubscribeOwner": { "enabled": true, "actionGroup": "all" } }, "import": { "allowedProjects": [ { "handle": "service-clone" } ] }, "export": { "allowedProjects": [ { "handle": "service-clone" } ] }, "externalSystems": [ { "handle": "myExternalSystem", "label": "My System", "url": { "origin": "https://example.com", "pathPattern": "/{{metadata.myExternalSystemId}}" }, "icon": "track-light", "isPrimary": false } ] } ``` ## Get Project Configuration > [!WARNING] > Use `GET /api/2025-07/projectConfig` instead.

It's still available on `/api/2025-05/project` and older versions. > **Required scope:** `public-api:read` **History** | Version | Change | | ------- | ------ | | release-2025-07 | This endpoint got removed in the `2025-07` version. It's still available on `/api/2025-05/project` and older versions. | | release-2023-03 | This endpoint got deprecreated. Use `GET /api/v1/projectConfig` instead. | **Curl Example** ```bash ACCESS_TOKEN=ey1234 curl -k -X GET "https://server.livingdocs.io/api/2025-05/project" \ -H "Authorization: Bearer $ACCESS_TOKEN" ``` **Endpoint** ```http GET /api/2025-05/project ``` **Response** _200 OK_ ```json { "projectId": 1, "name": "b5c5f804-7927-44e2-a3fd-f97bc6784dab", "label": "Daily Planet", "defaultChannelId": 1, "channels": [ { "channelId": 1, "channelHandle": "web", "label": "Web", "designName": "timeline", "designVersion": "1.1.0", "editMode": "default", "contentTypeHandles": [ "regular", "page" ], "contentTypes": [ { "contentTypeHandle": "regular", "documentType": "article", "metadata": [ { "name": "title", "plugin": "li-text" }, { "name": "author", "plugin": "li-text" }, { "name": "teaserImage", "plugin": "li-image" }, { "name": "dependencies", "plugin": "li-dependencies" }, { "name": "tasks", "plugin": "li-tasks" } ], "renditionHandles": [ "web", "mobile" ] }, { "contentTypeHandle": "page", "documentType": "page", "metadata": [ { "name": "title", "plugin": "li-text" }, { "name": "dependencies", "plugin": "li-dependencies" }, { "name": "routing", "plugin": "li-default-routing" } ], "renditionHandles": [ "web" ] } ] } ] } ``` ## Get Channel Configuration > [!WARNING] > Use `GET /api/2025-07/projectConfig` instead.

It's still available on `/api/2025-05/channels/{channelHandle}` and older versions. > **Required scope:** `public-api:read` **History** | Version | Change | | ------- | ------ | | release-2025-07 | This endpoint got removed in the `2025-07` version. It's still available on `/api/2025-05/project` and older versions. | | release-2023-03 | This endpoint got deprecated. Please use `GET /api/v1/projectConfig` instead. | **Curl Example** ```bash ACCESS_TOKEN=ey1234 curl -k -X GET "https://server.livingdocs.io/api/2025-05/channels/{channelHandle}" \ -H "Authorization: Bearer $ACCESS_TOKEN" ``` **Endpoint** ```http GET /api/2025-05/channels/{channelHandle} ``` **Parameters** | Name | Type | Required | Notes | | ---- | ---- | :------: | ----- | | channelHandle | string | | Optional channelHandle. Will return first channel of a project if none is passed. | **Response** _200 OK_ ```json { "channelId": 1, "channelHandle": "web", "label": "Web", "designName": "timeline", "designVersion": "1.1.0", "editMode": "default", "contentTypeHandles": [ "regular", "page" ], "contentTypes": [ { "contentTypeHandle": "regular", "documentType": "article", "metadata": [ { "name": "title", "plugin": "li-text" }, { "name": "author", "plugin": "li-text" }, { "name": "teaserImage", "plugin": "li-image" }, { "name": "dependencies", "plugin": "li-dependencies" }, { "name": "tasks", "plugin": "li-tasks" } ], "renditionHandles": [ "web", "mobile" ] }, { "contentTypeHandle": "page", "documentType": "page", "metadata": [ { "name": "title", "plugin": "li-text" }, { "name": "dependencies", "plugin": "li-dependencies" }, { "name": "routing", "plugin": "li-default-routing" } ], "renditionHandles": [ "web" ] } ] } ``` ## Get the latest Design Configuration **Required scope:** `public-api:read` **Curl Example** ```bash ACCESS_TOKEN=ey1234 curl -k -X GET "https://server.livingdocs.io/api/2026-05/design" \ -H "Authorization: Bearer $ACCESS_TOKEN" ``` **Endpoint** ```http GET /api/2026-05/design ``` **Response** _200 OK_ ```json { "name": "p:1:1", "version": "1.0.0", "assets": { "css": [ "https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" ] }, "defaultComponents": { "paragraph": "p", "image": "image" }, "groups": [ { "name": "content", "label": "Components", "components": [ "title", "p", "image", "insta" ] } ], "componentProperties": {}, "metadata": [ { "identifier": "title", "type": "text", "matches": [ "title.title" ] } ], "components": [ { "name": "title", "label": "Title", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_header_simple.svg", "html": "

\n Title\n

", "directives": {} }, { "name": "p", "label": "Paragraph", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_text.svg", "html": "

\n Paragraph\n

", "directives": {} }, { "name": "image", "label": "Image", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_image.svg", "directives": { "img": { "name": "img", "type": "image", "imageRatios": [ "16:9", "1:1", "4:3", "3:4" ] } }, "html": "" }, { "name": "insta", "label": "Instagram", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_image.svg", "directives": { "insta": { "name": "insta", "type": "include", "service": "instagram" } }, "html": "
\n
Instagram Include
\n
" } ] } ``` ## Get a specific Design Configuration **Required scope:** `public-api:read` **Use Cases** - Load the appropriate Design Version for a document **Curl Example** ```bash ACCESS_TOKEN=ey1234 curl -k -X GET "https://server.livingdocs.io/api/2026-05/design/{designVersion}" \ -H "Authorization: Bearer $ACCESS_TOKEN" ``` **Endpoint** ```http GET /api/2026-05/design/{designVersion} ``` **Parameters** | Name | Type | Required | Notes | | ---- | ---- | :------: | ----- | | designVersion | string | | Optional design version. Will take the current design version of a channel if none is passed. | **Response** _200 OK_ ```json { "name": "p:1:1", "version": "1.0.0", "assets": { "css": [ "https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" ] }, "defaultComponents": { "paragraph": "p", "image": "image" }, "groups": [ { "name": "content", "label": "Components", "components": [ "title", "p", "image", "insta" ] } ], "componentProperties": {}, "metadata": [ { "identifier": "title", "type": "text", "matches": [ "title.title" ] } ], "components": [ { "name": "title", "label": "Title", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_header_simple.svg", "html": "

\n Title\n

", "directives": {} }, { "name": "p", "label": "Paragraph", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_text.svg", "html": "

\n Paragraph\n

", "directives": {} }, { "name": "image", "label": "Image", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_image.svg", "directives": { "img": { "name": "img", "type": "image", "imageRatios": [ "16:9", "1:1", "4:3", "3:4" ] } }, "html": "" }, { "name": "insta", "label": "Instagram", "iconUrl": "https://livingdocs-assets.s3.amazonaws.com/magazine-design/assets/images/icons-components/icon_image.svg", "directives": { "insta": { "name": "insta", "type": "include", "service": "instagram" } }, "html": "
\n
Instagram Include
\n
" } ] } ```