Skip to main content
POST
/
v1
/
email
/
send
Send Email Message
curl --request POST \
  --url https://api.heymarket.com/v1/email/send \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "creator_id": 123,
  "inbox": 123,
  "text": "<string>",
  "local_id": "<string>",
  "conv_title": "<string>",
  "targets": [
    "<string>"
  ],
  "convo_id": 123
}
'
{
  "id": 123,
  "convo_id": 123,
  "queued": true,
  "date": "2023-11-07T05:31:56Z",
  "compliance_results": {}
}
Use this endpoint to send email through a connected Heymarket inbox. Start a new conversation with targets, or reply in an existing thread with convo_id.
The text field supports HTML. Include raw_text when you want a plain-text fallback for email clients that do not render HTML.

Authorizations

Authorization
string
header
required

Recommended authentication for new integrations. Generate a short-lived JWT from your API Secret ID and API Secret Key, then pass the signed JWT as a bearer token in the Authorization header.

API Secret credentials are available in the Heymarket app under Settings > Integrations > API. The Secret Key is shown only when it is generated, so copy and store it securely before closing the dialog.

Use the following JWT values:

{
"alg": "HS256",
"typ": "JWT"
}
{
"iss": "YOUR_API_SECRET_ID",
"iat": CURRENT_UNIX_TIMESTAMP
}

Replace CURRENT_UNIX_TIMESTAMP with the current Unix timestamp in seconds when generating the token.

Sign the JWT with HMAC-SHA256 using this signing secret:

YOUR_API_SECRET_ID||YOUR_API_SECRET_KEY

Send the signed JWT as a bearer token:

Authorization: Bearer YOUR_SIGNED_JWT

Tokens expire 5 minutes after the iat timestamp. Generate a new JWT per request, or cache it briefly for less than 5 minutes. Generate JWTs only from trusted server-side code; do not expose the API Secret Key in browser, mobile, or other client-side code.

Body

application/json

Email message json

creator_id
integer
required

Unique identifier for the sender

inbox
integer

Unique identifier for the inbox

text
string

Email message text (HTML supported)

local_id
string

Client unique identifier for the message

conv_title
string

Title for new conversation if creating one

targets
string[]

Array of email addresses with 'to:' or 'cc:' prefixes for new conversations. Each array element can contain multiple comma-separated emails

convo_id
integer

Unique identifier required for an existing conversation to send the email to the same thread

Response

Email sent successfully

id
integer

Message ID

convo_id
integer

Conversation ID

queued
boolean

Whether the message was queued

date
string<date-time>

Send date in ISO format

compliance_results
object

Compliance check results