Log in Sign up
RU EN

API documentation

01 Account information #

Method for getting account information.

GETPOST https://semysms.net/api/3/user.php

Parameters

token required
secret API access key

GET request example

https://semysms.net/api/3/user.php?token=2d9d148edeb50768c22dc6d96f85d60b

Response example

{"code":0,"id_user":1,"is_pay":1,"type_premium":1,"date_end_premium":null,"messages_premium":4998}

Response parameters

id_user
account ID
is_pay
premium account status (0 - free, 1 - premium)
type_premium
premium type (0 - by time, 1 - by the piece)
date_end_premium
premium end date (for a time-based plan)
messages_premium
number of premium messages (for a per-message plan)

02 Sending SMS #

Method for sending a single SMS message to one recipient.

GETPOST https://semysms.net/api/3/sms.php

Parameters

token required
secret API access key
device required
device code from the list of your connected devices. One or several separated by commas. The value active means that all active devices of the account will be used. If several devices are given, or the value is active, the service distributes new SMS between them in turn
phone required
recipient phone number in international format with the country code
msg required
message text, up to 1000 characters
priority
sending priority: the bigger the number, the higher the priority (integer from 0 to 1000000)
add_contact
create a contact in the contact list (0 or empty - no, 1 - create)
name
contact name for creating the number in the contact list
surname
contact surname for creating the number in the contact list
add_plus
forcibly adds a + character to the phone number (0 or empty - not used, 1 - add +)

GET request example

If one device:
https://semysms.net/api/3/sms.php?token=2d9d148edeb50768c22dc6d96f85d60b&device=1&phone=%2B12025550123&msg=Message

If several devices:
https://semysms.net/api/3/sms.php?token=2d9d148edeb50768c22dc6d96f85d60b&device=1,15,25&phone=%2B12025550123&msg=Message

POST request example

<?php
$url    = 'https://semysms.net/api/3/sms.php'; // URL for sending SMS
$phone  = '+12025550123';  // phone number
$msg    = 'Message';  // message
$device = '1';  // your device code
$token  = '2d9d148edeb50768c22dc6d96f85d60b';  // your token (secret)

$data = array(
    'phone'  => $phone,
    'msg'    => $msg,
    'device' => $device,
    'token'  => $token
);

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);
curl_close($curl);

echo $output;

Response example

{"code":"0","id":1201158}

Sending several messages

Method for sending several SMS messages in one request. Parameters are passed in the JSON body of a POST request, in the data array.

POST https://semysms.net/api/3/sms_more.php

Parameters

token required
secret API access key
device required
device code from the list of your connected devices
phone required
recipient phone number in international format with the country code
msg required
message text, up to 1000 characters
my_id
SMS code from your own system: it is returned in the response together with the SemySMS code
priority
sending priority: the bigger the number, the higher the priority (integer from 0 to 1000000)

POST request example

<?php
$url    = 'https://semysms.net/api/3/sms_more.php';  // URL for sending SMS
$device = '1';  // your device code
$token  = '2d9d148edeb50768c22dc6d96f85d60b';  // your token (secret)

$params = array('token' => $token);

for ($i = 1; $i <= $max_count; $i++) {  // fill the array with numbers, messages and device codes
    $params['data'][] = array(
        'my_id'  => $my_id,  // code from your own system, returned together with the SemySMS code
        'device' => $device,
        'phone'  => $phone,
        'msg'    => $msg
    );
}

$params = json_encode($params);

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
$result = curl_exec($curl);
curl_close($curl);

echo $result;

Response example

{
  "code": "0",
  "data": [
    { "my_id": "...", "id": 1201158 }  // the value is present if it was set in the request
  ]
}

03 List of outgoing SMS #

Method for getting a list of outgoing SMS messages.

GETPOST https://semysms.net/api/3/outbox_sms.php

Parameters

token required
secret API access key
device
device code from the list of your connected devices
start_id
start code for filtering the list
end_id
end code for filtering the list
list_id
list of SMS codes separated by commas
date_start
date from which to start filtering
date_end
date up to which to filter
phone
phone number for filtering the list

If start_id, list_id, date_start and date_end are not set, the method returns data for the current day only.

GET request example

https://semysms.net/api/3/outbox_sms.php?token=2d9d148edeb50768c22dc6d96f85d60b&device=1&start_id=1&end_id=371&date_start=2026-01-09%2010:30&date_end=2026-01-09%2022:30&phone=%2B12025550123

Response example

{
  "count": 1,
  "data": [
    {
      "id": 371,
      "phone": "+12025550123",
      "date": "2026-01-09 12:41:13.657724",
      "msg": "test",
      "id_device": 1,
      "send_to_phone": "2026-01-09 12:42:01.490436",
      "is_send_to_phone": 1,
      "is_send": 1,
      "send": "2026-01-09 12:47:31",
      "is_delivered": 1,
      "delivered": "2026-01-09 12:47:33",
      "is_cancel": 0,
      "cancel": null,
      "is_error": 0,
      "is_error_send": 0,
      "error_date": null,
      "is_out": 0,  // the message was created outside the service (for example, manually in WhatsApp on the phone and then uploaded)
      "type": 0     // message type (0 - SMS, 1 - WhatsApp, 2 - WhatsApp Business)
    }
  ]
}

To avoid polling the list, statuses of sent messages can be delivered straight to your own address: WebHook: statuses of sent messages

04 List of incoming SMS #

