Introduction
This documentation aims to provide all the information you need to work with our API.
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
        Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token by visiting your dashboard and clicking Generate API token.
Call Log
Call Log
List all calls
requires authentication
Returns a list of calls. The calls are returned sorted by creation date, with the most recently created call appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/calls?type=Incoming&sim=1&answered=" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/calls"
);
const params = {
    "type": "Incoming",
    "sim": "1",
    "answered": "0",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/calls';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'type' => 'Incoming',
            'sim' => '1',
            'answered' => '0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/calls'
params = {
  'type': 'Incoming',
  'sim': '1',
  'answered': '0',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
    "data": [
        {
            "id": 141,
            "number": "973-450-3511",
            "type": "Missed",
            "sim_id": 1,
            "started_at": "1991-01-07T14:12:01.000000Z",
            "duration": 1912
        },
        {
            "id": 142,
            "number": "724-602-7973",
            "type": "Voicemail",
            "sim_id": 1,
            "started_at": "1988-04-26T00:07:31.000000Z",
            "duration": 1669
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 100,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the call.
number  
string 
  
The phone number of the call.
type  
string 
  
The type of the call.
sim_id  
integer 
  
The ID of the SIM used for the call.
started_at  
string 
  
The time when the call was started.
duration  
integer 
  
The duration of the call in seconds.
Delete a call
requires authentication
Permanently deletes a call.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/calls/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/calls/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/calls/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/calls/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                Campaigns
Campaigns
List all campaigns
requires authentication
Returns a list of campaigns. The campaigns are returned sorted by creation date, with the most recently created campaign appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/campaigns?status=Sent&type=MMS&recurring=1&after=2021-01-01&before=2025-01-01" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/campaigns"
);
const params = {
    "status": "Sent",
    "type": "MMS",
    "recurring": "1",
    "after": "2021-01-01",
    "before": "2025-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/campaigns';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'status' => 'Sent',
            'type' => 'MMS',
            'recurring' => '1',
            'after' => '2021-01-01',
            'before' => '2025-01-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/campaigns'
params = {
  'status': 'Sent',
  'type': 'MMS',
  'recurring': '1',
  'after': '2021-01-01',
  'before': '2025-01-01',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
    "data": [
        {
            "id": 7,
            "name": "Leo Gusikowski",
            "scheduled_at": null,
            "timezone": "Atlantic/Faroe",
            "recurring": false,
            "frequency": null,
            "frequency_unit": null,
            "ends_at": null,
            "repeat_at": null,
            "active_hours": "09:00-17:00",
            "days_of_week": [
                1,
                3,
                5,
                6,
                7
            ],
            "status": "Processed",
            "type": "USSD Pull",
            "options": {
                "delay": "39",
                "prioritize": false
            },
            "created_at": "2025-09-08T05:42:25.000000Z",
            "updated_at": "2025-09-08T05:42:25.000000Z"
        },
        {
            "id": 8,
            "name": "Mr. Orland Hermiston II",
            "scheduled_at": "2026-05-01T21:31:16.000000Z",
            "timezone": "America/Boise",
            "recurring": false,
            "frequency": null,
            "frequency_unit": null,
            "ends_at": null,
            "repeat_at": null,
            "active_hours": "09:00-17:00",
            "days_of_week": [
                1,
                2,
                4,
                5
            ],
            "status": "Processed",
            "type": "SMS",
            "options": {
                "delay": "60",
                "prioritize": false,
                "delivery_report": false
            },
            "created_at": "2025-09-08T05:42:25.000000Z",
            "updated_at": "2025-09-08T05:42:25.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 100,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the campaign.
name  
string 
  
The name of the campaign.
scheduled_at  
string 
  
The date and time when the campaign is scheduled to run.
timezone  
string 
  
The timezone of the campaign.
recurring  
boolean 
  
Whether the campaign is recurring.
frequency  
integer 
  
The frequency of the campaign.
frequency_unit  
string 
  
The unit of the frequency.
ends_at  
string 
  
The date and time when the recurring campaign ends.
repeat_at  
string 
  
The date and time when the campaign is scheduled to repeat.
active_hours  
string 
  
The timespan of a day when the campaign is active.
days_of_week  
integer[] 
  
The days of the week when the campaign is active.
status  
string 
  
The status of the campaign.
type  
string 
  
The type of the campaign.
                options  
object 
  
The options of the campaign.
            
                                                delay  
string 
  
The delay between each item before sending the next one.
prioritize  
boolean 
  
Whether to prioritize the campaign.
delivery_report  
boolean 
  
Whether to request delivery report for SMS.
created_at  
string 
  
The date and time the campaign was created.
updated_at  
string 
  
The date and time the campaign was last updated.
Retrieve a campaign
requires authentication
Retrieves a Campaign object.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/campaigns/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/campaigns/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "id": 9,
    "name": "Stefanie Lebsack",
    "scheduled_at": "2025-10-23T01:36:18.000000Z",
    "timezone": "Asia/Atyrau",
    "recurring": false,
    "frequency": null,
    "frequency_unit": null,
    "ends_at": null,
    "repeat_at": null,
    "active_hours": "00:00-23:59",
    "days_of_week": [
        1,
        2,
        5,
        6
    ],
    "status": "Processed",
    "type": "SMS",
    "options": {
        "delay": "57",
        "prioritize": false,
        "delivery_report": true
    },
    "created_at": "2025-09-08T05:42:25.000000Z",
    "updated_at": "2025-09-08T05:42:25.000000Z"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the campaign.
name  
string 
  
The name of the campaign.
scheduled_at  
string 
  
The date and time when the campaign is scheduled to run.
timezone  
string 
  
The timezone of the campaign.
recurring  
boolean 
  
Whether the campaign is recurring.
frequency  
integer 
  
The frequency of the campaign.
frequency_unit  
string 
  
The unit of the frequency.
ends_at  
string 
  
The date and time when the recurring campaign ends.
repeat_at  
string 
  
The date and time when the campaign is scheduled to repeat.
active_hours  
string 
  
The timespan of a day when the campaign is active.
days_of_week  
integer[] 
  
The days of the week when the campaign is active.
status  
string 
  
The status of the campaign.
type  
string 
  
The type of the campaign.
                options  
object 
  
The options of the campaign.
            
                                                delay  
string 
  
The delay between each item before sending the next one.
prioritize  
boolean 
  
Whether to prioritize the campaign.
delivery_report  
boolean 
  
Whether to request delivery report for SMS.
created_at  
string 
  
The date and time the campaign was created.
updated_at  
string 
  
The date and time the campaign was last updated.
List all devices used in a campaign
requires authentication
Returns a list of devices used in a campaign. The devices are returned with sims used in the campaign and status of the campaign on the device.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/campaigns/1/devices" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/campaigns/1/devices"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1/devices';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1/devices'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "data": [
        {
            "id": 11,
            "name": null,
            "model": "Nokia X20",
            "android_version": "7",
            "app_version": "0.20.34",
            "battery": 46,
            "is_charging": false,
            "enabled": true,
            "sims": [
                {
                    "id": 15,
                    "name": "Koelpin, Nolan and Bailey",
                    "label": null,
                    "number": "+15202822732",
                    "country": "SZ",
                    "carrier": "Miller Ltd",
                    "slot": 0,
                    "data_roaming": false,
                    "signal_strength": 4,
                    "active": true
                }
            ]
        },
        {
            "id": 12,
            "name": null,
            "model": "Xiaomi Mi 11",
            "android_version": "9",
            "app_version": "3.73.98",
            "battery": 71,
            "is_charging": false,
            "enabled": true,
            "sims": [
                {
                    "id": 16,
                    "name": "Hermiston, Parker and Marvin",
                    "label": null,
                    "number": "+13648507362",
                    "country": "GE",
                    "carrier": "Littel Ltd",
                    "slot": 0,
                    "data_roaming": false,
                    "signal_strength": 4,
                    "active": true
                }
            ]
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the device.
name  
string 
  
The name of the device.
model  
string 
  
The model of the device.
enabled  
boolean 
  
Whether the user has logged in to the app on the device.
android_version  
string 
  
The android version of the device.
app_version  
string 
  
The app version installed on the device.
battery  
integer 
  
The percentage of battery remaining on the device.
is_charging  
boolean 
  
Whether the device is charging or not.
status  
string 
  
The status of the campaign on the device.
Must be one of:PendingQueuedStalledSucceededFailedCancellingCancelled
                sims  
object[] 
  
The sims of the device that are used in the campaign.
            
                                                
                *  
object 
  
            
                                                id  
integer 
  
The ID of the sim.
name  
string 
  
The name of the sim.
label  
string 
  
The label of the sim.
number  
string 
  
The number of the sim.
country  
string 
  
The country of the sim.
carrier  
string 
  
The carrier of the sim.
slot  
integer 
  
The slot of the sim.
active  
boolean 
  
Whether the sim is active or not.
List all sending servers used in a campaign
requires authentication
Returns a list of sending servers used in a campaign. The sending servers are returned with sender ids used in the campaign and status of the campaign on the sending server.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/campaigns/1/sending-servers" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/campaigns/1/sending-servers"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1/sending-servers';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1/sending-servers'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "data": [
        {
            "id": 3,
            "name": "Gideon Boyer",
            "enabled": true,
            "sender_ids": [
                {
                    "id": 21,
                    "value": "942561"
                }
            ]
        },
        {
            "id": 4,
            "name": "Bridgette D'Amore",
            "enabled": true,
            "sender_ids": [
                {
                    "id": 22,
                    "value": "597151"
                }
            ]
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the sending server.
name  
string 
  
The name of the sending server.
status  
string 
  
The status of the campaign on this sending server.
Must be one of:PendingQueuedStalledSucceededFailedCancellingCancelled
                sender_ids  
object[] 
  
The sender ids of the sending server that are used in the campaign.
            
                                                
                *  
object 
  
            
                                                id  
integer 
  
The ID of the sender id.
value  
string 
  
The value of the sender id.
Update a campaign
requires authentication
Updates the specific campaign by setting the values of the parameters passed.
Example request:
curl --request PUT \
    "https://smsgateway.rbsoft.org/api/v1/campaigns/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"New Campaign\"
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/campaigns/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "name": "New Campaign"
};
fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'New Campaign',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1'
payload = {
    "name": "New Campaign"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                    Delete a campaign
requires authentication
Permanently deletes a campaign. Also deletes all messages or USSD pulls associated with it. It cannot be undone.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/campaigns/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/campaigns/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/campaigns/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                Contact Lists
Contact Lists
List all contact lists
requires authentication
Returns a list of contact lists. The contact lists are returned sorted by creation date, with the most recently created contact list appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/contact-lists" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contact-lists"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "data": [
        {
            "id": 11,
            "name": "deborah.mayert"
        },
        {
            "id": 12,
            "name": "kuhn.jaclyn"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the contact list.
name  
string 
  
The name of the contact list.
Retrieve a contact list
requires authentication
Retrieves a Contact List object.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/contact-lists/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "id": 13,
    "name": "deborah.mayert"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the contact list.
name  
string 
  
The name of the contact list.
Create a contact list
requires authentication
Example request:
curl --request POST \
    "https://smsgateway.rbsoft.org/api/v1/contact-lists" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"My List\"
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contact-lists"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "name": "My List"
};
fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'My List',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists'
payload = {
    "name": "My List"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201, Created):
{
    "id": 14,
    "name": "brown.maggie"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the contact list.
name  
string 
  
The name of the contact list.
Update a contact list
requires authentication
Updates the specific contact list by setting the values of the parameters passed.
Example request:
curl --request PUT \
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"My List\"
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "name": "My List"
};
fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'My List',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1'
payload = {
    "name": "My List"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                    Delete a contact list
requires authentication
Permanently deletes the specific contact list. Also deletes all contacts and fields associated with it. It cannot be undone.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                    List all fields for a contact list
requires authentication
Returns a list of fields for a contact list. The fields are returned sorted by creation date, with the most recently created field appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/contact-lists/1/fields" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1/fields"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1/fields';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1/fields'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "data": [
        {
            "id": 21,
            "label": "Itaque",
            "tag": "itaque",
            "type": "email",
            "options": null,
            "default_value": "non",
            "required": true
        },
        {
            "id": 22,
            "label": "Sed",
            "tag": "sed",
            "type": "multiselect",
            "options": [
                {
                    "label": "quasi",
                    "value": "commodi"
                },
                {
                    "label": "tempore",
                    "value": "in"
                },
                {
                    "label": "qui",
                    "value": "hic"
                },
                {
                    "label": "sequi",
                    "value": "corrupti"
                },
                {
                    "label": "et",
                    "value": "enim"
                }
            ],
            "default_value": [
                "in"
            ],
            "required": true
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 50,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the field.
label  
string 
  
The label of the field.
tag  
string 
  
The tag of the field.
type  
string 
  
The type of the field.
Must be one of:textnumberemaildropdownmultiselectcheckboxradiodatedatetime-localtimetextarea
                options  
object[] 
  
List of all possible options for the field.
            
                                                
                *  
object 
  
            
                                                label  
string 
  
The label of the option.
value  
string 
  
The value of the option.
default_value  
string 
  
The default value of the field.
required  
boolean 
  
Whether the field is required or not.
Retrieve a field
requires authentication
Retrieves a Field object.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/fields/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/fields/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/fields/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/fields/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "id": 23,
    "label": "Non",
    "tag": "non",
    "type": "email",
    "options": null,
    "default_value": "aspernatur",
    "required": true
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the field.
label  
string 
  
The label of the field.
tag  
string 
  
The tag of the field.
type  
string 
  
The type of the field.
Must be one of:textnumberemaildropdownmultiselectcheckboxradiodatedatetime-localtimetextarea
                options  
object[] 
  
List of all possible options for the field.
            
                                                
                *  
object 
  
            
                                                label  
string 
  
The label of the option.
value  
string 
  
The value of the option.
default_value  
string 
  
The default value of the field.
required  
boolean 
  
Whether the field is required or not.
Create a field for a contact list
requires authentication
Example request:
curl --request POST \
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1/fields" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"label\": \"First Name\",
    \"tag\": \"first_name\",
    \"type\": \"text\",
    \"default_value\": \"John\",
    \"required\": false,
    \"options\": [
        {
            \"label\": \"Option 1\",
            \"value\": \"option_1\"
        }
    ]
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1/fields"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "label": "First Name",
    "tag": "first_name",
    "type": "text",
    "default_value": "John",
    "required": false,
    "options": [
        {
            "label": "Option 1",
            "value": "option_1"
        }
    ]
};
fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1/fields';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'label' => 'First Name',
            'tag' => 'first_name',
            'type' => 'text',
            'default_value' => 'John',
            'required' => false,
            'options' => [
                [
                    'label' => 'Option 1',
                    'value' => 'option_1',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1/fields'
payload = {
    "label": "First Name",
    "tag": "first_name",
    "type": "text",
    "default_value": "John",
    "required": false,
    "options": [
        {
            "label": "Option 1",
            "value": "option_1"
        }
    ]
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201, Created):
{
    "id": 24,
    "label": "Est",
    "tag": "est",
    "type": "dropdown",
    "options": [
        {
            "label": "repellat",
            "value": "ut"
        },
        {
            "label": "est",
            "value": "accusantium"
        },
        {
            "label": "eaque",
            "value": "unde"
        },
        {
            "label": "enim",
            "value": "id"
        },
        {
            "label": "id",
            "value": "dolorem"
        }
    ],
    "default_value": null,
    "required": false
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the field.
label  
string 
  
The label of the field.
tag  
string 
  
The tag of the field.
type  
string 
  
The type of the field.
Must be one of:textnumberemaildropdownmultiselectcheckboxradiodatedatetime-localtimetextarea
                options  
object[] 
  
List of all possible options for the field.
            
                                                
                *  
object 
  
            
                                                label  
string 
  
The label of the option.
value  
string 
  
The value of the option.
default_value  
string 
  
The default value of the field.
required  
boolean 
  
Whether the field is required or not.
Update a field
requires authentication
Updates the specific field by setting the values of the parameters passed. It is recommended to retrieve the field first to get the field's current state because partial updates are not supported.
Example request:
curl --request PUT \
    "https://smsgateway.rbsoft.org/api/v1/fields/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"label\": \"First Name\",
    \"tag\": \"first_name\",
    \"type\": \"text\",
    \"default_value\": \"John\",
    \"required\": false,
    \"options\": [
        {
            \"label\": \"Option 1\",
            \"value\": \"option_1\"
        }
    ]
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/fields/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "label": "First Name",
    "tag": "first_name",
    "type": "text",
    "default_value": "John",
    "required": false,
    "options": [
        {
            "label": "Option 1",
            "value": "option_1"
        }
    ]
};
fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/fields/1';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'label' => 'First Name',
            'tag' => 'first_name',
            'type' => 'text',
            'default_value' => 'John',
            'required' => false,
            'options' => [
                [
                    'label' => 'Option 1',
                    'value' => 'option_1',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/fields/1'
payload = {
    "label": "First Name",
    "tag": "first_name",
    "type": "text",
    "default_value": "John",
    "required": false,
    "options": [
        {
            "label": "Option 1",
            "value": "option_1"
        }
    ]
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                    Delete a field
requires authentication
Permanently deletes a field. Also deletes all associated field values of contacts. It cannot be undone.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/fields/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/fields/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/fields/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/fields/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                Contacts
Contacts
List all contacts for a contact list
requires authentication
Returns a list of contacts for a contact list. The contacts are returned sorted by creation date, with the most recently created contact appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/contact-lists/1/contacts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1/contacts"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1/contacts';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1/contacts'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "data": [
        {
            "id": 2001,
            "mobile_number": "+14329282957",
            "subscribed": true,
            "created_at": "2025-09-08T05:42:25.000000Z",
            "updated_at": "2025-09-08T05:42:25.000000Z"
        },
        {
            "id": 2002,
            "mobile_number": "+18058165575",
            "subscribed": false,
            "created_at": "2025-09-08T05:42:25.000000Z",
            "updated_at": "2025-09-08T05:42:25.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 100,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the contact.
mobile_number  
string 
  
The mobile number of the contact.
first_name  
string 
  
The first name of the contact. This is a custom field, so if you didn't set it up, then it won't be available.
last_name  
string 
  
The last name of the contact. This is a custom field, so if you didn't set it up, then it won't be available.
subscribed  
boolean 
  
Whether the contact is subscribed or not.
created_at  
string 
  
The date and time when the contact was created.
updated_at  
string 
  
The date and time when the contact was last updated.
Retrieve a contact
requires authentication
Retrieves a Contact object.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/contacts/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contacts/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contacts/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contacts/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "id": 2003,
    "mobile_number": "+19475350806",
    "subscribed": true,
    "created_at": "2025-09-08T05:42:25.000000Z",
    "updated_at": "2025-09-08T05:42:25.000000Z"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the contact.
mobile_number  
string 
  
The mobile number of the contact.
first_name  
string 
  
The first name of the contact. This is a custom field, so if you didn't set it up, then it won't be available.
last_name  
string 
  
The last name of the contact. This is a custom field, so if you didn't set it up, then it won't be available.
subscribed  
boolean 
  
Whether the contact is subscribed or not.
created_at  
string 
  
The date and time when the contact was created.
updated_at  
string 
  
The date and time when the contact was last updated.
Create a contact in a contact list
requires authentication
Example request:
curl --request POST \
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1/contacts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mobile_number\": \"+12025886500\",
    \"subscribed\": false,
    \"first_name\": \"John\",
    \"last_name\": \"Doe\"
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contact-lists/1/contacts"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "mobile_number": "+12025886500",
    "subscribed": false,
    "first_name": "John",
    "last_name": "Doe"
};
fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1/contacts';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'mobile_number' => '+12025886500',
            'subscribed' => false,
            'first_name' => 'John',
            'last_name' => 'Doe',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contact-lists/1/contacts'
payload = {
    "mobile_number": "+12025886500",
    "subscribed": false,
    "first_name": "John",
    "last_name": "Doe"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201, Created):
{
    "id": 2004,
    "mobile_number": "+19475350806",
    "subscribed": true,
    "created_at": "2025-09-08T05:42:25.000000Z",
    "updated_at": "2025-09-08T05:42:25.000000Z"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the contact.
mobile_number  
string 
  
The mobile number of the contact.
first_name  
string 
  
The first name of the contact. This is a custom field, so if you didn't set it up, then it won't be available.
last_name  
string 
  
The last name of the contact. This is a custom field, so if you didn't set it up, then it won't be available.
subscribed  
boolean 
  
Whether the contact is subscribed or not.
created_at  
string 
  
The date and time when the contact was created.
updated_at  
string 
  
The date and time when the contact was last updated.
Update a contact
requires authentication
Update a contact in a contact list with the given data. It is recommended to retrieve the contact first to get the contact's current state because partial updates are not supported.
Example request:
curl --request PUT \
    "https://smsgateway.rbsoft.org/api/v1/contacts/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mobile_number\": \"+12025886500\",
    \"subscribed\": false,
    \"first_name\": \"John\",
    \"last_name\": \"Doe\"
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contacts/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "mobile_number": "+12025886500",
    "subscribed": false,
    "first_name": "John",
    "last_name": "Doe"
};
fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contacts/1';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'mobile_number' => '+12025886500',
            'subscribed' => false,
            'first_name' => 'John',
            'last_name' => 'Doe',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contacts/1'
payload = {
    "mobile_number": "+12025886500",
    "subscribed": false,
    "first_name": "John",
    "last_name": "Doe"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                    Delete a contact
requires authentication
Permanently deletes a contact. It cannot be undone.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/contacts/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/contacts/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/contacts/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/contacts/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                Devices
Devices
List all devices
requires authentication
Returns a list of devices. The devices are returned sorted by creation date, with the most recently created device appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/devices" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/devices"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/devices';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/devices'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "data": [
        {
            "id": 13,
            "name": null,
            "model": "Nokia X20",
            "enabled": true,
            "android_version": "7",
            "app_version": "0.20.34",
            "battery": 46,
            "is_charging": false,
            "updated_at": "2025-09-08T05:42:25.000000Z",
            "sims": [
                {
                    "id": 17,
                    "name": "Nitzsche, Rogahn and Jakubowski",
                    "label": null,
                    "number": "+16284319281",
                    "country": "IL",
                    "carrier": "Gerhold, Walter and Schinner",
                    "slot": 0,
                    "data_roaming": false,
                    "signal_strength": 4,
                    "active": true
                }
            ]
        },
        {
            "id": 14,
            "name": null,
            "model": "OnePlus Nord 2 5G",
            "enabled": true,
            "android_version": "11",
            "app_version": "3.40.82",
            "battery": 0,
            "is_charging": true,
            "updated_at": "2025-09-08T05:42:25.000000Z",
            "sims": [
                {
                    "id": 18,
                    "name": "Langosh, Waters and Wolf",
                    "label": null,
                    "number": "+13108318149",
                    "country": "BW",
                    "carrier": "Boehm LLC",
                    "slot": 0,
                    "data_roaming": true,
                    "signal_strength": 2,
                    "active": true
                }
            ]
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 100,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the device.
name  
string 
  
The name of the device.
model  
string 
  
The model of the device.
enabled  
boolean 
  
Whether the user has logged in to the app on the device.
android_version  
string 
  
The android version of the device.
app_version  
string 
  
The app version installed on the device.
battery  
integer 
  
The percentage of battery remaining on the device.
is_charging  
boolean 
  
Whether the device is charging or not.
updated_at  
datetime 
  
The last time the device was updated.
                sims  
object 
  
List of all sims on the device.
            
                                                
                *  
object 
  
            
                                                id  
integer 
  
The ID of the sim.
name  
string 
  
The name of the sim.
label  
string 
  
The label of the sim.
number  
string 
  
The number of the sim.
country  
string 
  
The country of the sim.
carrier  
string 
  
The carrier of the sim.
slot  
integer 
  
The slot of the sim.
active  
boolean 
  
Whether the sim is active or not.
Retrieve a device
requires authentication
Retrieves a Device object.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/devices/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/devices/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/devices/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/devices/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "id": 15,
    "name": null,
    "model": "Nokia X20",
    "enabled": true,
    "android_version": "7",
    "app_version": "0.20.34",
    "battery": 46,
    "is_charging": false,
    "updated_at": "2025-09-08T05:42:25.000000Z",
    "sims": [
        {
            "id": 19,
            "name": "Carter, Zieme and Oberbrunner",
            "label": null,
            "number": "+16819707512",
            "country": "KM",
            "carrier": "Kassulke-Ankunding",
            "slot": 0,
            "data_roaming": true,
            "signal_strength": 3,
            "active": true
        }
    ]
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the device.
name  
string 
  
The name of the device.
model  
string 
  
The model of the device.
enabled  
boolean 
  
Whether the user has logged in to the app on the device.
android_version  
string 
  
The android version of the device.
app_version  
string 
  
The app version installed on the device.
battery  
integer 
  
The percentage of battery remaining on the device.
is_charging  
boolean 
  
Whether the device is charging or not.
updated_at  
datetime 
  
The last time the device was updated.
                sims  
object 
  
List of all sims on the device.
            
                                                
                *  
object 
  
            
                                                id  
integer 
  
The ID of the sim.
name  
string 
  
The name of the sim.
label  
string 
  
The label of the sim.
number  
string 
  
The number of the sim.
country  
string 
  
The country of the sim.
carrier  
string 
  
The carrier of the sim.
slot  
integer 
  
The slot of the sim.
active  
boolean 
  
Whether the sim is active or not.
Update a device
requires authentication
Update the specific device by setting the values of the parameters passed.
Example request:
curl --request PUT \
    "https://smsgateway.rbsoft.org/api/v1/devices/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"My Device\"
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/devices/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "name": "My Device"
};
fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/devices/1';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'My Device',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/devices/1'
payload = {
    "name": "My Device"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                    Delete a device
requires authentication
Permanently deletes a device. Also removes the SIMs associated with the device and any messages, USSD Pulls and call logs associated with those SIMs. It cannot be undone.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/devices/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/devices/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/devices/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/devices/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                Messages
Messages
Send messages
requires authentication
Send an SMS or MMS campaign.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/messages/send" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"sims\": [
        1
    ],
    \"sender_ids\": [
        1
    ],
    \"random_sender\": false,
    \"contact_lists\": [
        1
    ],
    \"mobile_numbers\": [
        \"+12345678901\"
    ],
    \"type\": \"SMS\",
    \"message\": \"Hello, World!\",
    \"attachments\": [
        \"https:\\/\\/example.com\\/image.jpg\"
    ],
    \"delivery_report\": false,
    \"delay\": 60,
    \"prioritize\": false,
    \"name\": \"My Campaign\",
    \"scheduled_at\": \"2021-01-01T12:00:00Z\",
    \"recurring\": false,
    \"frequency\": 1,
    \"frequency_unit\": \"day\",
    \"ends_at\": \"2021-01-01T12:00:00Z\",
    \"timezone\": \"UTC\",
    \"days_of_week\": [
        1
    ],
    \"active_hours\": {
        \"start\": \"08:00\",
        \"end\": \"17:00\"
    }
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/messages/send"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "sims": [
        1
    ],
    "sender_ids": [
        1
    ],
    "random_sender": false,
    "contact_lists": [
        1
    ],
    "mobile_numbers": [
        "+12345678901"
    ],
    "type": "SMS",
    "message": "Hello, World!",
    "attachments": [
        "https:\/\/example.com\/image.jpg"
    ],
    "delivery_report": false,
    "delay": 60,
    "prioritize": false,
    "name": "My Campaign",
    "scheduled_at": "2021-01-01T12:00:00Z",
    "recurring": false,
    "frequency": 1,
    "frequency_unit": "day",
    "ends_at": "2021-01-01T12:00:00Z",
    "timezone": "UTC",
    "days_of_week": [
        1
    ],
    "active_hours": {
        "start": "08:00",
        "end": "17:00"
    }
};
fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/messages/send';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'sims' => [
                1,
            ],
            'sender_ids' => [
                1,
            ],
            'random_sender' => false,
            'contact_lists' => [
                1,
            ],
            'mobile_numbers' => [
                '+12345678901',
            ],
            'type' => 'SMS',
            'message' => 'Hello, World!',
            'attachments' => [
                'https://example.com/image.jpg',
            ],
            'delivery_report' => false,
            'delay' => 60,
            'prioritize' => false,
            'name' => 'My Campaign',
            'scheduled_at' => '2021-01-01T12:00:00Z',
            'recurring' => false,
            'frequency' => 1,
            'frequency_unit' => 'day',
            'ends_at' => '2021-01-01T12:00:00Z',
            'timezone' => 'UTC',
            'days_of_week' => [
                1,
            ],
            'active_hours' => [
                'start' => '08:00',
                'end' => '17:00',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/messages/send'
payload = {
    "sims": [
        1
    ],
    "sender_ids": [
        1
    ],
    "random_sender": false,
    "contact_lists": [
        1
    ],
    "mobile_numbers": [
        "+12345678901"
    ],
    "type": "SMS",
    "message": "Hello, World!",
    "attachments": [
        "https:\/\/example.com\/image.jpg"
    ],
    "delivery_report": false,
    "delay": 60,
    "prioritize": false,
    "name": "My Campaign",
    "scheduled_at": "2021-01-01T12:00:00Z",
    "recurring": false,
    "frequency": 1,
    "frequency_unit": "day",
    "ends_at": "2021-01-01T12:00:00Z",
    "timezone": "UTC",
    "days_of_week": [
        1
    ],
    "active_hours": {
        "start": "08:00",
        "end": "17:00"
    }
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()Example response (201, Created):
{
    "id": 10,
    "name": "Blaise Pouros",
    "scheduled_at": "2025-12-16T20:37:14.000000Z",
    "timezone": "America/Indiana/Knox",
    "recurring": true,
    "frequency": 5,
    "frequency_unit": "Minute",
    "ends_at": "2026-09-05T09:37:44.000000Z",
    "repeat_at": null,
    "active_hours": "09:00-17:00",
    "days_of_week": [
        1,
        3,
        5,
        7
    ],
    "status": "Processed",
    "type": "MMS",
    "options": {
        "delay": "34",
        "prioritize": true
    },
    "created_at": "2025-09-08T05:42:25.000000Z",
    "updated_at": "2025-09-08T05:42:25.000000Z"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the campaign.
name  
string 
  
The name of the campaign.
scheduled_at  
string 
  
The date and time when the campaign is scheduled to run.
timezone  
string 
  
The timezone of the campaign.
recurring  
boolean 
  
Whether the campaign is recurring.
frequency  
integer 
  
The frequency of the campaign.
frequency_unit  
string 
  
The unit of the frequency.
ends_at  
string 
  
The date and time when the recurring campaign ends.
repeat_at  
string 
  
The date and time when the campaign is scheduled to repeat.
active_hours  
string 
  
The timespan of a day when the campaign is active.
days_of_week  
integer[] 
  
The days of the week when the campaign is active.
status  
string 
  
The status of the campaign.
type  
string 
  
The type of the campaign.
                options  
object 
  
The options of the campaign.
            
                                                delay  
string 
  
The delay between each item before sending the next one.
prioritize  
boolean 
  
Whether to prioritize the campaign.
delivery_report  
boolean 
  
Whether to request delivery report for SMS.
created_at  
string 
  
The date and time the campaign was created.
updated_at  
string 
  
The date and time the campaign was last updated.
List all messages
requires authentication
Returns a list of messages. The messages are returned sorted by sent date, with the most recently sent message appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/messages?user=1&campaign=1&sim=1&message=Hello%2C+World%21&type=SMS&statuses[]=Queued&after=2021-01-01&before=2024-01-01" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/messages"
);
const params = {
    "user": "1",
    "campaign": "1",
    "sim": "1",
    "message": "Hello, World!",
    "type": "SMS",
    "statuses[0]": "Queued",
    "after": "2021-01-01",
    "before": "2024-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/messages';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'user' => '1',
            'campaign' => '1',
            'sim' => '1',
            'message' => 'Hello, World!',
            'type' => 'SMS',
            'statuses[0]' => 'Queued',
            'after' => '2021-01-01',
            'before' => '2024-01-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/messages'
params = {
  'user': '1',
  'campaign': '1',
  'sim': '1',
  'message': 'Hello, World!',
  'type': 'SMS',
  'statuses[0]': 'Queued',
  'after': '2021-01-01',
  'before': '2024-01-01',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
    "data": [
        {
            "id": 2061,
            "from": "+17345017250",
            "to": "+19899609500",
            "content": "Itaque non aspernatur odio nam incidunt. Distinctio quam sed quasi commodi tempore.",
            "type": "SMS",
            "attachments": [],
            "status": "Sent",
            "response": [],
            "messenger": "Sim #20",
            "sent_at": "2025-09-07T08:20:33.000000Z",
            "delivered_at": "2025-09-08T05:42:25.000000Z"
        },
        {
            "id": 2062,
            "from": "+13309437084",
            "to": "+14094483472",
            "content": "Porro aut tempora ut possimus odit. Sed rem ducimus est ut voluptatum porro repudiandae doloremque. In est id sed voluptatem.",
            "type": "WhatsApp",
            "attachments": [],
            "status": "Queued",
            "response": [],
            "messenger": "Sim #21",
            "sent_at": "2025-09-07T15:42:10.000000Z",
            "delivered_at": "2025-09-08T05:42:25.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 100,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the message.
from  
string 
  
The sender of the message.
to  
string 
  
The recipient of the message.
content  
string 
  
The content of the message.
type  
string 
  
The type of the message.
attachments  
string[] 
  
List of all attachments for the message.
status  
string 
  
The status of the message.
Must be one of:PendingQueuedProcessedSentDeliveredFailedReceived
response  
object 
  
The response received from the device or sending server.
messenger  
string 
  
The sim or sender id used for the message.
sent_at  
string 
  
The date and time when the message was sent.
delivered_at  
string 
  
The date and time when the message was delivered.
Retrieve a message
requires authentication
Retrieves a Message object.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/messages/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/messages/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/messages/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/messages/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "id": 2063,
    "from": "+15045565946",
    "to": "+14322823398",
    "content": "Eveniet et quasi qui corporis quae sequi. Est rerum quam recusandae omnis dolore. Perferendis et et amet earum illum qui.",
    "type": "WhatsApp",
    "attachments": [],
    "status": "Sent",
    "response": [],
    "messenger": "Sim #22",
    "sent_at": "2025-09-08T00:09:04.000000Z",
    "delivered_at": "2025-09-08T05:42:25.000000Z"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the message.
from  
string 
  
The sender of the message.
to  
string 
  
The recipient of the message.
content  
string 
  
The content of the message.
type  
string 
  
The type of the message.
attachments  
string[] 
  
List of all attachments for the message.
status  
string 
  
The status of the message.
Must be one of:PendingQueuedProcessedSentDeliveredFailedReceived
response  
object 
  
The response received from the device or sending server.
messenger  
string 
  
The sim or sender id used for the message.
sent_at  
string 
  
The date and time when the message was sent.
delivered_at  
string 
  
The date and time when the message was delivered.
Delete a message
requires authentication
Permanently deletes a message. It cannot be undone.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/messages/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/messages/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/messages/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/messages/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                SenderIds
SenderIds
List all sender ids
requires authentication
Returns a list of sender ids. The sender ids are returned sorted by creation date, with the most recently created sender id appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/sender-ids" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/sender-ids"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/sender-ids';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/sender-ids'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "data": [
        {
            "id": 23,
            "value": "647973"
        },
        {
            "id": 24,
            "value": "731066"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 100,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the sender id.
value  
string 
  
The value of the sender id.
Retrieve a sender id
requires authentication
Retrieves a SenderId object.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/sender-ids/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/sender-ids/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/sender-ids/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/sender-ids/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "id": 25,
    "value": "574311"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the sender id.
value  
string 
  
The value of the sender id.
Create a sender id for a sending server
requires authentication
Example request:
curl --request POST \
    "https://smsgateway.rbsoft.org/api/v1/sending-servers/1/sender-ids" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"value\": \"MySenderID\"
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/sending-servers/1/sender-ids"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "value": "MySenderID"
};
fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers/1/sender-ids';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'value' => 'MySenderID',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers/1/sender-ids'
payload = {
    "value": "MySenderID"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201, Created):
{
    "id": 26,
    "value": "583848"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the sender id.
value  
string 
  
The value of the sender id.
Delete a sender id
requires authentication
Permanently deletes a sender id. Also removes any messages sent using this sender id. It cannot be undone.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/sender-ids/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/sender-ids/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/sender-ids/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/sender-ids/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                Sending Servers
Sending Servers
List all sending servers
requires authentication
Returns a list of sending servers. The sending servers are returned sorted by creation date, with the most recently created sending server appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/sending-servers" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/sending-servers"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "data": [
        {
            "id": 5,
            "name": "Gideon Boyer",
            "driver": "Textlocal",
            "supported_types": [
                "SMS"
            ],
            "config": {
                "url": "https://api.textlocal.in",
                "test": true,
                "api_key": "NDQ2NDYyNGQ0OTY2NGU3Njc5Nzc0ZTM0Njk2NjQzNjI="
            },
            "enabled": true,
            "created_at": "2025-09-08T05:42:25.000000Z"
        },
        {
            "id": 6,
            "name": "Amelia Koelpin",
            "driver": "Textlocal",
            "supported_types": [
                "MMS"
            ],
            "config": {
                "url": "https://api.textlocal.in",
                "test": true,
                "api_key": "NDQ2NDYyNGQ0OTY2NGU3Njc5Nzc0ZTM0Njk2NjQzNjI="
            },
            "enabled": true,
            "created_at": "2025-09-08T05:42:25.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 100,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the sending server.
name  
string 
  
The name of the sending server.
driver  
string 
  
The driver of the sending server.
supported_types  
string[] 
  
The types of messages supported by the sending server.
config  
object 
  
The sending server configuration.
enabled  
boolean 
  
Whether the sending server is enabled or not.
created_at  
string 
  
The date and time when the sending server was created.
Retrieve a sending server
requires authentication
Retrieves a SendingServer object.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/sending-servers/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/sending-servers/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "id": 7,
    "name": "Gideon Boyer",
    "driver": "Textlocal",
    "supported_types": [
        "SMS"
    ],
    "config": {
        "url": "https://api.textlocal.in",
        "test": true,
        "api_key": "NDQ2NDYyNGQ0OTY2NGU3Njc5Nzc0ZTM0Njk2NjQzNjI="
    },
    "enabled": true,
    "created_at": "2025-09-08T05:42:25.000000Z"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the sending server.
name  
string 
  
The name of the sending server.
driver  
string 
  
The driver of the sending server.
supported_types  
string[] 
  
The types of messages supported by the sending server.
config  
object 
  
The sending server configuration.
enabled  
boolean 
  
Whether the sending server is enabled or not.
created_at  
string 
  
The date and time when the sending server was created.
Create a sending server
requires authentication
Example request:
curl --request POST \
    "https://smsgateway.rbsoft.org/api/v1/sending-servers" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Twilio\",
    \"driver\": \"twilio\",
    \"supported_types\": [
        \"MMS\"
    ],
    \"config\": {
        \"account_sid\": \"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",
        \"auth_token\": \"your_auth_token\",
        \"from\": \"+15017122661\"
    },
    \"enabled\": false
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/sending-servers"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "name": "Twilio",
    "driver": "twilio",
    "supported_types": [
        "MMS"
    ],
    "config": {
        "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "auth_token": "your_auth_token",
        "from": "+15017122661"
    },
    "enabled": false
};
fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Twilio',
            'driver' => 'twilio',
            'supported_types' => [
                'MMS',
            ],
            'config' => [
                'account_sid' => 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
                'auth_token' => 'your_auth_token',
                'from' => '+15017122661',
            ],
            'enabled' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers'
payload = {
    "name": "Twilio",
    "driver": "twilio",
    "supported_types": [
        "MMS"
    ],
    "config": {
        "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "auth_token": "your_auth_token",
        "from": "+15017122661"
    },
    "enabled": false
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201, Created):
{
    "id": 8,
    "name": "Gideon Boyer",
    "driver": "Textlocal",
    "supported_types": [
        "SMS"
    ],
    "config": {
        "url": "https://api.textlocal.in",
        "test": true,
        "api_key": "NDQ2NDYyNGQ0OTY2NGU3Njc5Nzc0ZTM0Njk2NjQzNjI="
    },
    "enabled": true,
    "created_at": "2025-09-08T05:42:25.000000Z"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the sending server.
name  
string 
  
The name of the sending server.
driver  
string 
  
The driver of the sending server.
supported_types  
string[] 
  
The types of messages supported by the sending server.
config  
object 
  
The sending server configuration.
enabled  
boolean 
  
Whether the sending server is enabled or not.
created_at  
string 
  
The date and time when the sending server was created.
Update a sending server
requires authentication
Update the specific sending server by setting the values of the parameters passed. It is recommended to retrieve the sending server first to get the sending server's current state because partial updates are not supported.
Example request:
curl --request PUT \
    "https://smsgateway.rbsoft.org/api/v1/sending-servers/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Twilio\",
    \"driver\": \"twilio\",
    \"supported_types\": [
        \"MMS\"
    ],
    \"config\": {
        \"account_sid\": \"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",
        \"auth_token\": \"your_auth_token\",
        \"from\": \"+15017122661\"
    },
    \"enabled\": false
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/sending-servers/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "name": "Twilio",
    "driver": "twilio",
    "supported_types": [
        "MMS"
    ],
    "config": {
        "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "auth_token": "your_auth_token",
        "from": "+15017122661"
    },
    "enabled": false
};
fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers/1';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Twilio',
            'driver' => 'twilio',
            'supported_types' => [
                'MMS',
            ],
            'config' => [
                'account_sid' => 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
                'auth_token' => 'your_auth_token',
                'from' => '+15017122661',
            ],
            'enabled' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers/1'
payload = {
    "name": "Twilio",
    "driver": "twilio",
    "supported_types": [
        "MMS"
    ],
    "config": {
        "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "auth_token": "your_auth_token",
        "from": "+15017122661"
    },
    "enabled": false
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                    Delete a sending server
requires authentication
Permanently deletes a sending server. Also removes sender ids associated with the sending server and any messages associated with those sender ids. It cannot be undone.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/sending-servers/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/sending-servers/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/sending-servers/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
                USSD Pulls
USSD Pulls
Send USSD pulls
requires authentication
Sends USSD Pull campaign.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/ussd-pulls/send" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"sims\": [
        1
    ],
    \"ussd_codes\": [
        \"*123#\"
    ],
    \"delay\": 60,
    \"prioritize\": false,
    \"name\": \"My Campaign\",
    \"scheduled_at\": \"2021-01-01T12:00:00Z\",
    \"recurring\": false,
    \"frequency\": 1,
    \"frequency_unit\": \"day\",
    \"ends_at\": \"2021-01-01T12:00:00Z\",
    \"timezone\": \"UTC\",
    \"days_of_week\": [
        1
    ],
    \"active_hours\": {
        \"start\": \"08:00\",
        \"end\": \"17:00\"
    },
    \"random_sender\": false
}"
const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/ussd-pulls/send"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
let body = {
    "sims": [
        1
    ],
    "ussd_codes": [
        "*123#"
    ],
    "delay": 60,
    "prioritize": false,
    "name": "My Campaign",
    "scheduled_at": "2021-01-01T12:00:00Z",
    "recurring": false,
    "frequency": 1,
    "frequency_unit": "day",
    "ends_at": "2021-01-01T12:00:00Z",
    "timezone": "UTC",
    "days_of_week": [
        1
    ],
    "active_hours": {
        "start": "08:00",
        "end": "17:00"
    },
    "random_sender": false
};
fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/ussd-pulls/send';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'sims' => [
                1,
            ],
            'ussd_codes' => [
                '*123#',
            ],
            'delay' => 60,
            'prioritize' => false,
            'name' => 'My Campaign',
            'scheduled_at' => '2021-01-01T12:00:00Z',
            'recurring' => false,
            'frequency' => 1,
            'frequency_unit' => 'day',
            'ends_at' => '2021-01-01T12:00:00Z',
            'timezone' => 'UTC',
            'days_of_week' => [
                1,
            ],
            'active_hours' => [
                'start' => '08:00',
                'end' => '17:00',
            ],
            'random_sender' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/ussd-pulls/send'
payload = {
    "sims": [
        1
    ],
    "ussd_codes": [
        "*123#"
    ],
    "delay": 60,
    "prioritize": false,
    "name": "My Campaign",
    "scheduled_at": "2021-01-01T12:00:00Z",
    "recurring": false,
    "frequency": 1,
    "frequency_unit": "day",
    "ends_at": "2021-01-01T12:00:00Z",
    "timezone": "UTC",
    "days_of_week": [
        1
    ],
    "active_hours": {
        "start": "08:00",
        "end": "17:00"
    },
    "random_sender": false
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()Example response (201, Created):
{
    "id": 14,
    "name": "Blaise Pouros",
    "scheduled_at": "2025-12-16T20:37:15.000000Z",
    "timezone": "America/Indiana/Knox",
    "recurring": true,
    "frequency": 5,
    "frequency_unit": "Minute",
    "ends_at": "2026-09-05T09:37:45.000000Z",
    "repeat_at": null,
    "active_hours": "09:00-17:00",
    "days_of_week": [
        1,
        3,
        5,
        7
    ],
    "status": "Processed",
    "type": "MMS",
    "options": {
        "delay": "34",
        "prioritize": true
    },
    "created_at": "2025-09-08T05:42:26.000000Z",
    "updated_at": "2025-09-08T05:42:26.000000Z"
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the campaign.
name  
string 
  
The name of the campaign.
scheduled_at  
string 
  
The date and time when the campaign is scheduled to run.
timezone  
string 
  
The timezone of the campaign.
recurring  
boolean 
  
Whether the campaign is recurring.
frequency  
integer 
  
The frequency of the campaign.
frequency_unit  
string 
  
The unit of the frequency.
ends_at  
string 
  
The date and time when the recurring campaign ends.
repeat_at  
string 
  
The date and time when the campaign is scheduled to repeat.
active_hours  
string 
  
The timespan of a day when the campaign is active.
days_of_week  
integer[] 
  
The days of the week when the campaign is active.
status  
string 
  
The status of the campaign.
type  
string 
  
The type of the campaign.
                options  
object 
  
The options of the campaign.
            
                                                delay  
string 
  
The delay between each item before sending the next one.
prioritize  
boolean 
  
Whether to prioritize the campaign.
delivery_report  
boolean 
  
Whether to request delivery report for SMS.
created_at  
string 
  
The date and time the campaign was created.
updated_at  
string 
  
The date and time the campaign was last updated.
List all USSD pulls
requires authentication
Returns a list of USSD pulls. The USSD pulls are returned sorted by sent date, with the most recently sent USSD pull appearing first.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/ussd-pulls?user=1&campaign=1&sim=1&statuses[]=Queued&after=2021-01-01&before=2021-01-01" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/ussd-pulls"
);
const params = {
    "user": "1",
    "campaign": "1",
    "sim": "1",
    "statuses[0]": "Queued",
    "after": "2021-01-01",
    "before": "2021-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/ussd-pulls';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'user' => '1',
            'campaign' => '1',
            'sim' => '1',
            'statuses[0]' => 'Queued',
            'after' => '2021-01-01',
            'before' => '2021-01-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/ussd-pulls'
params = {
  'user': '1',
  'campaign': '1',
  'sim': '1',
  'statuses[0]': 'Queued',
  'after': '2021-01-01',
  'before': '2021-01-01',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
    "data": [
        {
            "id": 281,
            "code": "*3434200#",
            "response": null,
            "status": "Failed",
            "sim_id": 23,
            "sent_at": "2025-09-08T11:12:26.000000Z",
            "received_at": null
        },
        {
            "id": 282,
            "code": "*32721213140#",
            "response": "Aut tempora ut possimus odit nisi sed rem ducimus. Ut voluptatum porro repudiandae doloremque qui in. Id sed voluptatem saepe magnam dicta tempore blanditiis quos.",
            "status": "Completed",
            "sim_id": 24,
            "sent_at": "2025-09-08T11:12:26.000000Z",
            "received_at": "2025-09-08T12:31:12.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 100,
        "to": 2,
        "total": 2
    }
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the USSD pull.
code  
string 
  
The USSD code.
response  
string 
  
The response from the USSD pull.
status  
string 
  
The status of the USSD pull.
Must be one of:PendingQueuedCompletedFailed
sim_id  
integer 
  
The id of the sim used to send the USSD pull.
sent_at  
string 
  
The date and time when the USSD pull was sent.
received_at  
string 
  
The date and time when the response from the USSD pull was received.
Retrieve a USSD pull
requires authentication
Retrieves a USSD Pull object.
Example request:
curl --request GET \
    --get "https://smsgateway.rbsoft.org/api/v1/ussd-pulls/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/ussd-pulls/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/ussd-pulls/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/ussd-pulls/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
    "id": 283,
    "code": "*00268*8#",
    "response": null,
    "status": "Failed",
    "sim_id": 25,
    "sent_at": "2025-09-08T11:12:26.000000Z",
    "received_at": null
}
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
    Response
Response Fields
id  
integer 
  
The ID of the USSD pull.
code  
string 
  
The USSD code.
response  
string 
  
The response from the USSD pull.
status  
string 
  
The status of the USSD pull.
Must be one of:PendingQueuedCompletedFailed
sim_id  
integer 
  
The id of the sim used to send the USSD pull.
sent_at  
string 
  
The date and time when the USSD pull was sent.
received_at  
string 
  
The date and time when the response from the USSD pull was received.
Delete a USSD pull
requires authentication
Permanently deletes a USSD pull. It cannot be undone.
Example request:
curl --request DELETE \
    "https://smsgateway.rbsoft.org/api/v1/ussd-pulls/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"const url = new URL(
    "https://smsgateway.rbsoft.org/api/v1/ussd-pulls/1"
);
const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};
fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://smsgateway.rbsoft.org/api/v1/ussd-pulls/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://smsgateway.rbsoft.org/api/v1/ussd-pulls/1'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204, No content):
Empty response
 
    
    Received response:
    Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.