Your campaigns, newest first, with how many are in each status.
https://telcomw.com/api/v3/campaignsSend the filters in the URL (query parameters). Your API key goes in the X-API-Key header.
| Parameter | Sent in | Required | Description |
X-API-Key |
header | YES | Your API key, sent as a header. You can also send it as Authorization: Bearer YOUR_API_KEY. |
status |
query | NO | scheduled, running, completed, failed or cancelled. |
q |
query | NO | Part of the name or of the sender ID. |
page |
query | NO | The page number, starting at 1. |
per_page |
query | NO | How many campaigns in a page, 1 to 100. The default is 20. |
curl --location --request GET 'https://telcomw.com/api/v3/campaigns?status=scheduled&page=1&per_page=20' \ --header 'X-API-Key: YOUR_API_KEY'
curl --location --request GET "https://telcomw.com/api/v3/campaigns?status=scheduled&page=1&per_page=20" ^ --header "X-API-Key: YOUR_API_KEY"
<?php
$headers = [
'X-API-Key: YOUR_API_KEY',
];
$ch = curl_init('https://telcomw.com/api/v3/campaigns?status=scheduled&page=1&per_page=20');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
const axios = require('axios');
axios.request({
method: 'get',
url: 'https://telcomw.com/api/v3/campaigns',
params: {
'status': 'scheduled',
'page': '1',
'per_page': '20'
},
headers: {
'X-API-Key': 'YOUR_API_KEY'
}
}).then((res) => console.log(res.data))
.catch((err) => console.error(err.response ? err.response.data : err.message));
import requests
params = {
'status': 'scheduled',
'page': '1',
'per_page': '20'
}
headers = {
'X-API-Key': 'YOUR_API_KEY'
}
response = requests.request('GET', 'https://telcomw.com/api/v3/campaigns', params=params, headers=headers)
print(response.json())
The response is JSON.
{
"success": true,
"request_id": "req_5f2c9a1d0e7b4a63",
"data": {
"summary": {
"total": 3,
"scheduled": 1,
"running": 0,
"completed": 2,
"failed": 0,
"cancelled": 0
},
"campaigns": [
{
"campaign_id": 42,
"name": "November sale",
"sender_id": "WGIT",
"message": "Our sale starts today. Visit us!",
"status": "scheduled",
"scheduled_at": "2026-11-20T07:00:00.000Z",
"recipients_source": "numbers",
"group_id": null,
"recipients": 2,
"queued": 0,
"failed": 0,
"cost": 0,
"currency": "MWK",
"notify_before": true,
"batch_ids": [],
"error": null,
"started_at": null,
"completed_at": null,
"created_at": "2026-11-05T09:12:44.000Z"
}
],
"pagination": {
"page": 1,
"per_page": 20,
"total": 1,
"pages": 1
}
}
}
| Field | Description |
data.summary | How many campaigns you have in each status, whatever the filters. |
data.campaigns | The campaigns of this page. Each one is described under Campaign Details. |
data.pagination | The page, the page size, the total and the number of pages. |