GoHighLevel media library links are how images, PDFs and videos in a sub-account get into emails, texts, funnels and courses. Getting one link is easy. Getting every link in a sub-account, keeping them from breaking, and knowing which files are private is where it gets messy. This guide covers how Media Storage works, how links behave, and how to collect them in bulk.
Where the media library lives
In a sub-account, the media library is called Media Storage as of October 2026. It's the same library you see when you insert an image in the email builder, attach a file to a text, or add media to a funnel page. Files are organized in folders, and you can preview, rename, move and delete them.
It's separate from files attached to contacts. A bank statement uploaded through a form lives on the contact, not in Media Storage. For those, see downloading all files from GoHighLevel contacts.
How to get a file's link
- Open Media Storage in the sub-account.
- Browse or search to the file.
- Open the file's preview or options menu and copy its URL.
- Paste it where you need it: a template, a custom value, a page element.
When you're working inside a builder, you usually don't need the URL at all. Inserting a file from the media picker places it directly.
Good places to store a link
If the same file shows up in several templates, such as a logo, a brochure PDF or a pricing sheet, store its URL in a custom value and reference the merge tag. When the file changes, you update one custom value instead of every template.
Public vs. private files
As of October 2026, Media Storage has two kinds of files:
| Public | Private | |
|---|---|---|
| Who can open the link | Anyone with the URL | Anyone with the link, for a short time |
| Link lifetime | Stable while the file exists | Expires after 10 minutes |
| How it's marked | Normal thumbnail | Lock icon |
| How it's created | Regular uploads | Uploaded through features that require private storage, such as digital product setup |
| Can you switch it | No | No |
Private files show Download, Copy Private Link and Delete options. Don't paste a private link into an email or template. It'll be dead by the time anyone clicks it.
Media Storage has views for all files, public only and private only, which helps when you're auditing what's in a sub-account.
Why links break
Most broken media links come from one of these:
- The file was deleted. Anything that pointed to it is now broken, including old emails already sent.
- The file was replaced by a new upload. A new upload gets a new URL. Templates still point to the old one, or to nothing if you deleted it.
- It was a private link. It expired.
- It came from somewhere else. A URL copied from a carrier MMS or a third-party host can expire on that side.
One exception worth knowing: per HighLevel's docs, editing a supported text file inside Media Storage keeps its file name and public URL. Re-uploading doesn't.
Before you delete anything
Search your templates, workflows and custom values for the file's URL first. If it's in use, replace the reference before deleting.
File limits worth knowing
As of October 2026, HighLevel lists these limits for the media library:
- Images: up to 100MB
- Videos: up to 4GB
- Audio and documents: up to 100MB
Other products have tighter limits. Social Planner, for example, caps images at 10MB. Check HighLevel's current limits before uploading large video.
Getting all GoHighLevel media library links in a sub-account
This is the hard part. Common reasons you'd need it:
- Auditing a sub-account before a rebuild
- Moving assets to another sub-account or a new snapshot
- Giving a designer or developer a list of every asset and its URL
- Finding which files are private before using them in templates
Native options:
- Click through. Open each folder, copy each URL into a spreadsheet. Fine for 20 files, not for 2,000.
- Download folders as a ZIP. Media Storage can download folders as a ZIP that keeps the folder structure. You get the files, but not their URLs.
- Use the API. HighLevel's Media API can list files in a sub-account, including their URLs. You'll need a Private Integration Token or app access and a script to page through results and walk subfolders.
Where the native way gets slow
Media Storage is built for picking one file at a time inside a builder. It has no "list every file with its link" view, and no export. Agencies that manage many sub-accounts end up opening folders and copying URLs by hand, or writing a script per account.
How Sub-Account Manager and Backup & Insights help
Sub-Account Manager from RGS Tools includes a media library browser that shows every file in Media Storage with links you can copy, without digging through folders. Pick a sub-account and the whole library is in one list. Sub-Account Manager is $49/mo per agency with unlimited sub-accounts and a 7-day free trial.
If you need a copy of the files themselves, Backup & Insights's file backup includes the media library along with contact files, attachments, recordings, form uploads and signed documents.
Questions
How do I get a link to a file in the GoHighLevel media library?
Open Media Storage in the sub-account, find the file, and use its preview or options to get the URL. Public files have a stable public link. Private files offer a Copy Private Link option that expires after 10 minutes.
Why did my GoHighLevel media link stop working?
The most common reasons are that the file was deleted or replaced with a new upload, or that it was a private file whose temporary link expired. Editing a supported text file keeps its URL, but uploading a new version creates a new one.
Can I export all media library links at once?
Not from the Media Storage screen, as of October 2026. You can download folders as a ZIP, but a list of every file's URL takes the Media API or a tool that reads it.