Detectar emociones
El sentimiento le dice si algo es bueno o malo; este endpoint va más allá y nombra qué se siente en realidad dentro de un texto: alegría, enfado, tristeza, miedo, sorpresa, asco. Importa cada vez que la diferencia entre un cliente frustrado y uno asustado cambia lo que debería hacer a continuación.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Por qué positivo/negativo se queda corto
Una reseña de una estrella y una queja de seguridad angustiada pueden calificar igual como 'negativas' en una escala simple de sentimiento, pero exigen respuestas completamente distintas. text/emotion divide ese único bando negativo en enfado, tristeza, miedo y asco, y hace lo mismo del lado positivo separando la alegría genuina de la simple aprobación, para que la lógica de enrutamiento pueda por fin distinguirlas.
Cómo es la llamada
Envía sus textos por POST a /text/emotion, recibe de inmediato un task_id y la tarea corre de forma asíncrona. Cada elemento del resultado final trae una distribución entre las categorías de emoción detectadas, no una sola etiqueta ganadora, porque la escritura real suele mezclar frustración con un rastro de resignación o esperanza. La entrega es por webhook firmado o por enlace firmado válido por 24 horas, según lo que encaje con su arquitectura.
Una palabra sobre los modelos de emoción
La psicología ha debatido durante décadas cuántas emociones 'básicas' existen, desde las seis expresiones faciales universales de Paul Ekman hasta modelos posteriores más detallados. La detección de emociones en texto toma prestado ese vocabulario porque le da a las personas un lenguaje compartido e intuitivo para lo que encontró la máquina: decir 'este lote se inclina hacia el miedo' se entiende de inmediato, algo que un vector de probabilidades sin procesar no logra.
Dónde rinde el detalle adicional
Equipos de crisis y seguridad que necesitan separar a alguien enojado por una demora de alguien que teme por su seguridad. Equipos de producto leyendo comentarios de beta que quieren saber si un reporte de error trae asco (señal de abandono) o apenas frustración leve. Plataformas de contenido que revisan secciones de comentarios buscando las primeras señales de un ataque coordinado antes de que escale.
Cómo encaja en un sistema más grande
El endpoint es deliberadamente acotado y asíncrono para componer bien: se llama después de que su proceso de recepción normaliza el texto, el webhook reparte el resultado hacia el servicio que maneja el siguiente paso —una alerta, una cola prioritaria, un panel— y no hace falta construir ninguna lógica de sondeo, porque no se necesita. Una tarea que falla se reintenta automáticamente y nunca se cobra, así que los trabajos en lote pueden correr sin supervisión durante la noche.
Qué puede hacer con ella
Priorización en líneas de crisis
Distinga mensajes marcados por miedo de los marcados por enfado en una cola de mensajes entrantes, para que quien esté realmente angustiado llegue más rápido a una persona.
Profundidad en feedback de beta
Lea los niveles de asco y enfado en reportes de errores por separado de la frustración leve, para priorizar las correcciones que de verdad están ahuyentando usuarios.
Alerta temprana en moderación de comunidad
Observe cómo la mezcla de emociones de un hilo se inclina hacia el enfado en tiempo real y márquelo antes de que un desacuerdo normal se convierta en un ataque coordinado.
Lectura emocional post-compra
Clasifique comentarios de encuestas de unboxing separando alegría de decepción, más allá de un simple puntaje de sentimiento, para ver si el producto realmente enamora.
Preguntas frecuentes
¿En qué se diferencia la detección de emociones del análisis de sentimiento?
El sentimiento te da positivo, negativo o neutro; la detección de emociones desglosa eso en sentimientos concretos como alegría, enfado, tristeza o miedo, algo esencial cuando 'negativo' puede significar cosas muy distintas.
¿Cómo llamo a la api de detección de emociones en texto?
Envía sus textos por POST /text/emotion, guarda el task_id que recibe, y lee el desglose de emociones de cada elemento desde un webhook firmado o un enlace firmado válido por 24 horas cuando termina la tarea.
¿Se puede probar gratis?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Qué categorías de emoción detecta?
Clasifica el texto en emociones centrales como alegría, enfado, tristeza, miedo, sorpresa y asco, devolviendo una distribución en vez de forzar una sola etiqueta cuando el texto realmente mezcla sentimientos.
¿Cuál es el precio?
$0.003 por solicitud más $0.0135 por ítem, cobrado solo por los ítems que terminan con éxito; un lote de 500 comentarios cuesta la tarifa base más $6.50.
¿Un mismo texto puede mostrar más de una emoción?
Sí, el resultado devuelve una distribución entre categorías en vez de una sola etiqueta forzada, porque la escritura real suele mezclar emociones como frustración y resignación.
¿Funciona con textos cortos como un solo comentario?
Sí, pero los fragmentos muy breves aportan menos señal que una o dos oraciones completas, así que la precisión mejora conforme el texto supera un puñado de palabras.
¿Qué pasa con mis datos después de procesar la tarea?
Su texto se usa únicamente para generar el resultado y se elimina al terminar la ventana de retención; nunca se usa para entrenar modelos, y los ítems fallidos se reintentan hasta tres veces antes de mostrarle un error claro, nunca un cobro.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
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)Ejemplo de solicitud
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.emotion",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_tokens | 20000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |