Extraer tareas
Una conversación termina y todos asienten ante compromisos que, tres días después, nadie recuerda bien haber hecho. Este endpoint escucha una vez y devuelve exactamente los pendientes, para que no dependan solo de la memoria de alguien.
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.
El vacío específico que llena
Un resumen de reunión cuenta de qué trató la conversación; no dice de forma confiable quién debe hacer qué y para cuándo. Son dos problemas de extracción distintos, y forzar ambos dentro de un resumen genérico suele sepultar las tareas bajo contexto que nadie necesita después. audio.action_items se limita a eso: compromisos dichos en voz alta, atribuidos a quien los hizo.
Cómo fluye una solicitud
Haga POST de la grabación a /audio/action-items y reciba un task_id de inmediato, mientras el audio se procesa fuera del hilo de la solicitud. El resultado —una lista de tareas, cada una vinculada a un hablante cuando el audio lo deja claro— llega a su webhook o mediante un enlace firmado válido por 24 horas, lista para incorporarse a la herramienta que su equipo use para dar seguimiento al trabajo.
Por qué los compromisos hablados son difíciles de extraer
La gente rara vez enuncia una tarea como la escribiría un gerente de proyecto. Dicen 'yo lo retomo' o 'alguien debería revisar esos números', y una extracción útil tiene que reconocer eso como un compromiso sin inventar precisión que nunca se dijo: una fecha límite que no se mencionó, un responsable que no se nombró. Mostramos exactamente lo que la conversación respalda; los compromisos vagos vuelven como vagos, no afinados en silencio para sonar más seguros de lo que realmente fue la grabación.
Lo que deja fuera a propósito
Esto no es una transcripción completa ni un resumen narrativo: es una lista de trabajo, despojada de la discusión que llevó a cada punto. Si necesita el razonamiento detrás de una decisión además de la tarea resultante, combínelo con audio.summarize o una tarea de transcripción, en lugar de esperar que un solo endpoint cumpla ambas funciones bien.
Cómo lo usan realmente los equipos
El lugar natural para el resultado es donde su equipo ya da seguimiento al trabajo: alimente un tablero de tareas, colóquelo al inicio del correo de seguimiento, o adjúntelo al evento de calendario de la próxima revisión. Como se cobra por solicitud más por minuto y corre de forma asíncrona, funciona tanto como algo puntual después de una llamada importante con un cliente como en forma de tarea fija conectada a cada reunión interna recurrente.
Qué puede hacer con ella
Seguimiento después de una llamada
Un representante de ventas obtiene la lista de compromisos hechos en una llamada de descubrimiento y la pega directamente en el campo de próximos pasos del CRM.
Reuniones fijas de equipo
Un equipo conecta el endpoint a la grabación de su reunión recurrente para que las tareas lleguen automáticamente al tablero del proyecto cada semana.
Rendición de cuentas en proyectos con clientes
Una agencia extrae las tareas de las llamadas con clientes para que nada acordado verbalmente se pierda entre la llamada y la siguiente actualización.
Seguimiento de entrevistas y consultas
Un consultor extrae las tareas de una consulta con un cliente para armar la lista inicial del proyecto sin volver a escuchar la llamada.
Preguntas frecuentes
¿Cómo extraigo las tareas de una grabación de reunión con la API?
Envíe la grabación a POST /audio/action-items, guarde el task_id devuelto y reciba la lista de tareas por webhook o mediante un enlace firmado válido por 24 horas.
¿Es gratis la API para extraer tareas de una reunión?
No, no hay plan gratuito ni prueba. Tiene un costo de $0.004 por solicitud más $0.0185 por minuto, y una tarea fallida nunca se cobra.
¿En qué se diferencia de un acta de reunión?
El acta cubre decisiones, responsables y próximos pasos como un registro más completo; este endpoint se limita únicamente a la lista de tareas accionables.
¿Asigna una fecha límite a cada tarea?
Solo cuando realmente se mencionó una en la grabación; no inventa un plazo que nunca se dijo.
¿Puede identificar quién es responsable de cada tarea?
Atribuye las tareas a los hablantes cuando eso es claro en el audio; cuando la responsabilidad es ambigua, se refleja como ambigua en lugar de adivinarse.
¿Qué pasa si la conversación no tuvo compromisos reales?
Recibirá una lista honestamente corta o vacía, en lugar de tareas inventadas que nunca se acordaron realmente.
¿Puedo usarlo en llamadas largas o sesiones de todo un día?
Sí, procesa de forma asíncrona y se cobra por minuto, así que la duración no es una limitante; se le notifica por webhook cuando el resultado está listo.
¿Se conserva el audio después de procesarlo?
No, el audio y los resultados se eliminan después del período de retención y nunca se usan para entrenamiento.
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/audio/action-items \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/audio/action-items", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/action-items",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/action-items", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/action-items", 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
{
"audio": "https://ejemplo.com/audio.mp3"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.action_items",
"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_mb | 200 |
max_minutes | 180 |
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. |