Best Free Unlock PDF
Take the password off a PDF you can open, or add one to protect it — free, no watermark, no signup.
How it works
- Upload. Choose the PDF and pick Remove password or Add password.
- Enter password. Type the current password to unlock, or a new password to protect the file.
- Download. Your unlocked or newly protected PDF downloads automatically.
About this tool
Unlock PDF removes the password from a PDF you can already open, so you stop being prompted every time. Enter the current password and you get an unprotected copy back. The same tool works the other way: choose Add and it encrypts the PDF with a new password instead. It only unlocks documents you can supply the password for — it is not a way to break into a PDF you cannot open. No watermark, no signup, processed in memory and discarded.
What people use it for
- Stop being asked for a password on a PDF you own
- Remove a known password before merging or editing
- Add a password to protect a sensitive document
- Re-protect a PDF with a new password
Developer API
Automate this tool from your own code. Send a POST request to the endpoint below and get the same result the web tool produces. It is rate-limited per IP and needs no signup — API keys for higher limits are coming.
https://best.free/api/tools/pdf-unlock/
| Parameter | Example | Required | Notes |
|---|---|---|---|
file (file) |
protected.pdf |
Yes | PDF, ≤25 MB. |
action |
remove |
No | "remove" to strip a password, "add" to set one. |
password |
currentpass |
No | Current password (required to remove/re-protect). |
new_password |
newpass |
No | New password when action is "add". |
curl -X POST https://best.free/api/tools/pdf-unlock/ \
-F 'file=@protected.pdf' \
-F 'action=remove' \
-F 'password=currentpass' \
-F 'new_password=newpass' \
-o unlocked.pdf
import requests
files = {"file": open("protected.pdf", "rb")}
data = {"action": "remove", "password": "currentpass", "new_password": "newpass"}
r = requests.post("https://best.free/api/tools/pdf-unlock/", files=files, data=data)
with open("unlocked.pdf", "wb") as out:
out.write(r.content)
const fd = new FormData();
fd.append("file", fileInput.files[0]);
fd.append("action", "remove");
fd.append("password", "currentpass");
fd.append("new_password", "newpass");
const r = await fetch("https://best.free/api/tools/pdf-unlock/", { method: "POST", body: fd });
const blob = await r.blob(); // the unlocked.pdf
Response: The PDF with its password removed (or added).