canonical: https://jentic.com/apis/hubspot.com/hubspot-cms-media-bridge

# HubSpot Media Bridge

The HubSpot Media Bridge API lets external media platforms register their video and audio content with HubSpot so it can be embedded, tracked, and reported on alongside other CMS content. It exposes object schemas, custom properties, settings, and event ingestion endpoints - the integrator defines what a media object looks like, registers a connected app, and streams playback events back to HubSpot. The bridge is how third-party media platforms become first-class content in HubSpot reporting.

## For AI agents

Register a media platform integration with HubSpot, define media object schemas, and stream playback events into HubSpot reporting on behalf of an integrator app.

## Scope

Does not host or transcode media files and does not surface non-media CMS content - use for registering an external media platform with HubSpot and streaming engagement events only.

## Capabilities

- Register a media integrator app and configure its event visibility settings
- Define custom object schemas for video, audio, or other media types
- Manage custom properties and property groups on media objects
- Stream playback events such as media-played-percent and attention-span into HubSpot
- Read object definitions to align an integrator's data model with HubSpot reporting
- Archive obsolete media properties in batch when the integrator schema changes
- Inspect and update associations between media object types in HubSpot

## Use cases

### Connect a Video Platform to HubSpot Reporting

A video platform wants its content to appear inside HubSpot's CMS reporting alongside blog posts and pages. The Media Bridge lets the integrator register the app, define a video object schema with custom properties, and stream play events back as viewers watch. The result is unified engagement reporting without the customer leaving HubSpot.

Example prompt: POST to /media-bridge/v1/{appId}/settings/register with the integrator details, then create a video schema via /media-bridge/v1/{appId}/schemas and send a sample media-played-percent event.

### Audio Engagement Streaming

Podcast platforms can stream attention-span and play-percent events into HubSpot so that contact records show which episodes a known listener engaged with. The events feed into HubSpot lists, workflows, and reporting just like email opens or page views, allowing audio engagement to drive lead scoring.

Example prompt: For each completed listening session, POST to /media-bridge/v1/events/attention-span with the contactId, mediaId, and span seconds.

### Schema Migration for Existing Integrators

When an integrator changes its media data model, properties and associations on existing HubSpot media object types must be updated together. Batch archive plus property creation endpoints support a controlled migration: archive deprecated fields, register new ones, and verify via the read endpoints before the new model is used in production.

Example prompt: POST a list of obsolete property names to /media-bridge/v1/{appId}/properties/{objectType}/batch/archive, create the replacement properties, and confirm the changes via /media-bridge/v1/{appId}/properties/{objectType}/batch/read.

### Agent-Driven Media Object Setup

An AI agent onboarding a new media partner needs to define schemas and properties without operating the HubSpot UI. Through Jentic the agent searches for the schema creation operation, loads the input shape, and executes it with the partner's media model. Subsequent property and association calls follow the same search-load-execute flow.

Example prompt: Use Jentic to search 'create hubspot media bridge schema', load the schema, and execute it with objectType='video' and the partner's property definitions.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /media-bridge/v1/{appId}/settings/register | Register a media integrator app |
| POST | /media-bridge/v1/{appId}/schemas | Create a media object schema |
| POST | /media-bridge/v1/events/media-played-percent | Stream a media-played-percent event |
| POST | /media-bridge/v1/events/attention-span | Stream an attention-span event |
| POST | /media-bridge/v1/{appId}/properties/{objectType}/batch/archive | Archive properties in batch |
| POST | /media-bridge/v1/{appId}/properties/{objectType}/batch/read | Read properties in batch |
| GET | /media-bridge/v1/{appId}/settings/object-definitions | List object definitions for the integrator |

## Key resources

- **Integrator Settings** — Register and configure a media integrator app and its event visibility
- **Media Object Schema** — Define and read the schemas for video, audio, and other media object types
- **Properties** — Create, read, and archive custom properties on media object types in batch or individually
- **Property Groups** — Organise media properties into named groups for the HubSpot UI
- **Events** — Stream playback events such as attention-span and media-played-percent into HubSpot

## Why Jentic

- **Setup:** Wiring HubSpot Media Bridge by hand means registering an OAuth app or minting a private app token, targeting api.hubapi.com, and coding the app registration, schema definitions, and engagement event streaming yourself. Through Jentic you install once, import Media Bridge from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Media Bridge puts the app id in the URL path (/media-bridge/v1/{appId}/...), so a rule can pin your agent to one media app: it can register settings and define schemas for that app. You choose the operations it may call, so batch archiving properties is only available if you include it.
- **Credential handling:** Your HubSpot OAuth token or private app token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a HubSpot media bridge schema' or 'send a media-played-percent event', and Jentic returns the matching Media Bridge operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **CMS Pages** — Pages that often embed the media tracked through Media Bridge
- **Blog Posts** — Blog posts that embed and report on bridged media content
- **Files** — Hosts media files directly on HubSpot rather than through an integrator

## FAQ

### What authentication does the HubSpot Media Bridge API use?

It accepts HubSpot OAuth 2.0 tokens or Private App tokens in the Authorization header, plus a developer hapikey query parameter for some integrator-management endpoints. Jentic stores both forms in its vault and exposes only a scoped execution token to the agent.

### Can I store the actual video file in the Media Bridge?

No. The Media Bridge stores metadata, properties, and engagement events about media that lives on the integrator's platform. Video and audio bytes remain on the integrator's CDN; HubSpot only references them by ID.

### What are the rate limits for the Media Bridge API?

It shares HubSpot's standard public API caps: 100 requests per 10 seconds for OAuth apps and 110 per 10 seconds for Private Apps on Pro and Enterprise. High-volume event ingestion should be batched where possible to stay under those limits.

### How do I send a play event for a specific viewer through Jentic?

Run pip install jentic, search 'send hubspot media played percent event', load the schema, and execute it with the viewer's contactId, the mediaId, and the percentage played. Jentic posts to /media-bridge/v1/events/media-played-percent with the right auth headers.

### Does the Media Bridge support custom event types beyond play percent and attention span?

Not in this spec. The two ingestion endpoints exposed are media-played-percent and attention-span. For richer behavioural tracking, pair Media Bridge with HubSpot's Custom Events API, which supports arbitrary event definitions.

### Can I limit what my agent is allowed to do with the HubSpot Media Bridge API?

Yes. Because you self-host Jentic One, your own rules decide which Media Bridge operations the agent may call and which HubSpot credentials it may use. Since the app id sits in the URL path (/media-bridge/v1/{appId}/...), a rule can pin the agent to a single media app so it can register that app's settings and define its schemas but nothing else. You expose only the operations you choose, so streaming media-played-percent and attention-span events is available only if you include it, and batch-archiving properties stays off unless you allow it.
