Modelos de tema
Lista, consulta, aplica, exclui e semeia os modelos de tema prontos do AI Builder.
Um modelo é uma proposta de tema salva (cores, fontes, ajustes, e o que mais a IA tenha proposto) que pode ser aplicada sem nova conversa. Há modelos de fábrica (como "Elegant Fashion" e "Modern Minimal"), criados por semeadura, e os que o administrador salvou de uma sessão.
Listar modelos
Devolve todos os modelos da loja, públicos ou não, do mais novo ao mais antigo.
/api/v1/admin/ai-builder/templatesAdminListar todos os modelos
Requer o privilégio manage_theme.
Exemplo de requisição
curl -X GET "$BASE_URL/api/v1/admin/ai-builder/templates" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"templates": [
{
"id": "01f6a13e-841c-483b-b228-ca8df1200b5f",
"name": "Elegant Fashion",
"description": "Refined cream and charcoal palette with Cormorant Garamond headings and Lato body text.",
"category": "fashion",
"tags": [
"fashion",
"elegant"
],
"thumbnail_url": "",
"output_json": {
"theme": {
"primary_color": "#1c1917",
"font_family": "Lato",
"heading_font": "Cormorant Garamond"
}
},
"is_public": true,
"created_by": "",
"created_at": "2026-07-01T10:00:00Z"
}
]
}Campos da resposta
templatesarrayModelos.
iduuidnamestringdescriptionstringcategorystringtagsstring[]thumbnail_urlstringoutput_jsonobjectcurrent_output da sessão).is_publicbooleancreated_bystringcreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_theme. | {"error":"insufficient privileges","required":"manage_theme"} |
| 500 | Falha de banco de dados ou do provedor de IA. | {"error":"failed to list templates","detail":"..."} |
Listar modelos públicos
Devolve só os modelos com is_public: true. Apesar do nome, a rota exige o mesmo token de administrador das demais.
/api/v1/admin/ai-builder/templates/publicAdminListar só os modelos públicos
Requer o privilégio manage_theme.
Exemplo de requisição
curl -X GET "$BASE_URL/api/v1/admin/ai-builder/templates/public" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"templates": [
{
"id": "01f6a13e-841c-483b-b228-ca8df1200b5f",
"name": "Elegant Fashion",
"description": "Refined cream and charcoal palette with Cormorant Garamond headings and Lato body text.",
"category": "fashion",
"tags": [
"fashion",
"elegant"
],
"thumbnail_url": "",
"output_json": {
"theme": {
"primary_color": "#1c1917",
"font_family": "Lato",
"heading_font": "Cormorant Garamond"
}
},
"is_public": true,
"created_by": "",
"created_at": "2026-07-01T10:00:00Z"
}
]
}Campos da resposta
templatesarrayModelos públicos.
iduuidnamestringdescriptionstringcategorystringtagsstring[]thumbnail_urlstringoutput_jsonobjectcurrent_output da sessão).is_publicbooleancreated_bystringcreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_theme. | {"error":"insufficient privileges","required":"manage_theme"} |
| 500 | Falha de banco de dados ou do provedor de IA. | {"error":"failed to list public templates","detail":"..."} |
Obter modelo
Devolve o modelo com a proposta completa em output_json.
/api/v1/admin/ai-builder/templates/{id}AdminObter um modelo
Requer o privilégio manage_theme.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl -X GET "$BASE_URL/api/v1/admin/ai-builder/templates/01f6a13e-841c-483b-b228-ca8df1200b5f" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "01f6a13e-841c-483b-b228-ca8df1200b5f",
"name": "Elegant Fashion",
"description": "Refined cream and charcoal palette with Cormorant Garamond headings and Lato body text.",
"category": "fashion",
"tags": [
"fashion",
"elegant"
],
"thumbnail_url": "",
"output_json": {
"theme": {
"primary_color": "#1c1917",
"font_family": "Lato",
"heading_font": "Cormorant Garamond"
}
},
"is_public": true,
"created_by": "",
"created_at": "2026-07-01T10:00:00Z"
}Campos da resposta
iduuidnamestringdescriptionstringcategorystringtagsstring[]thumbnail_urlstringoutput_jsonobjectcurrent_output da sessão).is_publicbooleancreated_bystringcreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_theme. | {"error":"insufficient privileges","required":"manage_theme"} |
| 404 | Modelo não existe. | {"error":"template not found"} |
| 500 | O id do caminho não é um UUID. A rota não valida antes: devolve 500 com a mensagem do banco, em português. | {"error":"failed to get template","detail":"o valor \"xx\" não é um uuid válido. Envie o identificador completo, com os 36 caracteres e os hífens. Corrija o campo e reenvie."} |
Excluir modelo
Remove o modelo. Quem já o aplicou não é afetado.
/api/v1/admin/ai-builder/templates/{id}AdminExcluir um modelo
Requer o privilégio manage_theme.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl -X DELETE "$BASE_URL/api/v1/admin/ai-builder/templates/01f6a13e-841c-483b-b228-ca8df1200b5f" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"status": "deleted"
}Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_theme. | {"error":"insufficient privileges","required":"manage_theme"} |
| 404 | Modelo não existe. | {"error":"template not found"} |
| 500 | O id do caminho não é um UUID. A rota não valida antes: devolve 500 com a mensagem do banco, em português. | {"error":"failed to delete template","detail":"o valor \"xx\" não é um uuid válido. Envie o identificador completo, com os 36 caracteres e os hífens. Corrija o campo e reenvie."} |
Aplicar modelo
Aplica a proposta do modelo à loja, com os mesmos efeitos de aplicar uma sessão, mas sem guardar retrato do tema anterior: não há como desfazer. Sem corpo.
/api/v1/admin/ai-builder/templates/{id}/applyAdminAplicar um modelo à loja
Requer o privilégio manage_theme.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/ai-builder/templates/01f6a13e-841c-483b-b228-ca8df1200b5f/apply" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"status": "applied"
}Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O modelo não tem proposta (template has no output to apply). | {"error":"template has no output to apply"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_theme. | {"error":"insufficient privileges","required":"manage_theme"} |
| 404 | Modelo não existe. | {"error":"template not found"} |
| 500 | Falha de banco de dados ou do provedor de IA. | {"error":"failed to apply template","detail":"..."} |
Semear modelos de fábrica
Insere os modelos de fábrica que ainda não existem e informa quantos foram inseridos. Pode ser repetido sem criar duplicatas. Sem corpo.
/api/v1/admin/ai-builder/templates/seedAdminCriar os modelos de fábrica
Requer o privilégio manage_theme.
Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/ai-builder/templates/seed" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"status": "seeded",
"inserted": 0
}Campos da resposta
statusstringseeded.insertedintegerErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_theme. | {"error":"insufficient privileges","required":"manage_theme"} |
| 500 | Falha de banco de dados ou do provedor de IA. | {"error":"failed to seed templates","detail":"..."} |