Skip to main content
POST
/
marketing
/
v3
/
transactional
/
single-email
/
send
Send a single transactional email asynchronously.
curl --request POST \
  --url https://api.hubapi.com/marketing/v3/transactional/single-email/send \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "customProperties": {},
  "emailId": 123,
  "message": {
    "cc": [
      "<string>"
    ],
    "sendId": "<string>",
    "bcc": [
      "<string>"
    ],
    "replyTo": [
      "<string>"
    ],
    "from": "<string>",
    "to": "<string>"
  },
  "contactProperties": {}
}'
{
  "eventId": {
    "created": "2023-11-07T05:31:56Z",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "completedAt": "2023-11-07T05:31:56Z",
  "statusId": "<string>",
  "sendResult": "SENT",
  "requestedAt": "2023-11-07T05:31:56Z",
  "startedAt": "2023-11-07T05:31:56Z",
  "status": "PENDING"
}
Supported products
Requires one of the following products or higher.
Marketing Hub
Marketing HubProfessional
Sales Hub
Sales HubFree
Service Hub
Service HubFree
Content Hub
Content HubFree

Required Scopes

This API requires one of the following scopes:
  • transactional-email

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json

A request object describing the email to send.

A request to send a single transactional email asynchronously.

emailId
integer
required

The content ID for the transactional email, which can be found in email tool UI.

message
object
required

A JSON object containing anything you want to override.

customProperties
object

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.

contactProperties
object

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 reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment.

Response

successful operation

Describes the status of an email send request.

statusId
string
required

Identifier used to query the status of the send.

status
enum<string>
required

Status of the send request.

Available options:
PENDING,
PROCESSING,
CANCELED,
COMPLETE
eventId
object

The ID of a send event.

completedAt
string<date-time>

Time when the send was completed.

sendResult
enum<string>

Result of the send.

Available options:
SENT,
IDEMPOTENT_IGNORE,
QUEUED,
IDEMPOTENT_FAIL,
THROTTLED,
EMAIL_DISABLED,
PORTAL_SUSPENDED,
INVALID_TO_ADDRESS,
BLOCKED_DOMAIN,
PREVIOUSLY_BOUNCED,
EMAIL_UNCONFIRMED,
PREVIOUS_SPAM,
PREVIOUSLY_UNSUBSCRIBED_MESSAGE,
PREVIOUSLY_UNSUBSCRIBED_PORTAL,
INVALID_FROM_ADDRESS,
CAMPAIGN_CANCELLED,
VALIDATION_FAILED,
MTA_IGNORE,
BLOCKED_ADDRESS,
PORTAL_OVER_LIMIT,
PORTAL_EXPIRED,
PORTAL_MISSING_MARKETING_SCOPE,
MISSING_TEMPLATE_PROPERTIES,
MISSING_REQUIRED_PARAMETER,
PORTAL_AUTHENTICATION_FAILURE,
MISSING_CONTENT,
CORRUPT_INPUT,
TEMPLATE_RENDER_EXCEPTION,
GRAYMAIL_SUPPRESSED,
UNCONFIGURED_SENDING_DOMAIN,
UNDELIVERABLE,
CANCELLED_ABUSE,
QUARANTINED_ADDRESS,
ADDRESS_ONLY_ACCEPTED_ON_PROD,
PORTAL_NOT_AUTHORIZED_FOR_APPLICATION,
ADDRESS_LIST_BOMBED,
ADDRESS_OPTED_OUT,
RECIPIENT_FATIGUE_SUPPRESSED,
TOO_MANY_RECIPIENTS,
PREVIOUSLY_UNSUBSCRIBED_BRAND,
NON_MARKETABLE_CONTACT,
PREVIOUSLY_UNSUBSCRIBED_BUSINESS_UNIT,
GDPR_DOI_ENABLED
requestedAt
string<date-time>

Time when the send was requested.

startedAt
string<date-time>

Time when the send began processing.