Send Multi-Recipient Email
/api/v3/email/send Base URL https://api.easify.liveBearer token and Accept header required Authentication →
This endpoint allows sending emails from Easify, supporting multiple recipients, CC, and BCC.
There is a rate limit of 15 requests per minute per API token. This count is shared by all API endpoints, including GET requests, except those with their own separate limit (/api/v2/sms/send, /api/v3/sms/send, etc.), so this endpoint is refused once your token has made 15 requests to the shared endpoints within a minute. If you exceed this limit, you will receive a 429 Too Many Requests status, along with a message indicating when you can try again.
Request Body
| sender string |
Sender’s Email Address (can be obtained from the email-senders API response) |
Required |
| receiver array |
Receiver (s) Email Address (A maximum of 50 emails are allowed in the array) |
Required |
| cc array |
CC Email Address (s) (A maximum of 50 emails are allowed in the array) |
Optional |
| bcc array |
BCC Email Address (s) (A maximum of 50 emails are allowed in the array) |
Optional |
| subject string | subject for Email | Required |
| message string | Email message body | Required without Attachment |
| attachment string | file | Email Attachment | Required without Message |
| additional_data json | Additional data to send with the email, which will be returned in the email status event webhook | Optional |
| from_name string | The user can set the from_name for the email. By default, the selected sender's from_name will be used | Optional |
Example Request and Response
Request
{
"sender": "news@example.com",
"receiver": ["alex@example.com", "jordan@example.com"],
"cc": ["frontdesk@example.com"],
"bcc": ["records@example.com"],
"subject": "Holiday hours at ABC Company",
"message": "Hello,
ABC Company will be closed on Thursday, November 27. We reopen on Friday, November 28 at 8:00 AM.
ABC Company, 123 Main Street, Springfield, IL 62701
To stop receiving these emails, visit example.com/unsubscribe.
",
"from_name": "ABC Company",
"additional_data": { "name": "Alex", "id": "232" }
}
Success Response:
{
"status": true,
"message": "Email processed successfully",
"data": {
"email_id": "674"
}
}
Responses
| Case | Status Code | Response |
|---|---|---|
| If the user does not provide a token in the header or provides an invalid token | 401 |
{
"status":false,
"message":"Unauthenticated",
"errors":[]
}
|
| If the user's subscription has ended | 402 |
{
"status":false,"message":"You need to recharge your account to proceed","errors":[]
}
|
| If user provided invalid sender email address | 400 |
{
"status": false,
"message": "Invalid Sender!",
"errors": []
}
|
| If the user does not have enough credits to send the email | 400 |
{
"status": false,
"message": "Sorry, you do not have enough credits to send this email. Please recharge for more.",
"errors": []
}
|
| If the user passes an invalid datatype in the receiver instead of an array | 422 |
{
"message":"The receiver field must be an array.",
"errors":
{
"receiver":["The receiver field must be an array."
]
}
}
|
| If the user passes an invalid datatype in the cc instead of an array | 422 |
{
"message":"The cc field must be an array.",
"errors":{
"cc":["The cc field must be an array."]
}
}
|
| If the user passes an invalid datatype in the bcc instead of an array | 422 |
{
"message":"The bcc field must be an array.",
"errors":{
"bcc":["The bcc field must be an array."]
}
}
|
| If the user passes duplicate email addresses | 422 |
{
"message":"Duplicate email addresses are not allowed across receiver, cc, and bcc.",
"errors":{
"receiver":["Duplicate email addresses are not allowed across receiver, cc, and bcc."]
}
}
|
| If the user exceeds the allowed rate limit for requests | 429 |
{
"status":false,
"message":"Too many requests. Try again in 59 seconds",
"errors":[]
}
|
| When the user account is inactive | 403 |
{
"status": false,
"message": "Your account is currently inactive.",
"errors": []
}
|
| If the request comes from an IP address or domain that is not on the account's API whitelist | 400 |
{
"status": false,
"message": "Access denied! Your IP or domain is not whitelisted.[ HostName : ] - [ Ip Address : << YOUR_SERVER_IP >>]",
"errors": []
}
|
Code Examples
php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.easify.live/api/v3/email/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'sender' => 'news@example.com',
'receiver' => [
'alex@example.com',
'jordan@example.com',
],
'cc' => [
'frontdesk@example.com',
],
'bcc' => [
'records@example.com',
],
'subject' => 'Holiday hours at ABC Company',
'message' => 'Hello,
ABC Company will be closed on Thursday, November 27. We reopen on Friday, November 28 at 8:00 AM.
ABC Company, 123 Main Street, Springfield, IL 62701
To stop receiving these emails, visit example.com/unsubscribe.
',
'from_name' => 'ABC Company',
'additional_data' => [
'name' => 'Alex',
'id' => '232',
],
]),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer <> ',
'Content-Type: application/json',
'Accept: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;