Expose Sales Documents via public API

Request

Expose HubSpot Sales Documents via a public API, so teams can programmatically manage the document library and keep it in sync with external content systems.

Minimum Viable API

  • GET /documents to list and filter documents
  • POST /documents​ to create from a file or URL with metadata
  • PATCH /documents/{id} to update or re-upload without breaking existing share links
  • GET /documents/{id}/links to retrieve or create trackable share links
  • Workflow actions that wrap the above for no-code automation

Why This Matters

Sales Documents produces some of the highest-signal engagement data in the sales cycle, but the library is locked behind a UI-only interface. Three recurring problems:

  • Sales Documents can’t sync to (or be) a source of truth. Every document has to be uploaded manually. When the canonical version changes anywhere else, the Sales Documents copy goes stale. We maintain under 100 assets today (growing fast) across three systems: an internal content portal, a custom HubSpot resources object feeding a customer-facing hub, and Sales Documents. Adding Sales Documents as a synced endpoint is blocked entirely by the lack of API access, so most of our library never makes it in.
  • Reps default to Sequences because Documents can’t be automated. Sequences have API access; Documents don’t. Reps reach for Sequences even for 1:1 content shares where a tracked document is the right tool. Result: teams avoid the feature with the best engagement data because the alternative is scriptable.
  • Library hygiene doesn’t scale. No programmatic way to audit, bulk-update, deprecate, or enforce naming. Every operation is a manual UI click.

Current Workarounds (All Inadequate)

  • Using Sequences instead of Sales Documents. Sequences have API access, so teams default to them for any content share that needs to be automated, even when the use case is a single trackable document, not a multi-step nurture. This degrades data quality (sequence analytics don’t map to document engagement) and misuses a feature designed for a different purpose.
  • Maintaining duplicate content in custom objects and Sales Documents. Manual double-entry, guaranteed drift, no way to keep them in sync programmatically.
  • Linking to externally-hosted files from HubSpot emails. Loses all document tracking, which is the entire reason to use Sales Documents.
  • Using the Files API (Marketing Hub). Separate system. Files uploaded there don’t appear in the Sales Documents library and don’t get document tracking.

The Ask

Sales Documents has existed for years and lives alongside objects that all have public API access: Contacts, Companies, Deals, Quotes, Invoices, Line Items, Products, Carts. Sales Documents is a conspicuous gap.

Extending API access to Documents would let teams automate library management, keep content systems in sync through a single API call, and stop pushing reps toward the wrong features because the right ones aren’t scriptable. Exposing engagement events and associations via API would be a natural follow-on, but the core unlock is write access to the library.

Similar/Related Community Discussion

Similar/Related Community Ideas

This problem has been requested in at least three forms since 2017, with combined upvotes of ~39 across the posts below: