canonical: https://jentic.com/apis/hubspot.com/hubspot-marketing-emails

# HubSpot Marketing Emails

The HubSpot Marketing Emails API manages the lifecycle of marketing email assets - drafts, AB-test variations, revisions, publishing, and statistics. It supports listing emails, publishing a draft to send, creating and reading AB-test variations, resetting and restoring drafts from prior revisions, and pulling per-email statistics with both list and histogram aggregations. With 19 endpoints across the email, draft, AB-test, revisions, and statistics paths, it gives marketing-ops the editorial workflow plus the reporting layer for outbound email programmes.

## For AI agents

Manage HubSpot marketing email drafts, AB-test variations, revisions, and publishing, plus pull per-email statistics for reporting.

## Scope

Does not send transactional one-off emails, manage CRM contact lists, or handle SMS - use for managing marketing email asset drafts, AB tests, revisions, and statistics only.

## Capabilities

- Publish a draft marketing email so it transitions from edit-mode to send-ready
- Create an AB-test variation of an existing email and read the variation back by id
- Reset a draft back to the last published state for safe rollback
- Restore a previous revision into the draft slot to recover earlier content
- Pull per-email send statistics as a list or as a histogram across time buckets
- List, retrieve, and update marketing email assets through the email lifecycle

## Use cases

### Editorial Workflow Automation

Automate the marketing email editorial workflow by scripting the draft-to-publish lifecycle. Update the draft via the draft endpoint, run validation, then call POST /marketing/v3/emails/{emailId}/publish to push it live. If something goes wrong, reset the draft to the last published state or restore a prior revision into the draft slot - both are first-class operations rather than database hacks.

Example prompt: Call POST /marketing/v3/emails/{emailId}/publish to push the current draft live, or POST /marketing/v3/emails/{emailId}/draft/reset to roll back to the last published state.

### AB Test Variation Setup

Set up AB tests by creating a variation of an existing marketing email through POST /marketing/v3/emails/ab-test/create-variation, then read the variation back by id and the original email's variation list to confirm the test is wired correctly. HubSpot handles traffic splitting and winner selection once the variation is published; this API gives the agent the structural setup.

Example prompt: Call POST /marketing/v3/emails/ab-test/create-variation with the source emailId, then GET /marketing/v3/emails/{emailId}/ab-test/get-variation to confirm.

### Email Engagement Reporting

Pull per-email send statistics for dashboards and weekly digests. The list endpoint returns a flat statistics record per email; the histogram endpoint buckets engagement (opens, clicks, deliveries) over time so you can plot trend charts without aggregating client-side. Useful for marketing-ops bots that publish channel performance every Monday.

Example prompt: Call GET /marketing/v3/emails/statistics/list filtered by emailId, or GET /marketing/v3/emails/statistics/histogram with a time bucket interval to plot trends.

### AI Agent Email QA via Jentic

An AI agent that QAs marketing emails before each send checks the latest draft, validates copy and links, then calls publish if checks pass. The agent searches Jentic for HubSpot email operations, loads schemas for the draft-read and publish endpoints, and chains them. Jentic stores the OAuth token so the agent never handles raw credentials.

Example prompt: Search Jentic for "publish hubspot marketing email", load the schema for POST /marketing/v3/emails/{emailId}/publish, and execute after the QA checks pass.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /marketing/v3/emails/{emailId}/publish | Publish the current draft of a marketing email |
| GET | /marketing/v3/emails/{emailId}/draft | Read the current draft of a marketing email |
| POST | /marketing/v3/emails/{emailId}/draft/reset | Reset the draft back to the last published version |
| POST | /marketing/v3/emails/ab-test/create-variation | Create an AB-test variation of an email |
| GET | /marketing/v3/emails/{emailId}/ab-test/get-variation | Read an AB-test variation by source email id |
| POST | /marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft | Restore a prior revision into the draft slot |
| GET | /marketing/v3/emails/statistics/list | List per-email engagement statistics |
| GET | /marketing/v3/emails/statistics/histogram | Get a histogram of email engagement |

## Key resources

- **Emails** — Marketing email assets - listed, retrieved, updated, published.
- **Drafts** — Editable in-progress version of an email, separate from the published copy.
- **AB Test Variations** — Sibling email records that participate in an AB test.
- **Revisions** — Historical versions of an email that can be restored into the draft slot.
- **Statistics** — Per-email engagement statistics, available as list or histogram.

## Why Jentic

- **Setup:** Wiring HubSpot Marketing Emails by hand means learning its OAuth2 access token auth, targeting the api.hubapi.com host, and handling draft, AB test, revision, and statistics calls yourself. Through Jentic you install once, import HubSpot Marketing Emails from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The Marketing Emails API puts the email id in the URL path (/marketing/v3/emails/{emailId}), so a rule can pin your agent to one email for reading its draft and AB test variation. You choose the operations it may call, so publishing, resetting a draft, or restoring a revision are not included unless you add them.
- **Credential handling:** Your HubSpot access 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 'publish a HubSpot marketing email' or 'get email statistics', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Marketing Single-send** — Trigger a one-off send of a marketing email to a single recipient
- **Marketing Emails V3** — Newer rollout of the marketing emails endpoints with overlapping scope
- **Marketing Campaigns** — Attach marketing emails to campaigns for cross-asset attribution
- **SendGrid Mail** — Dedicated email delivery API focused on transactional and high-volume sends

## FAQ

### What authentication does the Marketing Emails API use?

It accepts HubSpot OAuth 2.0 access tokens or private app tokens, sent as Bearer in the Authorization header. Through Jentic, the token is stored encrypted in your Jentic One instance and injected at execution time.

### Can I publish a marketing email programmatically?

Yes. Call POST /marketing/v3/emails/{emailId}/publish to publish the current draft. The endpoint moves the draft into the published slot and queues the email for send according to its configured schedule.

### How do I roll back an email if a draft change went wrong?

Two paths: POST /marketing/v3/emails/{emailId}/draft/reset reverts the draft to the last published state, or POST /marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft restores a specific historical revision.

### What are the rate limits for the Marketing Emails API?

Account-level limits are 100 requests per 10 seconds across HubSpot's authenticated APIs, with daily caps that depend on the subscription tier. Statistics endpoints are read-heavy - cache the histogram response in your dashboard layer.

### How do I publish a marketing email through Jentic?

Run pip install jentic, search for "publish hubspot marketing email", load the schema for POST /marketing/v3/emails/{emailId}/publish, and execute with the email id. Get started with Jentic One, the self-hosted execution layer.

### Does this API send a single ad-hoc email to one recipient?

No. For one-off transactional sends use the Marketing Single-send API. This API is for managing the marketing email asset lifecycle and bulk send programmes.

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

Yes. Because you run Jentic One yourself, your own rules decide which operations the agent may call and which credentials it may use. This API puts the email id in the URL path (/marketing/v3/emails/{emailId}), so you can pin the agent to one email and grant only read operations like reading its draft or its AB-test variation. Higher-impact operations such as POST /marketing/v3/emails/{emailId}/publish, draft/reset, or restoring a revision stay off unless you explicitly add them.
