curl -X PATCH "https://api.scanova.io/theme/user-42-ocean-breeze-a1b2c3/update/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"config_json": { "color": { "accent": "#005f99" } },
"clear_conflicting_overrides": true
}'
{
"id": 7,
"name": "Ocean Breeze",
"slug": "user-42-ocean-breeze-a1b2c3",
"description": "A cool blue palette.",
"config_json": { "color": { "accent": "#005f99", "background": "#f0f8ff" }, "font": { "heading": "Inter" } },
"schema_version": 2,
"category_hints": ["website-url", "vcard"],
"thumbnail_url": "https://cdn.scanova.io/themes/7/thumb.png",
"is_system": false,
"is_premium": false,
"order": 0
}
Themes & Page Templates
Update a theme
PATCH /theme//update/
PATCH
/
theme
/
{slug}
/
update
/
curl -X PATCH "https://api.scanova.io/theme/user-42-ocean-breeze-a1b2c3/update/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"config_json": { "color": { "accent": "#005f99" } },
"clear_conflicting_overrides": true
}'
{
"id": 7,
"name": "Ocean Breeze",
"slug": "user-42-ocean-breeze-a1b2c3",
"description": "A cool blue palette.",
"config_json": { "color": { "accent": "#005f99", "background": "#f0f8ff" }, "font": { "heading": "Inter" } },
"schema_version": 2,
"category_hints": ["website-url", "vcard"],
"thumbnail_url": "https://cdn.scanova.io/themes/7/thumb.png",
"is_system": false,
"is_premium": false,
"order": 0
}
Updates a theme owned by this account, on the Management API host (
Only
api.scanova.io), authenticated with your raw Management API key.
PATCH https://api.scanova.io/theme/{slug}/update/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
string
required
The theme’s
slug.string
New theme name.
object
New design tokens, following the ThemeConfigV2 schema.
boolean
When
true, strips per-QR theme_overrides that conflict with the fields you’re changing from every QR Code currently using this theme — so an edit here doesn’t leave stale per-QR overrides shadowing it.curl -X PATCH "https://api.scanova.io/theme/user-42-ocean-breeze-a1b2c3/update/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"config_json": { "color": { "accent": "#005f99" } },
"clear_conflicting_overrides": true
}'
{
"id": 7,
"name": "Ocean Breeze",
"slug": "user-42-ocean-breeze-a1b2c3",
"description": "A cool blue palette.",
"config_json": { "color": { "accent": "#005f99", "background": "#f0f8ff" }, "font": { "heading": "Inter" } },
"schema_version": 2,
"category_hints": ["website-url", "vcard"],
"thumbnail_url": "https://cdn.scanova.io/themes/7/thumb.png",
"is_system": false,
"is_premium": false,
"order": 0
}
PATCH is supported (no PUT). Only your own non-system themes are writable here — a system theme or another account’s theme returns 404, the same as if it didn’t exist, even though Retrieve a theme can read it. 400 if config_json fails schema validation.
Related
- Retrieve a theme — view before updating.
- Get theme usage counts — check what’s using this theme before editing.
- 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.
Path Parameters
Response
Theme updated.
Was this page helpful?