GET / sms/campaign/items

Base URL: https://backend.easify.app/api/v2


This endpoint is used to fetch all SMS items within a campaign.

There is a rate limit of 60 requests per 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.

Authentication

The Easify API token used for authentication is passed in the header as a Bearer token, which can be obtained from the easify app under Settings > API Settings.

Headers

Authorization string required Bearer << YOUR_EASIFY_API_TOKEN_HERE >>

Query Parameters

campaign_id integer Unique identifier for the campaign. Returned in the response of the Send SMS Campaign API Required
limit integer Pagination limit for the data (Default :10) Optional

Sample Params and Success Response:

Params:

{
  "campaign_id": 313,
  "limit": 2
}

Success Response:

{
  "status": true,
  "message": "SMS Campaign Items",
  "data": [
    {
      "id": 879871,
      "campaign_id": 313,
      "sender": "+18788802****",
      "receiver": "+13156663***",
      "message": "Hi test. Reply STOP to opt-out.",
      "credits": 9,
      "url_shortening_credits": 0,
      "media_url": null,
      "remarks": null,
      "status": "Success",
      "scheduled_at": null,
      "scheduled_timezone": null,
      "sms_type": "sms",
      "created_at": "08-26-2025 01:04:14 AM"
    },
    {
      "id": 879872,
      "campaign_id": 3556,
      "sender": "+19598000***",
      "receiver": "+13156663***",
      "message": "Hi test.",
      "credits": 9,
      "url_shortening_credits": 0,
      "media_url": null,
      "remarks": null,
      "status": "Success",
      "scheduled_at": null,
      "scheduled_timezone": null,
      "sms_type": "sms",
      "created_at": "08-26-2025 01:04:14 AM"
    }
  ],
  "links": {
    "first": "https://backend.easify.app/api/v2/sms/campaign/items?page=1",
    "last": "https://backend.easify.app/api/v2/sms/campaign/items?page=5000",
    "prev": null,
    "next": "https://backend.easify.app/api/v2/sms/campaign/items?page=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 5000,
    "links": [
      {
        "url": null,
        "label": "« Previous",
        "active": false
      },
      {
        "url": "https://backend.easify.app/api/v2/sms/campaign/items?page=1",
        "label": "1",
        "active": true
      },
    ],
    "path": "https://backend.easify.app/api/v2/sms/campaign/items",
    "per_page": 2,
    "to": 2,
    "total": 9999
  }
}

SMS Status

Status Description
Pending The SMS message is in the queue to be sent
Delivered The SMS message has been successfully delivered to the recipient.
Undelivered The SMS message could not be delivered to the recipient. This could be due to various reasons such as an invalid phone number or network issue.
Failed The SMS message delivery attempt failed. This could be due to a technical issue on the service provider's end
Success The SMS message has been successfully sent to the recipient
Scheduled The SMS is scheduled for a specific time

Api Response Status

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 user not provided campaign_id 422 { "message": "The campaign id field is required.", "errors": { "campaign_id": [ "The campaign id field is required." ] } }
If user provided invalid campaign_id 422 { "message": "The selected campaign id is invalid.", "errors": { "campaign_id": [ "The selected campaign id is invalid." ]} }
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":[] }

PHP-cURL

php 
$curl = curl_init(); 

curl_setopt_array($curl, array( 
CURLOPT_URL => 'https://backend.easify.app/api/v2/sms/campaign/items?campaign_id=3556&limit=2', 
CURLOPT_RETURNTRANSFER => true, 
CURLOPT_ENCODING => '', 
CURLOPT_MAXREDIRS => 10, 
CURLOPT_TIMEOUT => 0, 
CURLOPT_FOLLOWLOCATION => true, 
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
CURLOPT_CUSTOMREQUEST => 'GET', 
CURLOPT_HTTPHEADER => array( 
'Accept: application/json', 
'Authorization: ••••••' 
), 
)); 

$response = curl_exec($curl); 

curl_close($curl); 
echo $response;

pixel for linkedin