// Primary
https://smtpapi.vocotext.com/isms_send_all_id.php
// Mirror 2
https://smtpapi2.vocotext.com/isms_send_all_id.php
// Mirror 3
https://www.isms.com.my/isms_send_all_id.phpusing Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
[ApiController]
[Route("api/[controller]")]
public class SmsController : ControllerBase
{
// Register IHttpClientFactory in Program.cs: builder.Services.AddHttpClient();
private readonly IHttpClientFactory _clientFactory;
public SmsController(IHttpClientFactory clientFactory)
=> _clientFactory = clientFactory;
[HttpPost("send")]
public async Task<IActionResult> SendSms(string mobile, string message)
{
var payload = new Dictionary<string, string>
{
{ "un", "your_username" },
{ "pwd", "your_password" },
{ "dstno", mobile }, // Full international format
{ "msg", message },
{ "type", "1" }, // 1 = ASCII, 2 = Unicode
{ "agreedterm", "YES" },
{ "sendid", "MyBrand" } // Optional, max 11 chars
};
var client = _clientFactory.CreateClient();
var response = await client.PostAsync(
"https://smtpapi.vocotext.com/isms_send_all_id.php",
new FormUrlEncodedContent(payload));
var result = await response.Content.ReadAsStringAsync();
if (result.StartsWith("2000"))
{
var trxId = result.Split(':')[1];
return Ok(new { success = true, transactionId = trxId });
}
return BadRequest(new { success = false, error = result });
}
}2000 = SUCCESS:1143007207
// Save the transaction ID for delivery tracking-1001 = AUTHENTICATION FAILED
-1003 = IP NOT ALLOWED
-1004 = INSUFFICIENT CREDITS
-1008 = MISSING PARAMETER
-1013 = INVALID TERM AGREEMENTRegister free, get your API credentials, and start sending in minutes.