Send SMS New

POST/api/v3/sms/send

Base URL https://api.easify.liveBearer token and Accept header required Authentication →

This endpoint is used to send SMS/MMS with a higher rate limit of 10000 requests a minute.

This endpoint allows users to send SMS/MMS messages using their Easify phone number.

When to use this endpoint

This is the recommended endpoint for sending SMS through the API:

  • Allows up to 10000 requests a minute, compared with 1000 for Send SMS (Classic).
  • The request returns straight away with a reference_id, and the message is sent from a queue. This can take up to 1 hour.
  • Most problems, such as not enough credits, show up afterwards as a Failed status, so follow each message with SMS Status (New) or the SMS status webhook.
  • Media must be a public URL. File uploads aren't supported.

This endpoint has its own rate limit of 10000 requests per minute per API token, separate from the other endpoints. If you exceed this limit, you will receive a 429 Too Many Requests status with a message indicating when you can try again.

Messages sent through this endpoint are queued and may take up to 1 hour to be sent. Use the reference_id returned in the response with the sms/status API to track the delivery status of a message.

A successful request returns HTTP 202 Accepted with status Queued. The request itself only checks the fields listed below. All other checks run after the message is queued, including the from number and its SMS/MMS capability, the destination country, the blacklist (when check_blacklist is 1), the media download, credits and the daily segment limit. If one of them fails, the request still returns 202. The message then shows status Failed with the reason in remarks (for example "Selected from number is invalid" or "Sorry, you do not have enough credits to send this SMS. Please recharge for more"), both in sms/status and in the status webhook.

The authenticated user must have access to the SMS feature. Requests made without the proper feature permissions will receive a 490 status code response, indicating that a plan upgrade is required.

Request Body

from_number string From number to send SMS
*Ensure that you are using a phone number associated with the api token,please use the Phone Numbers API to retrieve the associated phone numbers.
*A number without a leading + is treated as a +1 number (+1 is added to its last 10 digits). For any other country, send the full number with + and country code.
Required
to_number string To number to send SMS (No need of attaching country code) Required
message string The content to be sent Required without media
media string Publicly accessible URL of the media file to attach
Required without message
lead_id string CRM lead id(If you have a CRM and need to associate the SMS history with a specific lead, you can use the lead_id to connect the SMS records to the corresponding lead in your CRM) Optional
country_code string Country code for to_number (Currently support +1, +972 and +44 codes) Required
force_send integer If you send an SMS outside of open hours and closing hours, it will be scheduled for the next opening hour. If you need to send it immediately despite being outside of these hours, set force_send to 1 Optional
check_blacklist integer Determines whether the API should check if the recipient number is blacklisted before sending the SMS.
1 = enforce blacklist (block blacklisted numbers), 0 = ignore blacklist and send SMS. Default: 0.
A blocked message is still accepted (202) and then fails with the remark "Sorry, this recipient is blacklisted!"
Optional
sanitize_message integer Set to 1 to convert the message to plain GSM text before sending: look-alike characters such as curly quotes are replaced, and emojis and other non-GSM characters are removed. Default: 0. Optional

Example Request and Response

Request:

{
  "from_number": "315293****",
  "to_number": "315135****",
  "country_code": "+1",
  "message": "Hi Alex, this is ABC Company. Your appointment is confirmed for Tue, Nov 18 at 10:00 AM. Reply STOP to unsubscribe."
}

Success Response:

{
    "status": true,
    "message": "Message queued successully",
    "data": {
        "reference_id": "41a66ba9-3e50-481a-8cc4-db7****",
        "created_at": "2026-07-23T05:04:41.145135Z",
        "updated_at": "2026-07-23T05:04:41.145589Z",
        "status": "Queued",
        "remarks": "Message queued"
    }
}
Easify DNC Registry and chat block do not prevent sending SMS. Only numbers present in the blacklist will be blocked, and only when check_blacklist is 1. With the default (check_blacklist = 0) the blacklist is not checked.

Responses

Case Status Code Response
If the user provides an invalid Easify API token or does not pass the Easify API token in the header. 401 { "status":false, "message":"Unauthenticated", "errors":[] }
If user not provided from_number 422 { "message":"The from_number is required.", "errors": { "from_number": ["The from number is required."] } }
If the user provided invalid country code 422 { "message": "Currently, this service is only available in the following countries: Canada, United States, Israel, United Kingdom. Please verify the country code.", "errors": { "country_code": ["Currently, this service is only available in the following countries: Canada, United States, Israel, United Kingdom. Please verify the country code."] } }
If the user not provided country_code 400 { "message": "The country code field is required.", "errors": { "country_code": ["The country code field is required."] } }
If the user exceeds the allowed rate limit for requests 429 { "status":false, "message":"Too many requests. Try again in 59 seconds", "errors":[] }
If the user's subscription has ended 402 { "status":false,"message":"You need to recharge your account to proceed","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

Send an SMS message
php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.easify.live/api/v3/sms/send',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => json_encode([
    'from_number' => '315293****',
    'to_number' => '315135****',
    'country_code' => '+1',
    'message' => 'Hi Alex, this is ABC Company. Your appointment is confirmed for Tue, Nov 18 at 10:00 AM. Reply STOP to unsubscribe.',
  ]),
  CURLOPT_HTTPHEADER => [
    'Authorization: Bearer <>',
    'Content-Type: application/json',
    'Accept: application/json',
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;