Sacar el texto de un Word
A veces un documento de Word es solo un contenedor de palabras, y cada capa de formato a su alrededor es ruido que una máquina tiene que sortear. Este endpoint extrae el texto puro de un .docx — sin estilos, sin XML, sin objetos incrustados — dejando exactamente lo que necesita un índice de búsqueda, un modelo de lenguaje o una herramienta de comparación de texto.
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é el texto plano sigue importando
Un archivo .docx es un paquete comprimido de XML — estilos, historial de revisiones, medios incrustados, datos de tema — envuelto alrededor de las palabras que realmente escribió. Eso es útil para editar, pero es peso muerto para un sistema que solo necesita las palabras: un índice de búsqueda no le importa sus estilos de título, una comparación de similitud de texto no le importa su historial de cambios, un extractor de palabras clave solo quiere oraciones. Este endpoint descarta todo eso y conserva únicamente el texto.
Quién reduce un documento a texto
Sistemas de búsqueda e indexación que necesitan contenido plano para tokenizar, herramientas de cumplimiento que escanean documentos en busca de términos o patrones específicos, equipos de datos que alimentan texto de documentos a un análisis o clasificación, ingenieros que comparan dos versiones de un contrato para ver qué cambió realmente en la redacción y no en el formato. En cualquier lugar donde el consumidor final sea código y no una persona leyendo en Word, el texto plano es la forma correcta.
Qué recibe de vuelta
Envía el .docx, recibe de inmediato un task_id, y la tarea devuelve el contenido de texto del documento en orden de lectura — párrafos, elementos de lista y el texto de las celdas de tablas incluidos como líneas de texto plano, con el formato, los estilos y los objetos incrustados eliminados por completo, listo para alimentar directamente otro proceso.
Cómo encaja en un flujo automatizado
Como es asíncrono y se cobra un precio plano por documento en lugar de por página, es un primer paso predecible y económico: un flujo de ingesta de documentos recibe la carga de un .docx, lo convierte a texto antes de cualquier otra cosa, y solo entonces enruta ese texto hacia indexación de búsqueda, clasificación o un modelo de lenguaje — con el webhook marcando el momento en que es seguro pasar a la siguiente etapa.
Una nota sobre el formato que se elimina
El DOCX carga mucho más que texto desde que Microsoft introdujo el formato XML Office Open XML en 2007 — puede contener comentarios, cambios rastreados, hojas de cálculo incrustadas, fuentes personalizadas. El texto plano, en cambio, está más cerca de la idea original de lo que guardaba un procesador de palabras en los años setenta y ochenta: caracteres, nada más. Este endpoint es, en cierto sentido, un viaje deliberado de regreso a esa simplicidad.
Qué puede hacer con ella
Ingesta a un índice de búsqueda
Un sistema de gestión documental convierte cada .docx cargado a texto plano antes de tokenizarlo para la búsqueda de texto completo.
Comparación de redacción de contratos
El área legal extrae el texto de dos versiones de un contrato para comparar la redacción real, sin el ruido del formato.
Escaneo de palabras clave de cumplimiento
Una herramienta de cumplimiento convierte los documentos recibidos a texto para buscar términos restringidos o divulgaciones obligatorias.
Alimentar un modelo de lenguaje
Un flujo de automatización reduce los archivos Word cargados a texto antes de pasar el contenido a un paso de resumen o clasificación.
Preguntas frecuentes
¿Está lista la API DOCX a Texto?
Está en despliegue y estará disponible en breve; el endpoint y el precio descritos aquí ya son definitivos.
¿Cómo se cobra?
$0.052 por solicitud más $0.003 por documento — una tarifa plana en lugar de un cobro por página, ya que el resultado es texto plano sin importar su extensión.
¿Conserva algo de formato?
No, así está diseñado. Se eliminan estilos, fuentes, títulos y objetos incrustados; solo queda el contenido de texto, en orden de lectura.
¿Qué pasa con tablas y listas?
El texto de las celdas de tablas y los elementos de lista se incluyen como líneas de texto plano; la cuadrícula visual o la estructura de viñetas en sí no se conserva.
¿Tiene prueba gratuita?
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.
¿Cómo recibo el texto extraído?
Por webhook firmado cuando la tarea termina, o desde un enlace firmado válido por 24 horas.
¿Se cobra si la extracción falla?
No. Una tarea fallida se reintenta automáticamente hasta tres veces y nunca se cobra; en su lugar recibe un error claro.
¿Puedo procesar muchos archivos Word a la vez?
Sí, cada solicitud procesa un documento y devuelve su propio task_id, así que procesar muchos archivos es simplemente solicitudes en paralelo recogidas por webhook.
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/doc/docx-to-text \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/doc/docx-to-text", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/docx-to-text",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/docx-to-text", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/docx-to-text", 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
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.docx_to_text",
"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 | 25 |
max_pages | 200 |
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. |