Extraer texto de un PDF
Envíe un PDF nativo a este endpoint y recupere su texto embebido como contenido plano y reutilizable, sin fuentes, sin columnas, sin coordenadas que resolver: solo las palabras que el documento ya contiene. Está pensado para índices de búsqueda, canalizaciones de palabras clave y cualquier proceso que necesite el texto, no la página.
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.
La tarea específica que resuelve
La mayoría de las herramientas que tocan PDFs intentan preservar todo — diseño, imágenes, formato — justo lo contrario de lo que necesita cuando solo quiere el texto para indexar, comparar o alimentar un proceso posterior. Este endpoint tiene una sola tarea: leer la capa de texto que un PDF ya trae y devolverla como una cadena plana, en orden de lectura, sin que tenga que escribir un analizador ni pelear con una librería de renderizado. Es para el caso en que el destino es un índice de búsqueda, una columna de base de datos o un script, no una persona leyendo la página.
Qué espera y qué devuelve
Envía el PDF con un POST a /pdf/to-text y recibe un task_id de inmediato, ya que la extracción corre de forma asíncrona aunque suele ser rápida. El resultado — entregado por webhook o por un enlace firmado válido 24 horas — es el contenido de texto del documento, página por página o como un solo flujo según cómo lo solicite. Esto funciona sin problema en PDFs nativos y basados en texto: archivos exportados de un procesador de textos, generados por código, o producidos por otro paso de su propia canalización, donde las palabras están guardadas como texto y no como píxeles.
Por qué importa lo 'nativo' y dónde encajan las páginas escaneadas
El PDF siempre ha admitido dos tipos de página muy distintos: uno donde las letras se guardan como objetos de texto reales con referencias de fuente, y otro donde la página en realidad es solo una imagen embebida, la salida de un escáner. La extracción de texto lee directamente el primer tipo, porque las palabras ya están en el archivo. Una página escaneada no tiene esa capa; es una fotografía de texto, y sacarle palabras es un problema de reconocimiento, no de extracción, una tarea distinta con un costo distinto al de este endpoint.
Dónde encaja en un flujo automatizado
Como devuelve un task_id y reporta por webhook, PDF a Texto se integra en canalizaciones de ingestión igual que cualquier otro paso asíncrono: llega un documento a su almacenamiento, este endpoint extrae su texto, y un trabajo posterior lo indexa, lo clasifica o lo revisa en busca de una palabra clave antes de enrutarlo. Ejecútelo sobre una carpeta con miles de archivos y deje que cada evento de finalización avance su propio documento de forma independiente, sin necesidad de un bucle de consultas. Solo se cobran las solicitudes que realmente terminan.
Costo, acceso y retención
El precio es plano y simple: $0.002 por solicitud, sin recargo por página, así que extraer texto de cien documentos cuesta veinte centavos sin importar cuán largo sea cada uno. Usar el endpoint requiere saldo prepago; sin saldo la llamada devuelve un 402, algo intencional que mantiene la cola de extracción rápida y libre de abuso. El PDF que envía y el texto que produce se conservan solo durante la ventana de retención, luego se eliminan y nunca se usan para entrenar nada.
Qué puede hacer con ella
Indexación de búsqueda de texto completo
Extraiga el texto de cada PDF de una biblioteca documental y aliméntelo a un índice de búsqueda, para que los usuarios encuentren un archivo por las palabras que contiene y no solo por su nombre.
Revisión de cumplimiento y palabras clave
Revise contratos o reportes entrantes en busca de cláusulas o términos específicos extrayendo primero su texto, y luego aplicando comparaciones simples de cadenas en vez de analizar un formato binario directamente.
Alimentar procesamiento de lenguaje posterior
Extraiga texto limpio de los PDFs antes de resumirlos, clasificarlos o traducirlos, ya que las herramientas de texto funcionan mucho mejor sobre una cadena plana que sobre una imagen de página o un flujo PDF crudo.
Migración de datos y archivo
Convierta un archivo histórico de reportes en PDF en registros de texto buscables y almacenables, como parte de mover ese contenido a una base de datos o un sistema de gestión de contenido.
Preguntas frecuentes
¿Cómo extraigo texto de un PDF con una API?
Haga un POST del PDF a /pdf/to-text y recibe un task_id de inmediato. El texto extraído llega a su webhook o a un enlace firmado cuando la tarea termina.
¿La API PDF a Texto es 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.
¿Cuánto cuesta extraer texto de un PDF?
Es una tarifa plana de $0.002 por solicitud, sin cargo por página, así que el costo es el mismo si el PDF tiene una página o cien.
¿Funciona con PDFs escaneados?
Está diseñada para PDFs nativos y basados en texto, donde las letras se guardan como objetos de texto. Una página escaneada en realidad es una imagen, así que no tiene una capa de texto que extraer y requiere un proceso completamente distinto.
¿Conserva el formato, las tablas o las columnas?
No; el resultado es texto plano en orden de lectura, sin fuentes, diseño ni estructura de columnas, que es exactamente lo que necesita para búsqueda o procesamiento de texto posterior.
¿Puedo extraer texto de un lote grande de PDFs a la vez?
Sí. Cada PDF es una tarea independiente, así que puede enviar miles de archivos y dejar que cada webhook confirme la finalización sin necesidad de consultas repetidas.
¿Qué pasa si un PDF no se puede procesar?
La tarea se reintenta automáticamente hasta tres veces antes de devolver un error claro, y nunca se le cobra por una solicitud que termina fallando.
¿Cuánto tiempo está disponible el texto extraído y se guarda después?
El enlace firmado es válido durante 24 horas. Tras la ventana de retención, tanto el PDF original como el texto extraído se eliminan y nunca se usan para entrenar nada.
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/pdf/to-text \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/to-text", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/to-text",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/to-text", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/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
{
"pdf": "https://ejemplo.com/documento.pdf"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.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. |
413 | input_too_large | El archivo supera el límite de tamaño. |