# Site themes
These endpoints will let you manage your site's installed themes. A theme is simply a set of files that provides the structure, look, and feel of your knowledge base sites. Each site may have their own set of themes.
# The theme object
id integer
The system-generated ID of the theme
name string
The name of the theme.
is_active boolean
Whether the theme is active (i.e., whether it is the site's current theme).
preview_url string
[DEPRECATED] A unique URL preview.
iframe_preview_url string
[DEPRECATED] A unique URL preview designed to be used for iframes.
update_available boolean
Whether an update is available for a first-party theme.
created_at string
The timestamp when the theme was created.
updated_at string
The timestamp when the theme was last updated.
# The theme object
{
"id": 1,
"name": "My first theme",
"is_active": true,
"preview_url": "https://...",
"iframe_preview_url": "https://...",
"update_available": false,
"created_at": "2019-06-01T16:12:25+00:00",
"updated_at": "2019-06-01T16:12:25+00:00"
}
# Retrieve a theme
# Sample request
curl https://www.yourdomain.com/api/v1/sites/1/themes/1 \
-H "Accept: application/json" \
-H "Authorization: Bearer <access-token>" \
-G
# Sample successful response
{
"data": {
"id": 1,
"name": "My first theme",
"is_active": true,
"preview_url": "https://...",
"iframe_preview_url": "https://...",
"update_available": false,
"created_at": "2019-06-01T16:12:25+00:00",
"updated_at": "2019-06-01T16:12:25+00:00"
}
}
# Create a theme
This endpoint lets you easily create themes with a default theme structure, layout, and design, so you do not have to start from scratch when customizing your site's look and feel.
# Sample request
curl https://www.yourdomain.com/api/v1/sites/1/themes \
--request POST \
-H "Accept: application/json" \
-H "Authorization: Bearer <access-token>" \
-d name="My custom theme"
# Sample successful response
{
"data": {
"id": 1,
"name": "My custom theme",
"is_active": true,
"preview_url": "https://...",
"iframe_preview_url": "https://...",
"update_available": false,
"created_at": "2019-06-01T16:12:25+00:00",
"updated_at": "2019-06-01T16:12:25+00:00"
}
}
# Delete a theme
# Sample request
curl https://www.yourdomain.com/api/v1/sites/1/themes/1 \
--request DELETE \
-H "Accept: application/json" \
-H "Authorization: Bearer <access-token>"
If successful, the above request will return an empty response with 204
HTTP status code.
# List all themes
# Sample request
curl https://www.yourdomain.com/api/v1/sites/1/themes \
-H "Accept: application/json" \
-H "Authorization: Bearer <access-token>" \
-G
# Sample successful response
{
"data": [
{
"id": 1,
"name": "My first theme",
"is_active": true,
"preview_url": "https://...",
"iframe_preview_url": "https://...",
"update_available": false,
"created_at": "2019-06-01T16:12:25+00:00",
"updated_at": "2019-06-01T16:12:25+00:00"
},
{...}
]
}
# Apply a pending update to a theme
Updates are released periodically, each update may contain bug fixes and minor enhancements to the overall look and feel of your knowledge base site. Updates are only released for first-party themes; themes that you have uploaded will not receive updates, even when those themes are based on first-party themes.
An update will override any custom change made to the theme's code. If you made changes to a first-party theme (by using Theme Kit, for example), keep in mind that updating your theme will override all custom changes.
# Sample request
curl https://www.yourdomain.com/api/v1/sites/1/themes/1/update \
--request POST \
-H "Accept: application/json" \
-H "Authorization: Bearer <access-token>"
# Sample successful response
{
"data": {
"id": 1,
"name": "My first theme",
"is_active": true,
"preview_url": "https://...",
"iframe_preview_url": "https://...",
"update_available": false,
"created_at": "2019-06-01T16:12:25+00:00",
"updated_at": "2019-06-01T16:12:25+00:00"
}
}
# Upload a theme
zip file required
The theme's zip file to be uploaded. 30MB max.
# Sample request
curl https://www.yourdomain.com/api/v1/sites/1/themes/upload \
--request POST \
-H "Accept: application/json" \
-H "Authorization: Bearer <access-token>" \
-F "zip=@/path/to/ModernTheme.zip"
# Sample successful response
{
"data": {
"id": 1,
"name": "ModernTheme",
"is_active": false,
"preview_url": "https://...",
"iframe_preview_url": "https://...",
"update_available": false,
"created_at": "2019-06-01T16:12:25+00:00",
"updated_at": "2019-06-01T16:12:25+00:00"
}
}