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 '{
  "contactProperties": {},
  "customProperties": {},
  "emailId": 123,
  "message": {
    "bcc": [
      "<string>"
    ],
    "cc": [
      "<string>"
    ],
    "from": "<string>",
    "replyTo": [
      "<string>"
    ],
    "sendId": "<string>",
    "to": "<string>"
  }
}'
{
  "completedAt": "2023-11-07T05:31:56Z",
  "eventId": {
    "created": "2023-11-07T05:31:56Z",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "requestedAt": "2023-11-07T05:31:56Z",
  "sendResult": "SENT",
  "startedAt": "2023-11-07T05:31:56Z",
  "status": "PENDING",
  "statusId": "<string>"
}

Supported products

Requires one of the following products or higher.
Marketing HubMarketing Hub -Professional
Sales HubSales Hub -Free
Service HubService Hub -Free
Content HubContent Hub -Free
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.

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.

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.

Response

successful operation

Describes the status of an email send request.

status
enum<string>
required

Status of the send request.

Available options:
PENDING,
PROCESSING,
CANCELED,
COMPLETE
statusId
string
required

Identifier used to query the status of the send.

completedAt
string<date-time>

Time when the send was completed.

eventId
object

The ID of a send event.

requestedAt
string<date-time>

Time when the send was requested.

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
startedAt
string<date-time>

Time when the send began processing.