canonical: https://jentic.com/apis/hubapi.com/hubspot-marketing-api

# HubSpot Marketing Events Extension

Jentic publishes the only available OpenAPI specification for the HubSpot Marketing Events Extension, keeping it validated and agent-ready. The Marketing Events Extension API registers external marketing events - webinars, conferences, virtual sessions - inside HubSpot so contact attendance and registration are visible alongside other CRM activity. Apps create or upsert events by externalEventId, search and cancel events, and record per-attendee state transitions like REGISTERED, ATTENDED, or CANCELLED. It bridges third-party event platforms (Zoom, On24, Eventbrite) with HubSpot's marketing record.

## For AI agents

Register external marketing events and per-attendee state transitions in HubSpot so contact attendance is recorded against the CRM contact.

## Scope

Does not handle email sends, marketing campaign creation, or contact list management - use for marketing event registration and attendance state only.

## Capabilities

- Register a new marketing event by externalEventId
- Upsert a batch of events to keep HubSpot in sync with an external event platform
- Record per-attendee state transitions (REGISTERED, ATTENDED, CANCELLED, NO_SHOW)
- Cancel or complete an event and propagate the change to attendee records
- Search marketing events by name, organiser, or time window
- Configure app-level settings for the marketing events integration
- Update attendee state by email when the contact is not yet known to HubSpot

## Use cases

### Webinar Platform Sync

Companies running webinars on Zoom, On24, or GoToWebinar push every event and attendance update into HubSpot via this API. The events upsert endpoint keeps HubSpot in sync with the event platform, and the per-state attendance endpoints record who registered and who actually showed up. Marketing then segments and follows up based on attendance state.

Example prompt: Upsert event with externalEventId 'zoom-12345', name 'Q3 Product Launch Webinar', startDateTime '2026-09-15T17:00:00Z', then mark contactId 99887 as ATTENDED

### Per-Attendee State Transitions

Every attendee moves through registration, attendance, and follow-up states. The /attendance/{externalEventId}/{subscriberState}/create endpoint records a new attendee in a given state, and the email-create variant accepts an email address for contacts that may not yet exist in HubSpot. The upsert variants handle the case where the attendee record might already be present.

Example prompt: Call POST /marketing/v3/marketing-events/attendance/zoom-12345/ATTENDED/email-create with email 'jane@example.com' and joinedAt timestamp

### Event Lifecycle Management

When events get postponed or cancelled, every contact who registered needs the attendance record updated and HubSpot's view of the event marked accordingly. The cancel and complete endpoints transition the event itself, and the search endpoint helps the integration find existing events by name when an externalEventId is not known. Delete handles archival of events that should no longer appear in reports.

Example prompt: Call POST /marketing/v3/marketing-events/events/zoom-12345/cancel to mark the event cancelled and trigger downstream attendee updates

### Agent-Driven Event Registration

An AI agent that runs the company's webinar operations uses Jentic to register attendees as they sign up on a third-party platform. It searches for 'register hubspot marketing event attendee', loads the schema, and posts the attendee state transition immediately so HubSpot's segmentation always reflects the current attendee list.

Example prompt: Search Jentic for 'mark hubspot event attendee', load the schema, and post the REGISTERED state transition for each new sign-up

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /marketing/v3/marketing-events/events/upsert | Upsert a batch of marketing events |
| POST | /marketing/v3/marketing-events/events/search | Search marketing events |
| POST | /marketing/v3/marketing-events/events/{externalEventId}/cancel | Cancel an event |
| POST | /marketing/v3/marketing-events/events/{externalEventId}/complete | Mark an event complete |
| POST | /marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create | Record an attendee state transition by contactId |
| POST | /marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create | Record an attendee state transition by email |
| GET | /marketing/v3/marketing-events/{appId}/settings | Get app-level marketing events settings |

## Key resources

- **Events** — Create, upsert, search, cancel, complete, and delete marketing events by externalEventId
- **Attendance** — Record per-attendee state transitions by contactId or email
- **Settings** — Configure app-level integration settings for the marketing events extension

## Why Jentic

- **Setup:** Wiring the HubSpot Marketing Events Extension by hand means handling both OAuth and app-token auth against api.hubapi.com and tracking external event ids and subscriber states across the upsert and attendance calls yourself. Through Jentic you install once, import the Marketing Events Extension from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** The event and attendance operations carry the external event id and subscriber state in the URL path while the payloads travel in the request body, so limit the agent to the operations it needs, such as upserting or searching events. You choose that set, so cancelling an event with the /cancel operation is not included unless you add it.
- **Credential handling:** Your HubSpot credential 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 marketing event', and Jentic returns POST /marketing/v3/marketing-events/events/upsert with its input schema, including the externalEventId, name, and time fields, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Marketing Events Extension (mirrored)** — An equivalent listing of the same Marketing Events Extension API surface
- **HubSpot Events API** — The Events API reads CRM event timelines that marketing event attendance writes to
- **HubSpot Subscriptions** — Subscriptions store the consent that gates marketing follow-up after an event

## FAQ

### Why is there no official OpenAPI spec for the HubSpot Marketing Events Extension?

HubSpot does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call the HubSpot Marketing Events Extension via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the HubSpot Marketing Events Extension API use?

It accepts the developer hapikey query parameter, OAuth 2.0 access tokens, the private-app-legacy header, and the hapikey query parameter as a legacy fallback. Jentic stores all of these in its encrypted vault and provides agents with scoped tokens at execution time.

### Can I record attendance for a contact that does not yet exist in HubSpot?

Yes. Use POST /marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create with the contact's email address. HubSpot creates or updates the contact record to match and records the attendance state in the same call.

### What are the rate limits for the HubSpot Marketing Events Extension API?

Standard HubSpot API limits apply: 100 requests per 10 seconds per private app token and 110 per 10 seconds per OAuth app per portal. For high-volume webinar imports, use the events upsert batch endpoint and the email-upsert attendance variants instead of one call per attendee.

### How do I register a marketing event through Jentic?

Search Jentic for 'create hubspot marketing event', load the schema for POST /marketing/v3/marketing-events/events/upsert, and execute with an array of events keyed by externalEventId. For one event at a time, POST /marketing/v3/marketing-events/events with the event payload.

### Is the Marketing Events Extension API free?

API access is included with any HubSpot subscription that has Marketing Hub features. Marketing event records appear on contact timelines and in Marketing Hub reports; the depth of reporting depends on the Marketing Hub subscription tier.

### Can I limit what my agent is allowed to do with the HubSpot Marketing Events Extension API?

Yes. Because you run Jentic One yourself, your own rules decide which of these operations the agent may call and which credential it uses. You can allow only the operations the agent needs, such as upserting events or searching events and recording attendance state by contactId or email, while leaving out others. Destructive operations like cancelling an event with the /cancel path are not available to the agent unless you explicitly add them.
