Busca por sentido
Procura produtos e clientes pelo significado do texto e reconstrói os índices dessas buscas.
A busca por sentido acha "tênis de corrida leve" mesmo que nenhum produto tenha exatamente essas palavras. Quando o índice não cobre tudo, a plataforma completa o resultado com uma busca por texto simples; o campo source de cada resultado diz de qual veio. Há uma busca de produtos e outra de clientes, cada uma com a sua rota de reindexação.
Buscar produtos
Devolve os produtos mais parecidos com o texto, com preço em centavos e um índice de semelhança. Se o recurso estiver desligado, devolve lista vazia (não um erro). Um administrador de vendedor (user_type vendor) só vê produtos do próprio vendedor.
/api/v1/admin/intelligence/search/productsAdminBuscar produtos por sentido
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador (veja Tokens).Parâmetros de consulta
qstringobrigatóriolimitintegerpadrão: 20vendor_iduuidExemplo de requisição
curl "$BASE_URL/api/v1/admin/intelligence/search/products?q=camisa&limit=5" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"count": 1,
"hits": [
{
"product_id": "22fbd12a-1b6e-41ea-a84f-4d9cf06c8766",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"name": "Camisa do Flamengo Masculina I 26 Adidas",
"sku": "FLA-I-26",
"price": 30000,
"status": "A",
"similarity": 0.6,
"source": "ilike"
}
],
"source": "ilike",
"took_ms": 577
}Campos da resposta
hits[].product_iduuidhits[].vendor_iduuidhits[].namestringhits[].skustringhits[].priceintegerhits[].statusstringA ativo).hits[].similaritynumberhits[].sourcestringvectorilikecountintegersourcestringempty se não houve nenhum.took_msintegerErros
| 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","view_catalog","manage_catalog"]} |
| 400 | q ausente. | {"error":"query parameter 'q' is required"} |
| 500 | Falha na busca. | {"error":"search failed: ..."} |
Reindexar produtos
Recalcula o índice de busca de todos os produtos. Por padrão não espera: responde 202 e roda em segundo plano. Com wait verdadeiro, espera terminar e devolve as contagens.
/api/v1/admin/intelligence/search/products/reindexAdminReindexar produtos
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador (veja Tokens).Parâmetros de consulta
waitstring1true1 ou true para esperar. Também aceito como wait: true no corpo JSON.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/intelligence/search/products/reindex?wait=true" \
-H "Authorization: Bearer $TOKEN"Resposta
{ "status": "started" }{ "status": "completed", "indexed": 1240, "skipped": 3 }Campos da resposta
statusstringstarted ou completed.indexedintegerwait.skippedintegerwait.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_catalog","manage_settings"]} |
| 500 | Falha na reindexação (com wait). | {"error":"reindex failed: ..."} |
Buscar clientes
Procura clientes pelo texto (nome, e-mail, perfil de compra) e devolve gasto total e número de pedidos de cada um.
/api/v1/admin/intelligence/search/customersAdminBuscar clientes por sentido
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador (veja Tokens).Parâmetros de consulta
qstringobrigatóriolimitintegerpadrão: 10Exemplo de requisição
curl "$BASE_URL/api/v1/admin/intelligence/search/customers?q=maria&limit=5" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"matches": [
{
"user_id": "b9d60dee-7c9e-4245-8340-490b568da908",
"email": "maria.pinto@example.com",
"full_name": "Maria Pinto",
"similarity": 0,
"indexed_at": "0001-01-01T00:00:00Z",
"lifetime_spend_centavos": 872160,
"order_count": 12,
"last_order_at": "2026-08-31T11:25:13.98218Z"
}
],
"total": 1
}Campos da resposta
matches[].user_iduuidmatches[].emailstringmatches[].full_namestringmatches[].person_typestringPF ou PJ. Pode faltar.matches[].trade_namestringmatches[].similaritynumbermatches[].lifetime_spend_centavosintegermatches[].order_countintegermatches[].last_order_atstringtotalintegerErros
| 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":["view_users","manage_users"]} |
| 400 | q ausente. | {"error":"q parameter required"} |
| 503 | Recurso desligado, sem provedor de IA ou sem a extensão de busca no banco. | {"error":"intelligence: vector customer search is disabled ..."} |
Reindexar clientes
Recalcula o índice de busca de todos os clientes e espera terminar antes de responder.
/api/v1/admin/intelligence/search/customers/reindexAdminReindexar clientes
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador (veja Tokens).Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/intelligence/search/customers/reindex" \
-H "Authorization: Bearer $TOKEN"Resposta
{ "indexed": 5230, "failed": 0 }Campos da resposta
indexedintegerfailedintegerErros
| 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_users","manage_settings"]} |
| 503 | Mesmas condições da busca. | {"error":"intelligence: ..."} |