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.)
Protect a PDF with a password
Protect PDF is an API that adds a password to a PDF, so it can only be opened with it. Great for sending payslips, contracts or sensitive data from n8n, Make or Zapier, with no servers to maintain.
How it works
You send a PDF and the password you want to set, and get back the same PDF protected: any PDF reader will ask for it before opening. Nothing is stored: it's generated on the fly.
To remove the password later, use Remove password (you need to know it).
All you need
- Your API key. Create it in your dashboard with "+ Create key". It's shown only once, so copy and save it.
- In your automation platform, an "HTTP Request" step (n8n, Make, Zapier, Pipedream… all have one).
How to use it in n8n (step by step)
You send your PDF as is (as binary data) and the password as a parameter. In the HTTP Request node:
- Method:
POST - URL:
https://api.cofferdock.com/pdf-protect - Send Query Parameters: on, and add
password= whatever password you want. - Send Headers: on → add two:
x-api-key= your key, andContent-Type=application/pdf - Send Body: on → choose the binary file option (in n8n: "n8n Binary File", with your PDF's binary property, usually
data) - Under Options → Response → Response Format: choose File
In Make (HTTP → Make a request module): same method and URL, password in Query String, the two headers, and the PDF as binary data in the body.
Options
| Option | Default | What it does |
|---|---|---|
password | — | Required. The password that will be asked for when opening the PDF. |
API overview
- Endpoint:
POST https://api.cofferdock.com/pdf-protect - Auth: header
x-api-key: YOUR_KEY. - Input: the PDF goes in the body as
application/pdf(raw, withpasswordas a Query param) or asapplication/jsonwith{ "file": "<base64>", "password": "..." }. - Output: by default, with
application/pdfit returns the binary; with JSON it returns base64 inpdf.output=pdf/output=jsonforces either. - Encryption: 256-bit AES (the recommended standard). An already-protected PDF can't be protected again without removing its current password first → 400.
- Limits: input PDF up to 20 MB (50 MB on Business/Scale) in
application/pdfmode, or ~4 MB real in JSON with base64. 30 requests/min per IP. 1 call = 1 credit.
Options
| Option | Default | Description |
|---|---|---|
password | — | Required. |
file | — | JSON mode only: the PDF in base64. |
output | per mode | pdf (binary) or json (base64). |
Examples
curl (raw PDF):
curl -X POST "https://api.cofferdock.com/pdf-protect?password=SuperSecret123" \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/pdf" \
--data-binary @document.pdf \
-o protected.pdf
JavaScript (Node 18+):
const fs = require('fs');
const r = await fetch('https://api.cofferdock.com/pdf-protect?password=SuperSecret123', {
method: 'POST',
headers: { 'x-api-key': 'YOUR_KEY', 'Content-Type': 'application/pdf' },
body: fs.readFileSync('document.pdf'),
});
fs.writeFileSync('protected.pdf', Buffer.from(await r.arrayBuffer()));
Python:
import requests
r = requests.post(
'https://api.cofferdock.com/pdf-protect',
params={'password': 'SuperSecret123'},
headers={'x-api-key': 'YOUR_KEY', 'Content-Type': 'application/pdf'},
data=open('document.pdf', 'rb').read(),
)
open('protected.pdf', 'wb').write(r.content)
JSON mode (base64 response)
{ "file": "JVBERi0xLjQ…", "password": "SuperSecret123" }
→ { "success": true, "pdf": "JVBERi0xLjQ…", "mime_type": "application/pdf",
"meta": { "used": 12, "remaining": 488 } }
What you get back
The protected PDF itself, ready to save or send. (In JSON mode, the PDF comes in base64.)