To update a PDF without changing its link, host it somewhere that keeps one permanent URL per file and publishes new uploads as revisions of that file. In SteadyLink you upload the PDF once, share its link, and later choose Replace on the same file; the link stays the same and starts serving the new PDF, usually within about five minutes for anyone who opened it recently.
Why PDF links are hard to keep current
PDFs tend to travel. A price list gets linked from a hundred sent emails. A menu goes into a QR code on every table. A product spec sheet gets pasted into a partner's portal, a support article, and a sales deck. A policy document is linked from an intranet page nobody remembers editing.
When the PDF changes, the usual options are all a bit painful:
- Upload a new file, get a new link, and hunt down every place the old link was used. Emails that already went out cannot be fixed.
- Overwrite the file on a web server and hope nothing serves a cached copy. Some hosts do not let you overwrite at all, or give the new upload a new address.
- Put a page in front of the PDF and update the page. That works, but it adds a click and something else to maintain.
A stable link avoids all of this. The link points at the file's identity, and the identity outlives any single version of the document.
Update a PDF in the dashboard
- Upload the current PDF. Choose Upload in the dashboard, pick a bucket and optionally a folder, choose whether anyone with the link can open it, and upload.
- Copy the link. It looks like
https://cdn.steadylink.io/a/ASSET_ID. This is the address you put in emails, web pages, documents, and QR codes. - When the PDF changes, open the file in the dashboard and choose Replace.
- Pick the new PDF. When it finishes, you see "File replaced. Its link is unchanged."
- Open the link in a private window to confirm the new version is live.
The new file does not need the same filename. If you pick price-list-2026.pdf to replace price-list.pdf, the link stays the same; the stored filename changes, and browsers use it when someone saves the file.
Update a PDF from a script
If the PDF is generated by a build or a reporting job, publish it from the CLI. The first argument is the file to replace, as bucket:key or an asset ID or link.
steadylink replace marketing:docs/price-list.pdf ./price-list-2026.pdf
The same thing in Python:
from pathlib import Path
body = Path("price-list-2026.pdf").read_bytes()
result = client.replace_file(bucket_id, "docs/price-list.pdf", filename="price-list-2026.pdf", body=body)
print(result["version"])
The call returns once the new revision exists and is current, with its revision number. The HTTP API version and the JavaScript SDK are covered in the upload and replace guide.
Let someone else send the new version
Often the person with the updated PDF is not on your team: an agency, a supplier, a colleague in another department. A replacement request is a single-purpose upload link for one existing file. They upload a candidate, nothing changes on the live link, and someone in your workspace approves it. Approval can publish right away or at a scheduled time, which is useful when a new price list should go live on the first of the month.
What people see after the update
SteadyLink starts serving the new revision immediately, but the stable link is cacheable for five minutes, with a short background refresh after that. Someone who opened the PDF a minute before the replacement may see the old version until their copy expires. Anyone opening it for the first time gets the new one.
Right after a replacement the new revision is scanned for malware. Until the scan finishes, which usually takes seconds, the link answers 423 Locked instead of serving unscanned bytes. If even that gap matters, schedule the change through a replacement request.
People who already downloaded the PDF keep their local copy. A stable link updates what the link serves, not files already saved to someone's computer.
Keep an exact copy when it matters
Some PDFs should not change after the fact: a signed agreement, the terms that applied on a given date, a report submitted to a regulator. For those, use a pinned link that names one revision.
https://cdn.steadylink.io/a/ASSET_ID?v=3
A pinned link keeps serving revision 3 for as long as that revision is retained, no matter how many times the file is replaced later. You can share the stable link for "the latest terms" and a pinned link for "the terms you agreed to", both from the same file. How long older revisions are kept depends on your plan; on the Free plan revision history is kept for 30 days.
Undo a mistake
If you replace the PDF with the wrong file, open it, go to Version history, and choose Restore on the previous revision. The link goes back to serving the older PDF without anyone needing a new address. From the CLI, steadylink rollback ASSET_ID 3 does the same.
Things to check before you rely on it
- Make sure the link you share is the stable one, without
?v=. A pinned link will never pick up the new version. - Check visibility. A public file opens for anyone with the link; a private file needs a signed link, and replacing it keeps its visibility.
- Check the file size against your plan. The Free plan accepts files up to 100 MB.
- SteadyLink does not force the replacement to be a PDF. If you replace it with an image by mistake, the link starts serving an image, so check the file before you publish.
Related reading
The same steps apply to any file type. See how to replace a file and keep the same URL, how to change the file behind a QR code, and the stable links concept page. You can start on the Free plan and try it with one PDF you update often.
Questions
- How do I update a PDF without sending a new link?
- Host the PDF on SteadyLink and share its stable link. When the PDF changes, open the file and choose Replace. The link stays the same and serves the new PDF.
- Will people who already downloaded the PDF get the new version?
- No. A stable link updates what the link serves. Copies already saved to someone's device stay as they are.
- Can I keep a link to the old version of a PDF?
- Yes. Use a pinned link such as https://cdn.steadylink.io/a/ASSET_ID?v=3. It keeps serving that revision for as long as the revision is retained.
- Can someone outside my team upload the new PDF?
- Yes. Send them a replacement request. They upload a candidate, and nothing changes on the live link until someone in your workspace approves it, now or at a scheduled time.