curl -X POST "https://api.scanova.io/page-template/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"name": "My Landing Page",
"description": "A custom page.",
"blocks_json": [{ "type": "hero" }],
"theme": 7,
"accent_color": "#0077be",
"preview_bg": "#f0f8ff"
}'
{
"id": 9,
"name": "My Landing Page",
"slug": "user-42-my-landing-page-d4e5f6",
"description": "A custom page.",
"category": null,
"theme": {
"id": 7,
"name": "Ocean Breeze",
"slug": "user-42-ocean-breeze-a1b2c3",
"description": "A cool blue palette.",
"config_json": { "color": { "accent": "#0077be", "background": "#f0f8ff" } },
"schema_version": 2,
"category_hints": ["website-url"],
"thumbnail_url": "https://cdn.scanova.io/themes/7/thumb.png",
"is_system": false,
"is_premium": false,
"order": 0
},
"blocks_json": [{ "type": "hero" }],
"filter_tags": [],
"accent_color": "#0077be",
"preview_bg": "#f0f8ff",
"thumbnail_url": null,
"is_premium": false,
"is_system": false,
"is_favourited": false,
"order": 0
}
Themes & Page Templates
Create a page template
POST /page-template/
POST
/
page-template
/
curl -X POST "https://api.scanova.io/page-template/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"name": "My Landing Page",
"description": "A custom page.",
"blocks_json": [{ "type": "hero" }],
"theme": 7,
"accent_color": "#0077be",
"preview_bg": "#f0f8ff"
}'
{
"id": 9,
"name": "My Landing Page",
"slug": "user-42-my-landing-page-d4e5f6",
"description": "A custom page.",
"category": null,
"theme": {
"id": 7,
"name": "Ocean Breeze",
"slug": "user-42-ocean-breeze-a1b2c3",
"description": "A cool blue palette.",
"config_json": { "color": { "accent": "#0077be", "background": "#f0f8ff" } },
"schema_version": 2,
"category_hints": ["website-url"],
"thumbnail_url": "https://cdn.scanova.io/themes/7/thumb.png",
"is_system": false,
"is_premium": false,
"order": 0
},
"blocks_json": [{ "type": "hero" }],
"filter_tags": [],
"accent_color": "#0077be",
"preview_bg": "#f0f8ff",
"thumbnail_url": null,
"is_premium": false,
"is_system": false,
"is_favourited": false,
"order": 0
}
Saves a new page template, on the Management API host (
api.scanova.io), authenticated with your raw Management API key.
POST https://api.scanova.io/page-template/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
string
required
Template name. Blank or whitespace-only names are rejected.
string
Template description.
array
required
The page’s block content — either a list of blocks, or a dict containing a
pages key. Any other shape is rejected.integer
A theme id to associate with this template. If the theme isn’t a system theme, it must belong to you.
string
Accent color, used as a fallback when the linked theme doesn’t resolve one live.
string
Preview background color, same fallback role as
accent_color.curl -X POST "https://api.scanova.io/page-template/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"name": "My Landing Page",
"description": "A custom page.",
"blocks_json": [{ "type": "hero" }],
"theme": 7,
"accent_color": "#0077be",
"preview_bg": "#f0f8ff"
}'
{
"id": 9,
"name": "My Landing Page",
"slug": "user-42-my-landing-page-d4e5f6",
"description": "A custom page.",
"category": null,
"theme": {
"id": 7,
"name": "Ocean Breeze",
"slug": "user-42-ocean-breeze-a1b2c3",
"description": "A cool blue palette.",
"config_json": { "color": { "accent": "#0077be", "background": "#f0f8ff" } },
"schema_version": 2,
"category_hints": ["website-url"],
"thumbnail_url": "https://cdn.scanova.io/themes/7/thumb.png",
"is_system": false,
"is_premium": false,
"order": 0
},
"blocks_json": [{ "type": "hero" }],
"filter_tags": [],
"accent_color": "#0077be",
"preview_bg": "#f0f8ff",
"thumbnail_url": null,
"is_premium": false,
"is_system": false,
"is_favourited": false,
"order": 0
}
slug is generated server-side. A thumbnail is generated asynchronously after creation — thumbnail_url starts null and fills in once that finishes.
400 for a blank name, a malformed blocks_json, or a theme that isn’t a system theme and doesn’t belong to you.
Related
- List page templates — see saved templates (
?mine=true). - Update a page template — edit an existing one.
- Create a theme — create a theme to link via
theme. - Management API overview — the auth scheme and quota rules that apply to this endpoint.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.
Response
Template created.
Was this page helpful?