Sending Email

The empowers you to send personalized and high-performance email communications—whether for marketing campaigns, transactional messages, or customer engagement workflows.

Whether you're sending a single message, the Messaging API ensures your emails are delivered efficiently and securely.

Built on top of Amazon SES, the API enforces best practices for deliverability and domain authentication, helping you maximize inbox placement and minimize bounce rates.

Email Onboarding

Before you can begin sending emails through the Messaging API, your sender email address must be verified. This verification is required to ensure compliance with industry standards and improve deliverability.

Step 1: Sender Email Verification

If you plan to send bulk or high-volume emails, you must first verify your sender email address.

To begin this process:

  • Contact our Support Team.
  • Provide the email address you want to use as your sender.
  • The Support Team will initiate the verification process on your behalf.

Step 2: Amazon SES Authorization

Once the verification request is submitted:

  • You will receive an automated email from Amazon Web Services (SES).

  • This email will include a confirmation link to authorize the sender address.



To complete the verification:

  • Open the email from Amazon SES.
  • Click the verification link to confirm your sender address.
  • Once verified, your email address will be approved for sending through the API, and you’ll be ready to deliver messages at scale.

Before sending Emails, we recommend you read the Email Best Practices section, because it's essential that you monitor the number of hard bounces in your email program, and that you remove hard-bouncing email addresses from your recipient lists. When email receivers detect a high rate of hard bounces, they assume you don't know your recipients well. As a result, a high hard bounce rate can negatively impact the deliverability of your email messages. And your account could be suspended from sending more emails when the Bounce Rate is 5% or higher.

Sending Email

Once your sender email address is verified, you're ready to start sending emails using the Messaging API.

📘

NOTE

The total number of API Calls (requests) that the user can make to the POST /notification endpoint in a certain time has been limited. That is, in case the user exceeds the limit of requests (messages sent) that can be made in a specific time, he/she will not be able to send another request until the established time is up. Once the time has elapsed, the request counter is reset and the request can be sent to the endpoint again.

In this example, the user can send 2 requests in 300 seconds (5 minutes). When a third request is sent within the 5 minute range, the HTTP Status Code “429” will be generated and the following parameter will be displayed from the Response body: "errors": { "reason": Too Many Requests" }. This code tells you that the user has sent too many requests in a given amount of time. Once the required time has elapsed, the request counter is reset to 2, so the user will be able to send two requests again in 5 minutes.

To find out if the user exceeds the limit of required requests and the time he/she needs to wait to send the next request, we recommend consulting the Response Header (additional information about the body of the resource). The parameters presented in the response header are the following:

ratelimit-limit: 2
ratelimit-policy: 2;w= 300
ratelimit-remaining: 1
ratelimit-reset: 5m0s

  • RateLimit-Limit: return the number of requests left for the client in the time window
  • RateLimit-Remaining: return the remaining quota in the current window
  • RateLimit-Reset: return the time remaining in the current window, specified in seconds
  • RateLimit-Policy: return the quota policy. The quota policy expression can be found in paragraph 2.1 of the IETF draft. The format is, for example, for 2 requests in 300 seconds.

When you send an Email message, the request body contains the following data:

HTTP Request : POST / notification

{
  "channel": "EMAIL",
  "request": {
    "from": "[email protected]",
    "to": "[email protected]",
    "message": "Hi, this is a new promotion for November!",
    "subject": "Email Subject"
  },
  "callbacks": [
    "http://www.mycallback.com?id=123"
  ]
}

The parameters presented in the request body example when sending the Email are the following:

Parameter Required Description
channel Yes

Specifies the type of delivery channel which the notification message will be sent: "SMS", "EMAIL", "PUSH", "RCS", "WHATSAPP".

In this case, we enter the "EMAIL" value to send the Email message.

request Yes Message content.
request.from Yes Sender's verified email address.
request.to Yes Recipient’s email address.
request.message Yes

Email content (can be plain text or HTML).

request.subject Yes Subject line of the email.
request.externalId No Alphanumeric identifier used for reporting purposes.
request.clientId No Unique user identifier that can be used for reporting purposes. This is an identifier you can use to uniquely identify the destination address in your systems. This is similar to the externalId and will be sent back to you if you are requesting callbacks that contain status changes of the messages you send.
callbacks No

Indicate one or more (separated by comma) webhook URLs to notify about the status of the message delivery.That is, If you want to receive the status of the message you've sent to your subscribers, you need to specify your endpoint.

Your endpoint must have a HTTP POST access method and receive a JSON body.

The URL is the external callback where the events of the Email will be registered and published. Once an email is processed, its status will be posted to your callback URL.

To view the full list and meaning of each status, please refer to the Email Status section.

Once the Email notification message has been sent, the response body contains the following data:

{
  "meta": {
    "timestamp": 1642531254980,
    "transactionId": "077da1d0-e089-487e-aed0-59534ba2d9f5",
    "explain": "Send Notification"
  }
}

The parameters presented in the response body example when sending the Email notification message are the following:

Parameter Description
meta "meta" segment is dedicated to metadata regarding the call itself.
meta.timestamp

Call’s time mark.

Sequence of characters identifying when the message has been sent.

meta.transactionId Call’s transaction ID, this will help our teams to locate issues faster if arose.
meta.explain Useful message regarding the operation or the call.

The Messaging API publishes the Email message in the Email API queue, for this reason the response generates the “meta” segment.