How to download all attachments in HubSpot
By Kayabyte
HubSpot lets you download the attachments of one record: open it, click View all attachments, tick the files and choose Download. It has no built-in way to download the attachments of many records at once, and a CSV export of records does not contain files. This guide covers the native method, the Files tool, the API and an app, and where each one stops. Last verified 11 November 2026 against HubSpot’s documentation.
Short answer
- One record: use the Attachments card (below). Free, manual, no list of what came from where.
- Many records: write a script against the API, or use an app that does that for you.
- The Files tool export is for the Files library, not for record attachments, as far as we can tell (see route 2).
Route 1: the record’s Attachments card
On a contact, company, deal or ticket, open the Attachments section. To download one file, hover over it, click Actions and choose Download. To download several, click View all attachments, tick the checkboxes and choose Download (HubSpot: add and remove attachments from records, last updated 22 December 2025). The article gives no file-count or size limit. Who can see which files follows the view permissions for notes and tasks, and, for emails, calls and meetings, access to the related records. When you send a one-to-one email or log an email through HubSpot Sales, non-inline attachments are added to the record’s Attachments section; inline attachments are not.
Where it stops: it is one record at a time. For 500 contacts that is 500 visits, and nothing records which file belonged to which record unless you write it down.
Route 2: the Files tool and the content export
HubSpot’s guide to exporting your content and data (last updated 25 September 2026) points to the Files tool for files and to record exports for CRM data; it does not address attachments. HubSpot Community answers describe an “Export all files (ZIP)” option in the Files tool and say it exports the files library and needs manual matching (Export tickets attachments, April 2025). We could not find a current HubSpot help page describing that option, so treat the detail as unverified and try it in your account. Attachments on notes and emails are stored as hidden files, which is why they are not in the normal library view; see files, library and attachments.
Route 3: the API
Attachments are listed in the hs_attachment_ids property of an engagement (note, email, call, meeting or task), a semicolon-separated string of file IDs. The route is: read the engagements associated with each record, read hs_attachment_ids, then read each file through the Files API (HubSpot Community: attachment in ticket, March 2024). Private files return 404 at their normal URL, so ask for a signed URL (a Files API call per file) and download from that. Your app or private app token needs the files read scope and the hidden-files read scope, files.ui_hidden.read (the older name files was renamed to files.read). Without the hidden-files scope HubSpot answers 404 for attachments, which looks like a deleted file. See the API guide.
Where it stops: you need a developer, you must handle rate limits (HubSpot’s documented limit for Marketplace OAuth apps is 110 requests per 10 seconds per account; private apps have their own limits) and you must build your own manifest.
Route 4: an app
Full disclosure: we built Attachment Exporter: Bulk File Download. You pick contacts, companies, deals or tickets (all, a HubSpot list, or a created or last-modified date range), run a free scan, then export the files attached to their notes, emails, calls, meetings and tasks, plus file properties, as zip files with a CSV manifest. It only reads from HubSpot. Scans and the audit are free, the first export of up to 250 files is free, and larger exports are one-off packs: USD 49 for 5,000 files, USD 99 for 25,000, USD 199 for 100,000. It installs from our site, not the HubSpot Marketplace, and HubSpot shows an unverified-app notice until it is listed. Files HubSpot marks sensitive are listed as restricted, not downloaded and not charged; saved views are not supported.
Compared
| Attachments card | Files tool export | API script | App | |
|---|---|---|---|---|
| Many records in one job | No | Library only (unverified) | Yes | Yes |
| Hidden CRM attachments | Yes, per record | No | With the hidden-files scope | Yes |
| File-to-record manifest | No | No | You build it | Yes, CSV |
| Cost | Free | Free | Developer time | Free to 250 files, then from USD 49 |
More detail
- Export files from HubSpot: library vs attachments
- HubSpot API: get attachments from notes and emails
- HubSpot attachment export tools compared
FAQ
Can HubSpot download all attachments at once? For one record, yes: View all attachments, select, Download. Across many records, not natively.
Does a CSV export include attachments? No. It contains properties, not files.
Why does the Files API return 404 for an attachment? Attachments are hidden private files. Without the hidden-files read scope, HubSpot answers 404 even though the file exists.
Is there a free way? Yes: the per-record download, or an export of up to 250 files with Attachment Exporter.
Questions or corrections: support@kayabyte.dev. HubSpot is a registered trademark of HubSpot, Inc. Kayabyte is an independent developer and is not affiliated with HubSpot or the other products named here.
More guides
- How to audit and clean up HubSpot properties without breaking anything
- How to stop a HubSpot deal reaching Closed won until it is approved
- How to bulk create custom properties in HubSpot from a CSV or spreadsheet
- How to calculate MRR from Paddle: yearly, weekly, discounts and tax
- How to send a client an hours statement from HubSpot
- How to copy properties from one HubSpot account to another
- DealHub or a lightweight approval app for HubSpot deals?
- How to export all properties from HubSpot, with their dropdown options
- Export ticket and deal attachments from HubSpot
- Find sensitive files in HubSpot attachments
- How to bulk add dropdown options (and properties) in HubSpot
- HubSpot deal approval options compared: native approvals, workflows, DealGuard and Deal Approvals & Stage Gate
- HubSpot deal approvals without Enterprise: what Free, Starter and Professional can do
- HubSpot discount approval on Sales Hub Professional or Starter
- How to set up discount approvals in HubSpot (deal desk)
- HubSpot GDPR request: export a contact’s files
- HubSpot migration: export attachments checklist
- How to see what your HubSpot pipeline looked like last week
- How to track prepaid hours and retainers in HubSpot
- Creating HubSpot properties in bulk: HubSpot import, the API, Lift and Bulk Property Import & Export compared
- HubSpot property naming conventions: a template for internal names, groups and labels
- Tracking retainer hours in HubSpot: StopWatch, PSOhub, a spreadsheet or Retainer Wallet
- A weekly stale-deal report in HubSpot, without Enterprise
- Time tracking on HubSpot tickets: what HubSpot has and the options
- HubSpot workflows for failed Paddle payments, cancellations and ending trials
- Insycle or Bulk Property Import & Export for HubSpot properties?
- Paddle and HubSpot without Zapier: webhooks, Make and other options
- How to require approval before a deal moves stage in HubSpot
- How to require fields before a HubSpot deal moves to a stage
- Retainer rollover rules: expire, capped or full, with examples
- RevOps Deal Desk & CPQ vs Deal Approvals & Stage Gate for HubSpot
- How to show MRR on HubSpot contacts and companies
- How to stop reps skipping deal stages or moving deals backward in HubSpot
- How to sync Paddle subscriptions to HubSpot
- Export property history in HubSpot: who changed it and when
- How to track a retainer balance per client in HubSpot