Custom Page
You need the Manage custom pages permission to manage custom pages.
Custom Pages- Custom Pages ManageGET kb/customPages- Get the list of Custom PagesGET kb/customPages/{id}- Get a single Custom PagePOST kb/customPages- Create a new Custom PagePUT kb/customPages/{id}- Update the Custom PageDELETE kb/customPages/{id}- Remove the Custom Page
Custom Page JSON Format
Custom Page is represented as simple flat JSON objects with the following keys:
| Name | Type | Description |
|---|---|---|
id |
guid | Id of the custom page. |
title |
string | Title of the custom page. |
kbId |
guid | Id of the knowledage base. |
status |
string | Allowed values are "draft", "published". |
customUrl |
string | Custom url of the article. |
body |
string | Content of the custom page. You can pass both plaintext and base64 encode text. If the request containing plaintext is blocked by comm100 WAF, use base64 format. When using base64, add "data:text/plain;base64," before the content. |
modifiedTime |
timestamp | Time when the custom page was last modified. |
createdTime |
datetime | Time when the custom page was created. |
Get the list of Custom Pages
GET kb/customPages
-
Parameters:
| Name | Type | in | Required | Description |
|---|---|---|---|---|
keywords |
string | query | no | Search keywords. |
status |
string | query | no | Allowed values are "draft", "published". |
kbId |
guid | query | no | Id of the knowledage base. |
-
Response:
An array of Custom Page
-
Example
Sample Request:
curl https://api11.comm100.io/v4/kb/customPages \
-X 'GET' \
-H 'Authorization: Bearer {access_token}' \
Response:
HTTP/1.1 200 OK
[
{
"id": "87a9aac0-1f99-eb11-a80f-00155d081c1b",
"title": "Sample Custom Page",
"kbId": "b2754e68-b380-4a61-9c5b-a9570f1a4fcc",
"status": "draft",
"customUrl": "sample-custom-page",
"body": "\n?\n?\n? \n? \n? \n? \n? \n? \n? \n? \n?\n?\n? <div class="\"header\"">\n? <div class="\"container\"">\n? <div class="\"header_logo\""><img src="\"/kb/resources/your_logo.png\""></div>\n? <div class="\"header__title\""><span>Find answers in our Knowledge Base</span></div>\n? <div class="\"header__search\"">\n? <input type="\"text\"" class="\"search-input" placeholder="\"Enter" autocomplete="\"off\"">\n? <i class="\"iconfont"></i>\n? </div>\n? </div>\n? </div>\n? <div class="\"content\"">\n? <div class="\"container\"">\n? <div class="\"breadcrumbs\"">\n? {{breadcrumbs}}\n? </div>\n? <div class="\"category-list\"">\n? {% for category in categories %}\n? <div class="\"category-list__item\"">\n? <div class="\"category-list__item__header\"">\n? <i class="\"iconfont"></i>\n? <div class="\"category-list__item__name\""><a href="\"{{category.url}}\"">{{category.name}}</a></div>\n? <i class="\"iconfont"></i>\n? </div>\n? <div class="\"category-list__item__content">\n? <div class="\"article-list\"">\n? {% for article in articles %}\n? {% if category.id == article.category_id %}\n? <div class="\"article-list__title\"">\n? {% if article.if_featured %}\n? <i class="\"iconfont"></i>\n? {% endif %}\n? <a href="\"{{article.url}}\"">{{article.title}}</a>\n? </div>\n? {% endif %}\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n?\n?",
"modifiedTime": "2021-04-09T10:38:47.243Z",
"createdTime": "2021-04-09T10:38:47.243Z"
}
]
Get a single Custom Page
GET kb/customPages/{id}
-
Parameters:
No Parameters
-
Response:
-
Example
Sample Request:
curl https://api11.comm100.io/v4/kb/customPages/87a9aac0-1f99-eb11-a80f-00155d081c1b \
-X 'GET' \
-H 'Authorization: Bearer {access_token}' \
Response:
HTTP/1.1 200 OK
{
"id": "87a9aac0-1f99-eb11-a80f-00155d081c1b",
"title": "Sample Custom Page",
"kbId": "b2754e68-b380-4a61-9c5b-a9570f1a4fcc",
"status": "draft",
"customUrl": "sample-custom-page",
"body": "\n?\n?\n? \n? \n? \n? \n? \n? \n? \n? \n?\n?\n? <div class="\"header\"">\n? <div class="\"container\"">\n? <div class="\"header_logo\""><img src="\"/kb/resources/your_logo.png\""></div>\n? <div class="\"header__title\""><span>Find answers in our Knowledge Base</span></div>\n? <div class="\"header__search\"">\n? <input type="\"text\"" class="\"search-input" placeholder="\"Enter" autocomplete="\"off\"">\n? <i class="\"iconfont"></i>\n? </div>\n? </div>\n? </div>\n? <div class="\"content\"">\n? <div class="\"container\"">\n? <div class="\"breadcrumbs\"">\n? {{breadcrumbs}}\n? </div>\n? <div class="\"category-list\"">\n? {% for category in categories %}\n? <div class="\"category-list__item\"">\n? <div class="\"category-list__item__header\"">\n? <i class="\"iconfont"></i>\n? <div class="\"category-list__item__name\""><a href="\"{{category.url}}\"">{{category.name}}</a></div>\n? <i class="\"iconfont"></i>\n? </div>\n? <div class="\"category-list__item__content">\n? <div class="\"article-list\"">\n? {% for article in articles %}\n? {% if category.id == article.category_id %}\n? <div class="\"article-list__title\"">\n? {% if article.if_featured %}\n? <i class="\"iconfont"></i>\n? {% endif %}\n? <a href="\"{{article.url}}\"">{{article.title}}</a>\n? </div>\n? {% endif %}\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n?\n?",
"modifiedTime": "2021-04-09T10:38:47.243Z",
"createdTime": "2021-04-09T10:38:47.243Z"
}
Create a new Custom Page
POST kb/customPages
-
Parameters:
| Name | Type | in | Required | Description |
|---|---|---|---|---|
title |
string | body | yes | Title of the custom page. |
kbId |
guid | body | yes | Id of the knowledage base. |
status |
string | body | yes | Allowed values are "draft", "published". |
customUrl |
string | body | no | Custom url of the article. |
body |
string | body | no | Content of the custom page. You can pass both plaintext and base64 encode text. If the request containing plaintext is blocked by comm100 WAF, use base64 format. When using base64, add "data:text/plain;base64," before the content. |
-
Response:
-
Example
Sample Request:
curl https://api11.comm100.io/v4/kb/customPages \
-X 'POST' \
-H 'Authorization: Bearer {access_token}' \
-H 'Content-Type: application/json' \
-D '{"title":"Sample Custom Page","kbId":"b2754e68-b380-4a61-9c5b-a9570f1a4fcc","status":"draft","customUrl":"sample-custom-page","body":"\n?\n?\n? \n? \n? \n? \n? \n? \n? \n? \n?\n?\n? <div class="\"header\"">\n? <div class="\"container\"">\n? <div class="\"header_logo\""><img src="\"/kb/resources/your_logo.png\""></div>\n? <div class="\"header__title\""><span>Find answers in our Knowledge Base</span></div>\n? <div class="\"header__search\"">\n? <input type="\"text\"" class="\"search-input" placeholder="\"Enter" autocomplete="\"off\"">\n? <i class="\"iconfont"></i>\n? </div>\n? </div>\n? </div>\n? <div class="\"content\"">\n? <div class="\"container\"">\n? <div class="\"breadcrumbs\"">\n? {{breadcrumbs}}\n? </div>\n? <div class="\"category-list\"">\n? {% for category in categories %}\n? <div class="\"category-list__item\"">\n? <div class="\"category-list__item__header\"">\n? <i class="\"iconfont"></i>\n? <div class="\"category-list__item__name\""><a href="\"{{category.url}}\"">{{category.name}}</a></div>\n? <i class="\"iconfont"></i>\n? </div>\n? <div class="\"category-list__item__content">\n? <div class="\"article-list\"">\n? {% for article in articles %}\n? {% if category.id == article.category_id %}\n? <div class="\"article-list__title\"">\n? {% if article.if_featured %}\n? <i class="\"iconfont"></i>\n? {% endif %}\n? <a href="\"{{article.url}}\"">{{article.title}}</a>\n? </div>\n? {% endif %}\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n?\n?"}'
Response:
HTTP/1.1 201 Created
{
"id": "87a9aac0-1f99-eb11-a80f-00155d081c1b",
"title": "Sample Custom Page",
"kbId": "b2754e68-b380-4a61-9c5b-a9570f1a4fcc",
"status": "draft",
"customUrl": "sample-custom-page",
"body": "\n?\n?\n? \n? \n? \n? \n? \n? \n? \n? \n?\n?\n? <div class="\"header\"">\n? <div class="\"container\"">\n? <div class="\"header_logo\""><img src="\"/kb/resources/your_logo.png\""></div>\n? <div class="\"header__title\""><span>Find answers in our Knowledge Base</span></div>\n? <div class="\"header__search\"">\n? <input type="\"text\"" class="\"search-input" placeholder="\"Enter" autocomplete="\"off\"">\n? <i class="\"iconfont"></i>\n? </div>\n? </div>\n? </div>\n? <div class="\"content\"">\n? <div class="\"container\"">\n? <div class="\"breadcrumbs\"">\n? {{breadcrumbs}}\n? </div>\n? <div class="\"category-list\"">\n? {% for category in categories %}\n? <div class="\"category-list__item\"">\n? <div class="\"category-list__item__header\"">\n? <i class="\"iconfont"></i>\n? <div class="\"category-list__item__name\""><a href="\"{{category.url}}\"">{{category.name}}</a></div>\n? <i class="\"iconfont"></i>\n? </div>\n? <div class="\"category-list__item__content">\n? <div class="\"article-list\"">\n? {% for article in articles %}\n? {% if category.id == article.category_id %}\n? <div class="\"article-list__title\"">\n? {% if article.if_featured %}\n? <i class="\"iconfont"></i>\n? {% endif %}\n? <a href="\"{{article.url}}\"">{{article.title}}</a>\n? </div>\n? {% endif %}\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n?\n?",
"modifiedTime": "2021-04-09T10:38:47.243Z",
"createdTime": "2021-04-09T10:38:47.243Z"
}
Update the Custom Page
PUT kb/customPages/{id}
-
Parameters:
| Name | Type | in | Required | Description |
|---|---|---|---|---|
title |
string | body | yes | Title of the custom page. |
kbId |
guid | body | yes | Id of the knowledage base. |
status |
string | body | yes | Allowed values are "draft", "published". |
customUrl |
string | body | no | Custom url of the article. |
body |
string | body | no | Content of the custom page. You can pass both plaintext and base64 encode text. If the request containing plaintext is blocked by comm100 WAF, use base64 format. When using base64, add "data:text/plain;base64," before the content. |
-
Response:
-
Example
Sample Request:
curl https://api11.comm100.io/v4/kb/customPages/87a9aac0-1f99-eb11-a80f-00155d081c1b \
-X 'PUT' \
-H 'Authorization: Bearer {access_token}' \
-H 'Content-Type: application/json' \
-D '{"title":"Sample Custom Page","kbId":"b2754e68-b380-4a61-9c5b-a9570f1a4fcc","status":"draft","customUrl":"sample-custom-page","body":"\n?\n?\n? \n? \n? \n? \n? \n? \n? \n? \n?\n?\n? <div class="\"header\"">\n? <div class="\"container\"">\n? <div class="\"header_logo\""><img src="\"/kb/resources/your_logo.png\""></div>\n? <div class="\"header__title\""><span>Find answers in our Knowledge Base</span></div>\n? <div class="\"header__search\"">\n? <input type="\"text\"" class="\"search-input" placeholder="\"Enter" autocomplete="\"off\"">\n? <i class="\"iconfont"></i>\n? </div>\n? </div>\n? </div>\n? <div class="\"content\"">\n? <div class="\"container\"">\n? <div class="\"breadcrumbs\"">\n? {{breadcrumbs}}\n? </div>\n? <div class="\"category-list\"">\n? {% for category in categories %}\n? <div class="\"category-list__item\"">\n? <div class="\"category-list__item__header\"">\n? <i class="\"iconfont"></i>\n? <div class="\"category-list__item__name\""><a href="\"{{category.url}}\"">{{category.name}}</a></div>\n? <i class="\"iconfont"></i>\n? </div>\n? <div class="\"category-list__item__content">\n? <div class="\"article-list\"">\n? {% for article in articles %}\n? {% if category.id == article.category_id %}\n? <div class="\"article-list__title\"">\n? {% if article.if_featured %}\n? <i class="\"iconfont"></i>\n? {% endif %}\n? <a href="\"{{article.url}}\"">{{article.title}}</a>\n? </div>\n? {% endif %}\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n?\n?"}'
Response:
HTTP/1.1 200 OK
{
"id": "87a9aac0-1f99-eb11-a80f-00155d081c1b",
"title": "Sample Custom Page",
"kbId": "b2754e68-b380-4a61-9c5b-a9570f1a4fcc",
"status": "draft",
"customUrl": "sample-custom-page",
"body": "\n?\n?\n? \n? \n? \n? \n? \n? \n? \n? \n?\n?\n? <div class="\"header\"">\n? <div class="\"container\"">\n? <div class="\"header_logo\""><img src="\"/kb/resources/your_logo.png\""></div>\n? <div class="\"header__title\""><span>Find answers in our Knowledge Base</span></div>\n? <div class="\"header__search\"">\n? <input type="\"text\"" class="\"search-input" placeholder="\"Enter" autocomplete="\"off\"">\n? <i class="\"iconfont"></i>\n? </div>\n? </div>\n? </div>\n? <div class="\"content\"">\n? <div class="\"container\"">\n? <div class="\"breadcrumbs\"">\n? {{breadcrumbs}}\n? </div>\n? <div class="\"category-list\"">\n? {% for category in categories %}\n? <div class="\"category-list__item\"">\n? <div class="\"category-list__item__header\"">\n? <i class="\"iconfont"></i>\n? <div class="\"category-list__item__name\""><a href="\"{{category.url}}\"">{{category.name}}</a></div>\n? <i class="\"iconfont"></i>\n? </div>\n? <div class="\"category-list__item__content">\n? <div class="\"article-list\"">\n? {% for article in articles %}\n? {% if category.id == article.category_id %}\n? <div class="\"article-list__title\"">\n? {% if article.if_featured %}\n? <i class="\"iconfont"></i>\n? {% endif %}\n? <a href="\"{{article.url}}\"">{{article.title}}</a>\n? </div>\n? {% endif %}\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n? {% endfor %}\n? </div>\n? </div>\n? </div>\n?\n?",
"modifiedTime": "2021-04-09T10:38:47.243Z",
"createdTime": "2021-04-09T10:38:47.243Z"
}
Remove the Custom Page
DELETE kb/customPages/{id}
-
Parameters:
No Parameters
-
Response:
No Content
-
Example
Sample Request:
curl https://api11.comm100.io/v4/kb/customPages/87a9aac0-1f99-eb11-a80f-00155d081c1b \
-X 'DELETE' \
-H 'Authorization: Bearer {access_token}' \
Response:
HTTP/1.1 204 No Content