Banners por IA
Gera uma imagem de banner a partir de uma descrição, opcionalmente cria o rascunho do banner, e lista o histórico com o custo.
A VI desenha o banner (título e botão renderizados na própria imagem) e guarda a imagem na loja. Cada geração tem custo, registrado em centavos. Com create_banner_draft, a plataforma também cria um banner inativo com a imagem, pronto para o administrador revisar e ativar.
Gerar um banner
Gera a imagem e a devolve já guardada. A chamada só volta quando a imagem está pronta, o que pode levar dezenas de segundos.
/api/v1/admin/intelligence/banners/generateAdminGerar um banner
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador (veja Tokens).Content-Typestringobrigatórioapplication/json.Corpo da requisição
promptstringobrigatóriosizestringpadrão: 1536x1024LARGURAxALTURA em pixels, por exemplo 1536x1024. A plataforma ajusta para múltiplos de 16, proporção máxima 3:1 e um limite de área; o padrão é 1536x1024.qualitystringlowmediumhighxhighmaxautohdstandardhd equivale a high; standard ou vazio usa o padrão da loja.stylestringpurposestringpadrão: bannerbanner.create_banner_draftbooleanpadrão: falsetrue cria também um banner inativo com a imagem.banner_namestringAI: mais o início da descrição (até 200 caracteres).banner_alt_textstringchannelsarraysitevenddor_appclient_appsite, venddor_app, client_app. Sem valor, em todos.devicesarraymobiletabletdesktopmobile, tablet, desktop. Sem valor, todos.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/intelligence/banners/generate" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Banner horizontal de topo, campanha de Natal, título \"Natal com 20% OFF\", botão \"Ver campanha\"",
"size": "1536x512",
"create_banner_draft": true,
"banner_name": "Natal 2026",
"channels": [
"site"
],
"devices": [
"desktop",
"mobile"
]
}'Resposta
{
"id": "52587fc7-5efe-493a-b8ac-466465b5916c",
"user_id": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc",
"purpose": "banner",
"provider": "image-generator",
"prompt": "Banner horizontal de topo, campanha de Natal, tons de vermelho e dourado",
"image_url": "",
"storage_url": "/uploads/dfe2555e-bfd0-41a8-9fa1-9586999f3798/intelligence/ai-banner-8c473118b9337e8b.png",
"banner_id": "0f9e8d7c-6b5a-4c3b-a291-807f6e5d4c3b",
"cost_centavos": 94,
"created_at": "2026-09-09T20:22:36.625538Z"
}Campos da resposta
iduuiduser_iduuidpurposestringbanner por padrão).providerstringpromptstringrevised_promptstringimage_urlstringstorage_url.storage_urlstringcost_centavosintegercost_desconhecido.cost_desconhecidobooleantrue quando o custo não é conhecido: nesse caso cost_centavos 0 não significa de graça.generation_idstringbanner_iduuidcreated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} ou {"error":"invalid or expired token"} |
| 403 | O administrador não tem nenhum dos privilégios exigidos. | {"error":"insufficient privileges","privilege_required_any":["intelligence_use_chat","intelligence_generate_images","manage_settings","manage_content"]} |
| 400 | prompt vazio ou corpo ilegível. | {"error":"prompt is required"} |
| 403 | Geração de banners desligada na loja. | {"error":"__module_disabled__","detail":"enable_ai_banner_generation is OFF"} |
| 500 | Sem gerador de imagem configurado, ou falha na geração. | {"error":"intelligence: ..."} |
Histórico
Lista as imagens geradas por quem chama, da mais nova para a mais antiga, com o custo total. Com generation_id, devolve as linhas daquela geração, de qualquer usuário, para conferir a fatura do gerador.
/api/v1/admin/intelligence/banners/historyAdminHistórico de banners gerados
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador (veja Tokens).Parâmetros de consulta
limitintegerpadrão: 50generation_idstringlimit e o filtro por usuário são ignorados.Exemplo de requisição
curl "$BASE_URL/api/v1/admin/intelligence/banners/history?limit=10" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"images": [
{
"id": "52587fc7-5efe-493a-b8ac-466465b5916c",
"user_id": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc",
"purpose": "banner",
"provider": "image-generator",
"prompt": "Banner horizontal de topo, campanha de Natal, tons de vermelho e dourado",
"image_url": "",
"storage_url": "/uploads/dfe2555e-bfd0-41a8-9fa1-9586999f3798/intelligence/ai-banner-8c473118b9337e8b.png",
"cost_centavos": 94,
"created_at": "2026-09-09T20:22:36.625538Z"
}
],
"total": 1,
"total_cost_centavos": 94
}Campos da resposta
imagesarraytotalintegertotal_cost_centavosintegercost_centavos das linhas devolvidas. Linhas com cost_desconhecido entram como 0: o total pode ser menor que o real.Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} ou {"error":"invalid or expired token"} |
| 403 | O administrador não tem nenhum dos privilégios exigidos. | {"error":"insufficient privileges","privilege_required_any":["intelligence_use_chat","intelligence_generate_images","manage_settings","manage_content"]} |