Extraer texto de un PDF
Extraer texto es una API que saca todo el texto de un PDF, listo para buscar, analizar o guardar en una hoja de cálculo. Perfecto para procesar facturas, contratos o informes desde n8n, Make o Zapier, sin montar servidores.
Cómo funciona
Le mandas un PDF y te devuelve su texto en un JSON, junto con el número de páginas y los metadatos del documento (título, autor…). No guarda nada: se procesa al momento.
Ojo con los PDFs escaneados: si el PDF es una foto o un escaneo sin capa de texto (no puedes seleccionar el texto al abrirlo en tu ordenador), esta herramienta devuelve texto vacío: no da error, simplemente no hay texto que extraer. Para esos casos hace falta OCR, que esta herramienta no hace.
Lo único que necesitas
- Tu API key. La creas en tu panel con "+ Crear llave". Se muestra una sola vez, así que cópiala y guárdala.
- En tu plataforma de automatización, un paso de tipo "HTTP Request" / "Hacer una petición HTTP" (lo tienen n8n, Make, Zapier, Pipedream…).
Cómo usarlo en n8n (paso a paso)
Le envías tu PDF tal cual (como archivo binario) y te devuelve el texto en JSON. En el nodo HTTP Request:
- Method:
POST - URL:
https://api.cofferdock.com/pdf-extract-text - Send Headers: actívalo y añade dos:
x-api-key= tu llave, yContent-Type=application/pdf - Send Body: actívalo → elige la opción para mandar un archivo binario (en n8n: "n8n Binary File", con la propiedad binaria de tu PDF, normalmente
data)
La respuesta ya es un JSON con el texto en text: puedes usarlo directamente en el siguiente paso (buscar una palabra, guardarlo en una hoja de cálculo, mandarlo a un modelo de IA…).
En Make (módulo HTTP → Make a request): mismo método y URL, en Headers las dos cabeceras, y el PDF como dato binario en el cuerpo.
Opciones (en Query Parameters o en el JSON)
| Opción | Por defecto | Para qué sirve |
|---|---|---|
pages | false | Ponlo en true para recibir además el texto separado por página. |
Resumen de la API
- Endpoint:
POST https://api.cofferdock.com/pdf-extract-text - Auth: cabecera
x-api-key: TU_LLAVE. - Entrada: el PDF va en el cuerpo como
application/pdf(a pelo) o comoapplication/jsoncon{ "file": "<base64>", "pages": true }. - Salida: SIEMPRE JSON (el resultado es texto, no un PDF):
{ text, num_pages, info, pages? }. - PDF sin capa de texto (escaneado):
text: "", sigue siendosuccess: truey consume 1 crédito: no es un error. - Límites: PDF de entrada hasta 20 MB (50 MB en Business/Scale) en modo
application/pdf, o ~4 MB reales en JSON con base64. 30 peticiones/min por IP. 1 extracción = 1 crédito.
Opciones
| Opción | Por defecto | Descripción |
|---|---|---|
pages | false | true añade pages: un array con el texto de cada página por separado. |
file | - | Solo en modo JSON: el PDF en base64. |
Ejemplos
curl (PDF a pelo):
curl -X POST "https://api.cofferdock.com/pdf-extract-text?pages=true" \
-H "x-api-key: TU_LLAVE" \
-H "Content-Type: application/pdf" \
--data-binary @documento.pdf
JavaScript (Node 18+):
const fs = require('fs');
const r = await fetch('https://api.cofferdock.com/pdf-extract-text', {
method: 'POST',
headers: { 'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf' },
body: fs.readFileSync('documento.pdf'),
});
const j = await r.json();
console.log(j.text);
Python:
import requests
r = requests.post(
'https://api.cofferdock.com/pdf-extract-text',
headers={'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf'},
data=open('documento.pdf', 'rb').read(),
)
print(r.json()['text'])
Forma de la respuesta
{ "success": true,
"text": "Factura 001\nTotal: 100 €\n…",
"num_pages": 2,
"info": { "Title": "Factura 001", "Producer": "Cofferdock" },
"meta": { "size_bytes": 51204, "used": 12, "remaining": 488 } }
Con pages=true se añade además "pages": ["texto de la página 1", "texto de la página 2"].
Lo que recibes
Un JSON con el texto completo del PDF, el número de páginas y sus metadatos (título, autor…).