Method for getting a list of incoming SMS messages.

GETPOST https://semysms.net/api/3/inbox_sms.php

Parameters

token required
secret API access key
device required
device code from the list of your connected devices
start_id
start code for filtering the list
end_id
end code for filtering the list
date_start
date from which to start filtering
date_end
date up to which to filter
phone
phone number for filtering the list

If start_id, date_start and date_end are not set, the method returns data for the current day only.

GET request example

https://semysms.net/api/3/inbox_sms.php?token=2d9d148edeb50768c22dc6d96f85d60b&device=1&start_id=1&end_id=371&date_start=2026-01-09%2010:30&date_end=2026-01-09%2022:30&phone=%2B12025550123

Response example

{
  "count": 1,
  "data": [
    {
      "id": 15,
      "phone": "+12025550123",
      "date": "2026-01-09 13:03:42",
      "msg": "Test",
      "id_device": 1,
      "type": 0  // message type (0 - SMS, 1 - WhatsApp, 2 - WhatsApp Business)
    }
  ]
}

To avoid polling the list, incoming messages can be delivered straight to your own address: WebHook: notification about an incoming SMS to a URL, phone or Telegram

05 List of devices #

Method for getting a list of devices.

GETPOST https://semysms.net/api/3/devices.php

Parameters

token required
secret API access key
is_arhive
filter by the archived flag (1 or 0)
list_id
list of device codes separated by commas

GET request example

https://semysms.net/api/3/devices.php?token=2d9d148edeb50768c22dc6d96f85d60b&is_arhive=0&list_id=1,2,3

Response example

{
  "code": 0,
  "count": 1,
  "data": [
    {
      "id": 351,
      "is_arhive": 0,
      "is_deliv": 1,
      "is_work": 1,
      "power": 1,
      "device_name": "U8186",
      "dop_name": "",
      "speed_sms": 1,
      "date_last_active": "2026-01-09 14:25:29.548563",
      "version": "40",
      "limit_phone": null,
      "limit_use": null,
      "limit_date": "2026-01-08 14:33:39.54061",
      "limit_period": " ",
      "manufacturer": "HUAWEI",
      "android_version": "2.3.6",
      "bat": "58",
      "type": 0
    }
  ]
}

Response parameters

id
device code
is_arhive
in the archive
is_deliv
delivery report
is_work
use for sending
power
the service in the phone is on or off
device_name
device name
dop_name
additional name
speed_sms
SMS sending speed
date_last_active
date of the last device activity
version
app version
limit_phone
the limit that is set
limit_use
how much of the limit is used
limit_date
the date the limit was set
limit_period
limit period
manufacturer
manufacturer
android_version
Android version
bat
battery charge in percent
type
message type (0 - SMS, 1 - WhatsApp, 2 - WhatsApp Business)

06 Cancelling all SMS not yet sent to devices #

Method for cancelling all SMS that have not yet been sent to the devices.

GETPOST https://semysms.net/api/3/cancel_sms.php

Parameters

token required
secret API access key
device
device code from the list of your connected devices
id_sms
SMS code from the list of sent messages

GET request example

https://semysms.net/api/3/cancel_sms.php?token=2d9d148edeb50768c22dc6d96f85d60b&device=1

07 Deleting outgoing SMS #

Method for deleting outgoing SMS messages.

GETPOST https://semysms.net/api/3/del_outbox_sms.php

Parameters

token required
secret API access key
device required
device code from the list of your connected devices
start_id
start code for filtering the list
end_id
end code for filtering the list
list_id
list of SMS codes separated by commas
date_start
date from which to start filtering
date_end
date up to which to filter
phone
phone number for filtering the list

If start_id, list_id, date_start and date_end are not set, the method deletes data for the current day only.

GET request example

https://semysms.net/api/3/del_outbox_sms.php?token=2d9d148edeb50768c22dc6d96f85d60b&device=1&start_id=1&end_id=371&date_start=2026-01-09%2010:30&date_end=2026-01-09%2022:30&phone=%2B12025550123

Response example

{
  "count": 1,
  "data": [
    {
      "id": 371,
      "phone": "+12025550123",
      "date": "2026-01-09 12:41:13.657724",
      "msg": "test",
      "id_device": 1,
      "send_to_phone": "2026-01-09 12:42:01.490436",
      "is_send_to_phone": 1,
      "is_send": 1,
      "send": "2026-01-09 12:47:31",
      "is_delivered": 1,
      "delivered": "2026-01-09 12:47:33",
      "is_error": 0,
      "is_error_send": 0,
      "error_date": null
    }
  ]
}

08 Deleting incoming SMS #

Method for deleting incoming SMS messages.

GETPOST https://semysms.net/api/3/del_inbox_sms.php

Parameters

token required
secret API access key
device required
device code from the list of your connected devices
start_id
start code for filtering the list
end_id
end code for filtering the list
date_start
date from which to start filtering
date_end
date up to which to filter
phone
phone number for filtering the list

If start_id, date_start and date_end are not set, the method deletes data for the current day only.

GET request example

https://semysms.net/api/3/del_inbox_sms.php?token=2d9d148edeb50768c22dc6d96f85d60b&device=1&start_id=1&end_id=371&phone=%2B12025550123

Response example

{
  "count": 1,
  "data": [
    {
      "id": 15,
      "phone": "+12025550123",
      "date": "2026-01-09 13:03:42",
      "msg": "Test",
      "id_device": 1
    }
  ]
}