SMS Campaign Status

GET/api/v2/sms/campaign/status

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

This endpoint is used to fetch sms campaign status.

The user can fetch the SMS Campaign status using the campaign_id, which is provided in the SMS Campaign Send API response.

There is a rate limit of 60 requests per minute per API token. This limit is shared by all API endpoints except those with their own separate limit (/api/v2/sms/send, /api/v3/sms/send, etc.), so requests to other endpoints also count toward it. If you exceed this limit, you will receive a 429 Too Many Requests status, along with a message indicating when you can try again.

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.

Query Parameters

campaign_id integer Unique identifier for the campaign. Returned in the response of the SMS Campaign Send API. Required

Example Request and Response

Params:

{
  "campaign_id": 313
}

Success Response:

{
  "status": true,
  "message": "SMS Campaign Status Fetched Successfully",
  "data": {
    "campaign_id": 313,
    "status": "Completed",
    "campaign_name": "New",
    "total_recipients_count": 9999,
    "pending_count": 0,
    "running_count": 0,
    "hold_count": 0,
    "success_count": 9999,
    "failed_count": 0,
    "cancelled_count": 0,
    "estimated_credits": 89991,
    "credits_spend": 89991,
    "url_shortening_estimated_credits": 0,
    "url_shortening_credits_spent": 0,
    "scheduled_at": null,
    "scheduled_timezone": null,
    "remarks": "",
    "completed_at": "08-26-2025 01:20:16 AM",
    "cancelled_at": null,
    "created_at": "08-26-2025 01:14:58 AM"
  }
}

SMS Status

Status Description
Preparing/Processing The SMS campaign is in the queue and preparing to start.
Running The SMS campaign has been successfully started and the messages are being sent.
Hold The SMS campaign is on hold. This can happen due to insufficient credits, or it may be placed on hold manually by the user from the web app.
Cancelled The SMS campaign has been cancelled. This may occur if the contact group was updated after the campaign was created (causing a contact count mismatch), if the user manually cancelled it from the web app, or due to other issues.
Completed The SMS campaign is completed, and all messages have been sent.
Scheduled If the user schedules a campaign using schedule_time and schedule_timezone, it will be sent at the scheduled time.

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 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":[] }
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

Fetch the SMS campaign status
php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.easify.live/api/v2/sms/campaign/status?campaign_id=313',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => [
    'Authorization: Bearer <>',
    'Accept: application/json',
  ],
]);

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

echo $response;