---
title: "Send an email"
method: POST
path: "/marketing/email-campaigns/2026-09/single-send"
tags: ["Advanced"]
---

# Send an email

`POST /marketing/email-campaigns/2026-09/single-send`

## Request

- Base URL: `https://api.hubapi.com`
- URL: `https://api.hubapi.com/marketing/email-campaigns/2026-09/single-send`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `transactional-email`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `marketing-email`

Send a template email to a specific recipient.

## Request body

- PublicSingleSendRequestEgg
  - `contactProperties` object, required: The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you’re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment.
  - `customProperties` object, required: The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}. Note: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property.
  - `emailId` integer, required: The content ID for the email, which can be found in email tool UI.
  - `message` PublicSingleSendEmail, required
    - `bcc` string[], required: List of email addresses to send as Bcc.
    - `cc` string[], required: List of email addresses to send as Cc.
    - `from` string: The From header for the email.
    - `replyTo` string[], required: List of Reply-To header values for the email.
    - `sendId` string: ID for a particular send. No more than one email will be sent per sendId.
    - `to` string: The recipient of the email.

## Response `200`

successful operation

- EmailSendStatusView
  - `completedAt` string, date-time: Time when the send was completed.
  - `eventId` EventIdView
    - `created` string, date-time, required: Time of event creation.
    - `id` string, uuid, required: Identifier of event.
  - `message` string: A human readable message describing the error along with remediation steps where appropriate
  - `requestedAt` string, date-time: Time when the send was requested.
  - `sendResult` 'ADDRESS_LIST_BOMBED' | 'ADDRESS_ONLY_ACCEPTED_ON_PROD' | 'ADDRESS_OPTED_OUT' | 'ATTACHMENT_DOWNLOAD_QUEUE_FULL' | 'BLOCKED_ADDRESS' | 'BLOCKED_DOMAIN' | 'BRAND_RECIPIENT_FATIGUE_SUPPRESSED' | 'CAMPAIGN_CANCELLED' | 'CANCELLED_ABUSE' | 'CONTACT_VIEW_PERMISSION' | 'CORRUPT_INPUT' | 'EMAIL_DISABLED' | 'EMAIL_UNCONFIRMED' | 'GDPR_DOI_ENABLED' | 'GRAYMAIL_SUPPRESSED' | 'HUBL_LIMIT_EXCEEDED' | 'IDEMPOTENT_FAIL' | 'IDEMPOTENT_IGNORE' | 'INVALID_APP_ID_ATTRIBUTION' | 'INVALID_FROM_ADDRESS' | 'INVALID_TO_ADDRESS' | 'LOW_CONTACT_QUALITY_SCORE' | 'MARKETING_ACTIVATION_DISALLOWED' | 'MISSING_CONTENT' | 'MISSING_REQUIRED_PARAMETER' | 'MISSING_TEMPLATE_PROPERTIES' | 'MTA_IGNORE' | 'NON_MARKETABLE_CONTACT' | 'PORTAL_AUTHENTICATION_FAILURE' | 'PORTAL_EXPIRED' | 'PORTAL_MISSING_MARKETING_SCOPE' | 'PORTAL_NOT_AUTHORIZED_FOR_APPLICATION' | 'PORTAL_OVER_LIMIT' | 'PORTAL_SUSPENDED' | 'PREVIOUS_SPAM' | 'PREVIOUSLY_BOUNCED' | 'PREVIOUSLY_UNSUBSCRIBED_BRAND' | 'PREVIOUSLY_UNSUBSCRIBED_BUSINESS_UNIT' | 'PREVIOUSLY_UNSUBSCRIBED_MESSAGE' | 'PREVIOUSLY_UNSUBSCRIBED_PORTAL' | 'QUARANTINED_ADDRESS' | 'QUEUED' | 'RECIPIENT_FATIGUE_SUPPRESSED' | 'SENT' | 'TEMPLATE_RENDER_EXCEPTION' | 'THROTTLED' | 'TOO_MANY_RECIPIENTS' | 'UBB_GOVERNANCE_MISSING' | 'UNCONFIGURED_SENDING_DOMAIN' | 'UNDELIVERABLE' | 'VALIDATION_FAILED': Result of the send.
  - `startedAt` string, date-time: Time when the send began processing.
  - `status` 'CANCELED' | 'COMPLETE' | 'PENDING' | 'PROCESSING', required: Status of the send request.
  - `statusId` string, required: Identifier used to query the status of the send.

## Other responses

- `default`: An error occurred.

## Changes

- **2026-10-10** (2026-09) `04c086ca30d6`: 2 info
  - the security scope `transactional-email` was added to the endpoint's security scheme `oauth2`
  - the security scope `marketing-email` was removed from the endpoint's security scheme `oauth2`

[Operation history](https://skmtc.dev/hubspot/apis/marketing-single-send/changes/marketing/email-campaigns/2026-09/single-send/post.md)

---

[API](https://skmtc.dev/hubspot/apis/marketing-single-send.md) - [All operations](https://skmtc.dev/hubspot/apis/marketing-single-send/llms.txt) - [OpenAPI document](https://skmtc.dev/hubspot/apis/marketing-single-send/revisions/04c086ca30d6?raw)
