Detectar emoção em texto
A ferramenta identifica a emoção predominante em um texto escrito — raiva, frustração, alegria, gratidão, medo, urgência — indo além do positivo ou negativo. A análise parte exclusivamente das palavras: não é reconhecimento biométrico. Serve para priorizar filas de atendimento e entender o estado do cliente antes de responder.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Sentimento diz o quê; emoção diz o quanto
Duas mensagens negativas podem exigir respostas opostas. “O produto veio com defeito, como faço a troca?” é negativa e tranquila; “TERCEIRA VEZ que reclamo e NINGUÉM resolve” é negativa e em ebulição. A análise de sentimento marca as duas igual; a detecção de emoção separa a frustração operacional da raiva prestes a virar cancelamento, processo ou post viral. É essa distinção que decide quem entra na frente da fila.
Só o texto — biometria, jamais
Um limite claro do que esta ferramenta é: a emoção é inferida das palavras escritas, e de mais nada. Não há análise de voz, rosto, expressão ou qualquer sinal do corpo — nada de reconhecimento biométrico de emoções, tecnologia que envolve outra ordem de riscos e de regulação. O que a ferramenta lê é o que qualquer atendente humano leria na mensagem; ela apenas lê em escala e sem se desgastar.
A fila de atendimento pelo tom
Aplicação clássica: cada ticket ou mensagem recebida passa pela detecção na entrada, e as emoções críticas — raiva, desespero, urgência — sobem na fila ou disparam alerta para um humano sênior. O cliente furioso atendido em dez minutos vira caso resolvido; o mesmo cliente esperando dois dias na fila cronológica vira detrator. O custo por item torna viável analisar tudo, não só amostras.
Preço e limites
US$ 0,003 por chamada, mais US$ 0,0135 por item analisado, em dólar americano, até 20.000 tokens por chamada. Triar 500 mensagens custa cerca de US$ 6,75. Vale a ressalva honesta: emoção escrita é interpretação, não medida física — em texto curto ou seco, a própria resposta indica confiança menor, e a decisão final sobre um cliente deve continuar com gente. Use a detecção para ordenar a fila, não para julgar ninguém.
Casos de uso
SAC que enxerga o cliente no limite
A Distribuidora Horizonte Verde S.A. recebe mensagens de centenas de lojistas. A detecção marca raiva e urgência na entrada: atraso de entrega com tom exaltado vai direto ao supervisor, enquanto dúvidas tranquilas seguem o fluxo normal. As disputas formais caíram sem contratar ninguém.
Ouvidoria com prioridade real
Márcia Regina Oliveira coordena a ouvidoria de uma rede de clínicas em Porto Alegre. As manifestações chegam por formulário e a emoção detectada ordena a fila: medo e aflição passam na frente de sugestões — o que, em saúde, é a diferença que importa.
Comunidade antes da fervura
O moderador de um fórum de investidores monitora a emoção dos tópicos mais ativos. Quando a raiva acumulada de um tópico cruza o limiar, ele entra antes de a discussão descambar — moderar cedo é mais barato que apagar incêndio.
Perguntas frequentes
Isso é reconhecimento biométrico de emoções?
Não — e a distinção importa. A ferramenta analisa apenas texto escrito: nenhuma voz, imagem, rosto ou sinal fisiológico entra na análise. É a leitura automatizada do que a pessoa escreveu, não uma medição do corpo dela.
Quais emoções são detectadas?
As dominantes em comunicação escrita de cliente: raiva, frustração, alegria, gratidão, tristeza, medo, ansiedade e urgência. A resposta traz a emoção predominante e a intensidade, em formato estruturado.
Qual a diferença para a análise de sentimento?
Sentimento é o eixo positivo–negativo–neutro; emoção é o retrato mais fino dentro dele. Para painel de tendência, sentimento basta; para decidir quem atender primeiro, a emoção é que carrega a informação.
Funciona com mensagem curta de WhatsApp?
Funciona, com a honestidade devida: “ok.” seco carrega pouca evidência, e a resposta refletirá essa incerteza. Mensagens com uma ou duas frases completas já rendem detecção útil — e caixa alta com exclamações, convenhamos, ninguém erra.
Quanto custa triar minha caixa de entrada?
US$ 0,0135 por mensagem mais US$ 0,003 por chamada, em dólar. Uma operação que recebe 1.000 mensagens por mês gasta uns US$ 14 mensais para ter toda a fila priorizada por emoção — pagando por uso, sem contrato.
O conteúdo das mensagens fica com vocês?
As mensagens são processadas e devolvidas com a classificação; o serviço não constrói base com o conteúdo dos clientes. Como se trata de comunicação de pessoas identificáveis, boa prática LGPD: envie o texto da mensagem, não o cadastro inteiro do cliente junto.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/text/emotion \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/text/emotion", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/emotion",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/emotion", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/emotion", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"items": [
"valor-1",
"valor-2"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.emotion",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_tokens | 20000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |