Gerar edições do briefing
Gera a edição de um dia sob demanda e preenche dias anteriores.
A edição do dia sai sozinha, uma vez por dia, a partir de uma hora configurável (padrão 4h em São Paulo). Estas duas rotas existem para quem precisa refazer uma edição ou preencher um período em que o briefing não rodou. Ambas chamam IA, podem levar vários segundos por dia gerado e exigem manage_settings.
Gerar uma edição
Gera a edição de uma data. O corpo é opcional: sem corpo, gera a de hoje. Com force verdadeiro (o padrão), uma edição que já exista para a data é apagada e refeita; a promoção sugerida da edição antiga é removida se ainda estiver desativada.
/api/v1/admin/intelligence/venddor-pulse/runAdminGerar uma edição
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador (veja Tokens).Content-Typestringobrigatórioapplication/json.Corpo da requisição
day_typestringmonth_startmonth_endmon_plantue_market_intelmidweek_followupthu_hidden_opportunitiesfri_wrapweekendas_ofstringAAAA-MM-DD. Datas passadas marcam a edição como retroativa. Sem valor, hoje.forcebooleanpadrão: truefalse devolve a edição existente sem refazer.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/intelligence/venddor-pulse/run" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"as_of": "2026-10-09",
"force": false
}'Resposta
{
"id": "5f68c2d5-ee3d-439c-a0f9-1b7737878ce4",
"analysis_date": "2026-10-11",
"audience": "admin",
"day_type": "weekend",
"day_type_label": "Mensagem de Fim de Semana",
"topics_covered": ["revenue_month_progress", "products_stock_critical"],
"greeting": "**Oi! Só uma passadinha rápida no fim de semana**",
"formatted_message": "Oi! A Camisa do Flamengo foi o carro-chefe da semana, com 2 unidades vendidas...",
"supporting_facts": ["Receita dos últimos 7 dias: R$ 585,87."],
"news_refs": [{ "title": "Flamengo garrafa com menor preço", "url": "https://exemplo.com.br/noticia" }],
"generation_status": "completed",
"is_backfill": false,
"created_at": "2026-10-11T07:00:12Z",
"is_read": false
}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":["manage_settings"]} |
| 400 | day_type desconhecido, as_of fora do formato ou corpo ilegível. | {"error":"unknown day_type: zzz"} ou {"error":"invalid as_of date \"11/10/2026\" (expected YYYY-MM-DD)"} |
| 500 | Falha na geração (por exemplo, nenhum provedor de IA). | {"error":"intelligence: no AI provider configured"} |
Gerar dias anteriores
Gera, em sequência, as edições dos últimos dias até hoje, sempre refazendo as que existirem. Os dias passados saem marcados como retroativos e dispensam a comparação de preços da concorrência.
/api/v1/admin/intelligence/venddor-pulse/backfillAdminGerar dias anteriores
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador (veja Tokens).Parâmetros de consulta
daysintegerpadrão: 7Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/intelligence/venddor-pulse/backfill?days=3" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"insights": [
{
"id": "5f68c2d5-ee3d-439c-a0f9-1b7737878ce4",
"analysis_date": "2026-10-11",
"audience": "admin",
"day_type": "weekend",
"day_type_label": "Mensagem de Fim de Semana",
"topics_covered": ["revenue_month_progress", "products_stock_critical"],
"greeting": "**Oi! Só uma passadinha rápida no fim de semana**",
"formatted_message": "Oi! A Camisa do Flamengo foi o carro-chefe da semana, com 2 unidades vendidas...",
"supporting_facts": ["Receita dos últimos 7 dias: R$ 585,87."],
"news_refs": [{ "title": "Flamengo garrafa com menor preço", "url": "https://exemplo.com.br/noticia" }],
"generation_status": "completed",
"is_backfill": false,
"created_at": "2026-10-11T07:00:12Z",
"is_read": false
}
],
"total": 1
}Campos da resposta
insightsarraytotalintegerErros
| 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":["manage_settings"]} |
| 500 | Nenhum dia pôde ser gerado. | {"error":"..."} |