Galeria de temas
Lista os temas prontos da plataforma, lê e pré-visualiza um tema e instala um tema na loja, trocando cores e fontes.
A galeria de temas reúne conjuntos prontos de cores, fontes e medidas ("Azul Corporativo", "Minimalista", "Laranja Energia"...). Instalar um tema aplica esse conjunto à loja inteira numa chamada, sem editar cor por cor. A loja também pode ajustar o tema à mão (rotas /theme), e cada instalação guarda o tema anterior no histórico, de onde dá para restaurar.
Todas exigem o privilégio manage_theme.
Listar os temas
/api/v1/admin/themes/marketplaceAdminListar os temas da galeria
Devolve os temas ativos, opcionalmente de uma categoria.
Parâmetros de consulta
categorystringbusiness, modern, colorful...). Uma categoria sem temas devolve lista vazia.curl "$BASE_URL/api/v1/admin/themes/marketplace?category=business" \
-H "Authorization: Bearer $TOKEN"{
"templates": [
{
"id": "1ba884c2-fe61-4876-b3e2-6a8676b969c8",
"name": "Azul Corporativo",
"slug": "azul-corporativo",
"description": "Azul profissional com tipografia limpa. Perfeito para B2B, corporativo e serviços empresariais.",
"category": "business",
"thumbnail_url": "",
"preview_url": "",
"css_variables": {
"primary_color": "#1e40af",
"secondary_color": "#1e3a8a",
"accent_color": "#0891b2",
"bg_color": "#ffffff",
"text_color": "#1e293b",
"border_radius": "6px",
"max_width": "1280px",
"header_bg_color": "#1e3a8a",
"footer_bg_color": "#0f172a"
},
"font_family_heading": "Inter, sans-serif",
"font_family_body": "Inter, sans-serif",
"is_premium": false,
"is_active": true,
"author": "Venddor",
"installs": 2,
"created_at": "2026-04-29T09:19:50.522393Z"
}
],
"total": 1
}Campos da resposta
templates[].iduuidtemplates[].namestringtemplates[].slugstringtemplates[].descriptionstringtemplates[].categorystringbusiness, modern, colorful...).templates[].thumbnail_urlstringtemplates[].preview_urlstringtemplates[].css_variablesobjecttemplates[].font_family_headingstringtemplates[].font_family_bodystringtemplates[].is_premiumbooleantemplates[].is_activebooleantemplates[].authorstringtemplates[].installsintegertemplates[].created_atstringtotalintegerLer e pré-visualizar um tema
/api/v1/admin/themes/marketplace/{slug}AdminLer um tema pelo slug
Devolve um tema, no formato de cada item da lista.
Parâmetros de caminho
slugstringobrigatórioazul-corporativo./api/v1/admin/themes/marketplace/{slug}/previewAdminPré-visualizar um tema
Hoje devolve os mesmos dados da leitura do tema (variáveis e fontes). Serve para o painel aplicar as variáveis numa pré-visualização local antes de instalar. Não muda nada na loja.
Parâmetros de caminho
slugstringobrigatóriocurl "$BASE_URL/api/v1/admin/themes/marketplace/azul-corporativo/preview" \
-H "Authorization: Bearer $TOKEN"Instalar um tema
/api/v1/admin/themes/marketplace/{slug}/installAdminAplicar um tema da galeria à loja
Troca na hora o visual da loja: cores, fontes, bordas e medidas passam a ser as do tema. Antes de aplicar, a plataforma guarda o tema atual no histórico (para restaurar), remove as cores personalizadas que ficariam por cima e contabiliza uma instalação. O tema instalado também vira o tema ativo da vitrine (é criado com o nome do modelo se ainda não existir). Devolve a configuração de tema resultante. Sem corpo.
Parâmetros de caminho
slugstringobrigatóriocurl -X POST "$BASE_URL/api/v1/admin/themes/marketplace/azul-corporativo/install" \
-H "Authorization: Bearer $TOKEN"{
"id": "20299fa2-f761-434f-aa54-811e242f65a3",
"store_name": "Loja Exemplo",
"primary_color": "#1e40af",
"secondary_color": "#1e3a8a",
"accent_color": "#0891b2",
"bg_color": "#ffffff",
"text_color": "#1e293b",
"header_bg_color": "#1e3a8a",
"footer_bg_color": "#0f172a",
"font_family": "Inter, sans-serif",
"heading_font": "Inter, sans-serif",
"border_radius": "6px",
"max_width": "1280px",
"footer_columns": 4,
"updated_at": "2026-10-11T22:00:00Z"
}Campos da resposta
iduuidstore_namestringprimary_colorstringsecondary_colorstringaccent_colorstringbg_colorstringtext_colorstringheader_bg_colorstringfooter_bg_colorstringfont_familystringheading_fontstringborder_radiusstringmax_widthstringfooter_columnsintegerupdated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token ou token expirado. | {"error":"invalid or expired token"} |
| 403 | Sem manage_theme. | {"error":"insufficient privileges","required":"manage_theme"} |
| 404 | Slug que não existe. | {"error":"theme template not found","detail":"theme template not found: nope"} |
| 500 | Falha ao aplicar. | {"error":"failed to install theme","detail":"..."} |