Proteger un PDF con contraseña
Proteger PDF es una API que añade una contraseña a un PDF, para que solo pueda abrirse con ella. Perfecto para mandar nóminas, contratos o datos sensibles desde n8n, Make o Zapier, sin montar servidores.
Cómo funciona
Le mandas un PDF y la contraseña que quieres ponerle, y te devuelve el mismo PDF protegido: cualquier lector de PDF la pedirá antes de abrirlo. No guarda nada: se genera al momento.
Para quitar la contraseña más adelante, usa Quitar contraseña (hace falta saberla).
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 la contraseña como parámetro. En el nodo HTTP Request:
- Method:
POST - URL:
https://api.cofferdock.com/pdf-protect - Send Query Parameters: actívalo y añade
password= la contraseña que quieras. - 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) - En Options → Response → Response Format: elige File
En Make (módulo HTTP → Make a request): mismo método y URL, password en Query String, las dos cabeceras, y el PDF como dato binario en el cuerpo.
Opciones
| Opción | Por defecto | Para qué sirve |
|---|---|---|
password | - | Obligatorio. La contraseña que se pedirá al abrir el PDF. |
Resumen de la API
- Endpoint:
POST https://api.cofferdock.com/pdf-protect - Auth: cabecera
x-api-key: TU_LLAVE. - Entrada: el PDF va en el cuerpo como
application/pdf(a pelo, conpassworden Query) o comoapplication/jsoncon{ "file": "<base64>", "password": "..." }. - Salida: por defecto, con
application/pdfdevuelve el binario; con JSON devuelve base64 enpdf.output=pdf/output=jsonfuerza cualquiera. - Cifrado: AES de 256 bits (el estándar recomendado). Un PDF ya protegido no se puede volver a proteger sin quitarle antes la contraseña actual → 400.
- 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 llamada = 1 crédito.
Opciones
| Opción | Por defecto | Descripción |
|---|---|---|
password | - | Obligatorio. |
file | - | Solo en modo JSON: el PDF en base64. |
output | según modo | pdf (binario) o json (base64). |
Ejemplos
curl (PDF a pelo):
curl -X POST "https://api.cofferdock.com/pdf-protect?password=SecretoSeguro123" \
-H "x-api-key: TU_LLAVE" \
-H "Content-Type: application/pdf" \
--data-binary @documento.pdf \
-o protegido.pdf
JavaScript (Node 18+):
const fs = require('fs');
const r = await fetch('https://api.cofferdock.com/pdf-protect?password=SecretoSeguro123', {
method: 'POST',
headers: { 'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf' },
body: fs.readFileSync('documento.pdf'),
});
fs.writeFileSync('protegido.pdf', Buffer.from(await r.arrayBuffer()));
Python:
import requests
r = requests.post(
'https://api.cofferdock.com/pdf-protect',
params={'password': 'SecretoSeguro123'},
headers={'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf'},
data=open('documento.pdf', 'rb').read(),
)
open('protegido.pdf', 'wb').write(r.content)
Modo JSON (respuesta en base64)
{ "file": "JVBERi0xLjQ…", "password": "SecretoSeguro123" }
→ { "success": true, "pdf": "JVBERi0xLjQ…", "mime_type": "application/pdf",
"meta": { "used": 12, "remaining": 488 } }
Lo que recibes
El PDF protegido directamente, listo para guardar o enviar. (En modo JSON, el PDF llega en base64.)