Türkiye'nin Geliştirici Dostu SMS API'si

SMS API ile uygulamanızdan toplu SMS gönderin

WaMessage SMS API; tekil ve toplu SMS gönderimi, OTP doğrulama, kişiye özel mesaj, ileri tarihli gönderim, teslimat raporu ve kara liste yönetimini tek REST API altında sunar. API anahtarınızı panelden alın, ilk SMS'inizi 5 dakikada gönderin — temsilci beklemeden.

REST + JSONSelf-servis anahtarOTP hızlı kanalTeslimat raporuKara liste yönetimi
POST https://api.toplusms.app/api/v1/1toN

{
  "api_key": "YOUR_API_KEY",
  "sender": "SMS TEST",
  "message_type": "normal",
  "message_content_type": "bilgi",
  "message": "WaMessage test mesajıdır.",
  "phones": ["905551112233"],
  "add_cancel_link": true
}

SMS API nedir, toplu SMS API nasıl çalışır?

SMS API, yazılımınızın SMS altyapısıyla doğrudan konuşmasını sağlayan programlama arayüzüdür. Panele girmeden; sitenizden, mobil uygulamanızdan, CRM'inizden veya herhangi bir backend servisinizden tek bir HTTP isteğiyle SMS gönderirsiniz. Toplu SMS API ile aynı mesajı binlerce numaraya tek istekte iletebilir, OTP SMS API ile tek kullanımlık doğrulama kodlarını saniyeler içinde ulaştırabilirsiniz.

WaMessage SMS API, REST prensipleriyle çalışır: tüm uç noktalar POST metodunu ve JSON gövdesini kullanır. Kimlik doğrulama tek bir api_key alanıyla yapılır; SDK zorunluluğu yoktur — HTTP isteği atabilen her dil ve platformla (PHP, Node.js, Python, C#, Java, Go...) dakikalar içinde SMS API entegrasyonu tamamlanır.

Gönderim sonrası her isteğin teslimat sonucu rapor endpointlerinden alıcı bazında izlenir; ticari iletilerde mesaja otomatik iptal linki ekleme ve kara liste yönetimiyle mevzuata uygun gönderim yapılır.

Türkiye'de SMS API arayan geliştirici ve yazılım ekipleri için WaMessage; Turkcell, Vodafone ve Türk Telekom dahil tüm yurt içi operatörlere gönderim yapar, Türkçe karakter desteği ve yerel teknik destek sunar. Kısacası SMS API Türkiye ihtiyacınızın tamamı — gönderim, doğrulama, raporlama ve yönetim — tek panelde toplanır.

Adım adım SMS API entegrasyonu: 5 dakikada ilk SMS

Aşağıdaki beş adımı sırayla uygulayan bir geliştirici, dış yardım almadan entegrasyonu tamamlar.

  1. Hesap açın ve API anahtarınızı alın

    Ücretsiz kayıt olun, ardından WaMessage paneline giriş yapıp API bölümünden api_key değerinizi kopyalayın. Aynı anahtar tüm SMS API işlemlerinde kullanılır; her isteğin JSON gövdesinde api_key alanıyla gönderilir.

    BASE URL
    https://api.toplusms.app/api/v1
    
    Tüm endpointler POST metodu ve JSON gövdesi kullanır.
    Güvenlik: API anahtarını frontend JavaScript kodunda, mobil uygulama içinde veya herkese açık repository'lerde tutmayın; istekleri her zaman kendi backend'iniz üzerinden yapın.
  2. Onaylı gönderici başlığınızı doğrulayın

    SMS'leriniz hangi başlıkla (sender) gidecek? Hesabınıza tanımlı onaylı başlıkları sorgulayın; yanıttaki sender değerini gönderimlerde kullanacaksınız.

    İSTEK — POST /senders
    {
      "api_key": "YOUR_API_KEY"
    }
    YANIT
    {
      "data": [
        {
          "id": 13230,
          "sender": "SMS TEST",
          "status": "1",
          "description": "1 Günlük Gönderici Adı",
          "created_at": "2026-08-06 09:28:06"
        }
      ],
      "status": 200
    }
  3. Kredinizi kontrol edin

    Gönderim öncesi hesap durumunuzu ve kalan kredinizi görün; yanıttaki credit alanı kalan SMS kredinizdir.

    İSTEK — POST /user/information
    {
      "api_key": "YOUR_API_KEY"
    }
    YANIT (kısaltılmış)
    {
      "code": 200,
      "status": "success",
      "data": {
        "username": "firma_kullanicisi",
        "cancel_link_end_date": "2027-02-24",
        "credit": 981
      }
    }
  4. İlk SMS'inizi gönderin

    Kendi numaranıza test mesajı gönderin. Yanıttaki id değerini not edin — teslimat raporunu bu kimlikle sorgulayacaksınız.

    İSTEK — POST /1toN
    {
      "api_key": "YOUR_API_KEY",
      "sender": "SMS TEST",
      "message_type": "normal",
      "message_content_type": "bilgi",
      "message": "WaMessage test mesajıdır.",
      "phones": ["905551112233"],
      "add_cancel_link": true
    }
    YANIT
    {
      "id": 3411916,
      "code": 200,
      "status": "success",
      "description": "SMS gönderimi başarıyla tamamlandı.",
      "quantity": 982,
      "numberCount": 1,
      "amount": 1
    }
  5. Teslimat raporunu sorgulayın

    Gönderimin özetini ve alıcı bazlı sonucu alın; success / fail sayıları ve iletim zamanları yanıtta döner.

    İSTEK — POST /report/single
    {
      "api_key": "YOUR_API_KEY",
      "report_id": 16589
    }
    YANIT
    {
      "code": 200,
      "status": "success",
      "data": {
        "id": 3411758,
        "message": "test",
        "sender": "SMS TEST",
        "count": 1,
        "success": 1,
        "fail": 0,
        "created_at": "2026-08-06 09:29:59",
        "completed_at": "2026-08-06 09:30:05"
      }
    }

Kod örnekleri: cURL, PHP, Node.js, Python

Aşağıdaki örneklerin tamamı /1toN endpointine aynı JSON gövdesini gönderir; kopyalayıp YOUR_API_KEY değerini değiştirmeniz yeterli.

curl -X POST "https://api.toplusms.app/api/v1/1toN" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key":"YOUR_API_KEY",
    "sender":"SMS TEST",
    "message_type":"normal",
    "message_content_type":"bilgi",
    "message":"WaMessage test mesajıdır.",
    "phones":["905551112233"],
    "add_cancel_link":true
  }'
<?php
$payload = [
  "api_key" => "YOUR_API_KEY",
  "sender" => "SMS TEST",
  "message_type" => "normal",
  "message_content_type" => "bilgi",
  "message" => "WaMessage test mesajıdır.",
  "phones" => ["905551112233"],
  "add_cancel_link" => true
];

$ch = curl_init("https://api.toplusms.app/api/v1/1toN");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
  CURLOPT_POSTFIELDS => json_encode($payload)
]);

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

echo $response;
const response = await fetch("https://api.toplusms.app/api/v1/1toN", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    api_key: "YOUR_API_KEY",
    sender: "SMS TEST",
    message_type: "normal",
    message_content_type: "bilgi",
    message: "WaMessage test mesajıdır.",
    phones: ["905551112233"],
    add_cancel_link: true
  })
});

const data = await response.json();
console.log(data);
import requests

payload = {
    "api_key": "YOUR_API_KEY",
    "sender": "SMS TEST",
    "message_type": "normal",
    "message_content_type": "bilgi",
    "message": "WaMessage test mesajıdır.",
    "phones": ["905551112233"],
    "add_cancel_link": True
}

response = requests.post("https://api.toplusms.app/api/v1/1toN", json=payload)
print(response.json())

Endpoint referansı: tüm uç noktalar ve alanlar

Gönderimden kara listeye 12 uç noktanın tamamı; her alanın açıklaması ve gerçek istek/yanıt örnekleriyle.

Gönderim

POSThttps://api.toplusms.app/api/v1/otp

Tek kullanımlık şifre ve hızlı bilgilendirme kanalı. Mesaj 1 SMS uzunluğunda ve Türkçe karakter içermiyorsa sistem gönderimi otomatik olarak OTP kanalına yönlendirir; doğrulama kodları için en hızlı yol budur.

AlanZorunluAçıklama
api_keyEvetPanelden alınan API anahtarı
senderEvetOnaylı gönderici başlığı (/senders yanıtından)
message_typeEvetMesaj tipi; örneklerde normal
messageEvetGönderilecek mesaj içeriği
phonesEvetAlıcı numara listesi, örn. ["905551112233"]
add_cancel_linkHayırtrue ise mesaja iptal linki eklenir
İSTEK
{
  "api_key": "YOUR_API_KEY",
  "sender": "SMS TEST",
  "message_type": "normal",
  "message": "Dogrulama kodunuz: 482913",
  "phones": ["905551112233"],
  "add_cancel_link": false
}
BAŞARILI YANIT
{
  "id": 3411916,
  "code": 200,
  "status": "success",
  "description": "SMS gönderimi başarıyla tamamlandı.",
  "quantity": 982,
  "numberCount": 1,
  "amount": 1
}
POSThttps://api.toplusms.app/api/v1/1toN

Tek mesaj, çok numara: aynı içeriği listedeki tüm numaralara gönderir. Kampanya ve toplu bilgilendirme için temel endpointtir. OTP koşullarını karşılayan mesajlar otomatik olarak hızlı kanala yönlendirilir.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
senderEvetOnaylı gönderici başlığı
message_typeEvetMesaj tipi; örneklerde normal
message_content_typeEvetİçerik tipi; örneklerde bilgi
messageEvetTüm alıcılara gidecek ortak mesaj
phonesEvetAlıcı numara listesi
add_cancel_linkHayırTicari iletilerde iptal linki ekler
İSTEK
{
  "api_key": "YOUR_API_KEY",
  "sender": "SMS TEST",
  "message_type": "normal",
  "message_content_type": "bilgi",
  "message": "Hafta sonuna özel %20 indirim!",
  "phones": ["905551112233", "905554445566"],
  "add_cancel_link": true
}
BAŞARILI YANIT
{
  "id": 3411916,
  "code": 200,
  "status": "success",
  "description": "SMS gönderimi başarıyla tamamlandı.",
  "quantity": 982,
  "numberCount": 1,
  "amount": 1
}
POSThttps://api.toplusms.app/api/v1/NtoN

Numaraya özel mesaj: her alıcıya farklı içerik gönderir (isim, sipariş no, randevu saati...). send_time alanıyla ileri tarihli gönderim planlanır.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
senderEvetOnaylı gönderici başlığı
message_typeEvetMesaj tipi
send_timeHayırİleri tarih; format YYYY-MM-DD HH:mm:ss, boşsa hemen gönderilir
phonesEvetHer öğesi {"phone": "...", "message": "..."} olan liste
add_cancel_linkHayırİptal linki ekleme seçeneği
İSTEK
{
  "api_key": "YOUR_API_KEY",
  "sender": "SMS TEST",
  "message_type": "normal",
  "send_time": "2026-12-17 13:15:00",
  "phones": [
    {"phone": "905551112233", "message": "Sayın Ali Bey, randevunuz yarın 14.00"},
    {"phone": "905554445566", "message": "Sayın Ayşe Hanım, siparişiniz kargoda"}
  ],
  "add_cancel_link": true
}
BAŞARILI YANIT
{
  "id": 3411916,
  "code": 200,
  "status": "success",
  "description": "SMS gönderimi başarıyla tamamlandı.",
  "quantity": 982,
  "numberCount": 1,
  "amount": 1
}
OTP yönlendirme kuralı: Mesaj 1 SMS uzunluğunda ve standart karakter setindeyse (Türkçe karakter içermiyorsa) sistem gönderimi otomatik olarak OTP kanalına yönlendirir. Bu şartları karşılamayan gönderimler standart SMS akışında devam eder.

Hesap

POSThttps://api.toplusms.app/api/v1/senders

Hesabınıza tanımlı onaylı gönderici başlıklarını listeler.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
İSTEK
{
  "api_key": "YOUR_API_KEY"
}
BAŞARILI YANIT
{
  "data": [
    {
      "id": 13230,
      "sender": "SMS TEST",
      "status": "1",
      "description": "1 Günlük Gönderici Adı",
      "created_at": "2026-08-06 09:28:06"
    }
  ],
  "status": 200
}
POSThttps://api.toplusms.app/api/v1/user/information

Hesap bilgilerinizi ve kalan kredinizi döndürür; credit alanı kalan SMS kredisidir.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
İSTEK
{
  "api_key": "YOUR_API_KEY"
}
BAŞARILI YANIT
{
  "code": 200,
  "status": "success",
  "data": {
    "id": 7895,
    "username": "firma_kullanicisi",
    "phone": "+905551112233",
    "email": "[email protected]",
    "cancel_link_end_date": "2027-02-24",
    "require_login_otp": false,
    "credit": 981
  }
}

Raporlama

POSThttps://api.toplusms.app/api/v1/report/detail

Belirli bir gönderimin alıcı bazlı teslimat detayını döndürür: her numara için durum açıklaması ve iletim zamanı.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
report_idEvetGönderim yanıtındaki kimlik
İSTEK
{
  "api_key": "YOUR_API_KEY",
  "report_id": 16535
}
BAŞARILI YANIT
{
  "code": 200,
  "status": "success",
  "data": [
    {
      "id": 31359598,
      "phone": "905551112233",
      "message": "test",
      "status_description": "İletim başarılı.",
      "result_time": "2026-08-06 09:30:11",
      "created_at": "2026-08-06 09:29:59"
    }
  ]
}
POSThttps://api.toplusms.app/api/v1/report/between

İki tarih arasındaki tüm gönderimlerin özet raporlarını döndürür.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
start_dateEvetBaşlangıç; YYYY-MM-DD HH:mm:ss
end_dateEvetBitiş; YYYY-MM-DD HH:mm:ss
İSTEK
{
  "api_key": "YOUR_API_KEY",
  "start_date": "2026-07-01 00:00:00",
  "end_date": "2026-08-01 00:00:00"
}
BAŞARILI YANIT
{
  "code": 200,
  "status": "success",
  "data": [
    {
      "id": 3412025,
      "message": "merhabalar",
      "sender": "SMS TEST",
      "credit_before": 982,
      "count": 1,
      "success": 1,
      "fail": 0,
      "created_at": "2026-08-06 09:33:43",
      "completed_at": "2026-08-06 09:33:45"
    }
  ]
}
POSThttps://api.toplusms.app/api/v1/report/single

Tek bir gönderimin özet raporunu döndürür: toplam alıcı, başarılı/başarısız sayısı ve tamamlanma zamanı.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
report_idEvetGönderim yanıtındaki kimlik
İSTEK
{
  "api_key": "YOUR_API_KEY",
  "report_id": 16589
}
BAŞARILI YANIT
{
  "code": 200,
  "status": "success",
  "data": {
    "id": 3411758,
    "message": "test",
    "sender": "SMS TEST",
    "credit_before": 984,
    "count": 1,
    "success": 1,
    "fail": 0,
    "created_at": "2026-08-06 09:29:59",
    "completed_at": "2026-08-06 09:30:05"
  }
}

Yönetim

POSThttps://api.toplusms.app/api/v1/cancel/future-sms

Henüz gönderilmemiş, send_time ile planlanmış ileri tarihli bir gönderimi iptal eder.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
idEvetPlanlanan gönderimin kimliği
İSTEK
{
  "api_key": "YOUR_API_KEY",
  "id": 16589
}
POSThttps://api.toplusms.app/api/v1/blacklists

Kara listenizdeki numaraları listeler; bu numaralara gönderim yapılmaz.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
İSTEK
{
  "api_key": "YOUR_API_KEY"
}
BAŞARILI YANIT
{
  "code": 200,
  "status": "success",
  "data": [
    {
      "id": 468079,
      "phone": 5551112233,
      "country_code": "90",
      "added_type": "Panel üzerinden eklendi.",
      "created_at": "2026-08-06 09:51:17"
    }
  ]
}
POSThttps://api.toplusms.app/api/v1/add/blacklist

Bir numarayı kara listeye ekler; iptal talebi gelen alıcıları programatik olarak engelleyin.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
phoneEvetEngellenecek numara
İSTEK
{
  "api_key": "YOUR_API_KEY",
  "phone": "905551112233"
}
BAŞARILI YANIT
{
  "code": 200,
  "status": "success",
  "data": "Girdiğiniz telefon numarası başarıyla kara listenize eklendi."
}
POSThttps://api.toplusms.app/api/v1/delete/blacklist

Bir numarayı kara listeden çıkarır.

AlanZorunluAçıklama
api_keyEvetAPI anahtarı
phoneEvetListeden çıkarılacak numara
İSTEK
{
  "api_key": "YOUR_API_KEY",
  "phone": "905551112233"
}
BAŞARILI YANIT
{
  "code": 200,
  "status": "success",
  "data": "Girdiğiniz telefon numarası başarıyla kara listenizden kaldırıldı."
}

Gönderim yanıt alanları

AlanAçıklama
idGönderim kimliği; rapor sorgularında report_id olarak kullanılır
codeYanıt kodu; başarılı isteklerde 200
statusBaşarılı isteklerde success
descriptionİşlem açıklaması
quantityGönderim sonrası kalan kredi
numberCountAlıcı sayısı
amountBu gönderimde harcanan kredi

SMS API kullanım senaryoları

Aynı API ile doğrulamadan kampanyaya tüm gönderim ihtiyaçları.

OTP / Doğrulama Kodu

Üyelik, giriş ve işlem onaylarında tek kullanımlık şifreyi /otp ile saniyeler içinde iletin; kısa ve Türkçe karaktersiz mesajlar otomatik hızlı kanaldan gider.

Sipariş ve Kargo Bildirimi

E-ticaret altyapınızdan /NtoN ile her müşteriye kendi sipariş numarası ve kargo takip bilgisini gönderin.

Kampanya Duyurusu

/1toN ile tüm listeye tek istekte ulaşın; add_cancel_link ile ticari iletilere otomatik iptal linki ekleyin.

Randevu Hatırlatma

send_time ile SMS'leri randevudan bir gün önceye planlayın; plan değişirse /cancel/future-sms ile iptal edin.

Alarm ve Sistem Bildirimi

Sunucu, ödeme veya stok uyarılarını nöbetçi ekibin telefonuna anında düşürün; teslimatı raporla doğrulayın.

Üyelik ve Bilgilendirme

Şifre sıfırlama, fatura hatırlatma, sözleşme bilgilendirmesi gibi işlemsel mesajları uygulamanızdan otomatik gönderin.

API entegrasyonu: yazılımınıza nasıl bağlanır?

SDK zorunluluğu yok — HTTP isteği atabilen her platform bağlanır.

Uygulamanız
web / mobil / CRM / ERP
WaMessage SMS API
REST + JSON
Operatörler
tüm Türkiye şebekeleri
Teslimat Raporu
alıcı bazlı sonuç

Kendi yazılımınız

Backend'inize (PHP, Node.js, Python, C#, Java, Go...) yukarıdaki kod örnekleriyle doğrudan bağlanın; test için Postman koleksiyonunu kullanın.

E-ticaret ve CRM

Sipariş, üyelik ve destek olaylarınızı tetikleyici yapıp SMS gönderimini iş akışınıza ekleyin; her olayda tek bir POST isteği yeterli.

SMS + WhatsApp birlikte

Aynı panelde WhatsApp API ve WhatsApp Business API ile çok kanallı bildirim kurun: kritik mesajı SMS, zengin içeriği WhatsApp taşısın.

SMS gitmediyse önce bunları kontrol edin

API anahtarı
Request body içindeki api_key değerini panelden doğrulayın.
Hesap kredisi
/user/information yanıtındaki credit alanını kontrol edin.
Gönderici başlığı
/senders listesindeki onaylı bir başlığı birebir kullanın.
Kara liste
/blacklists üzerinden alıcının engelli olup olmadığına bakın.
Numara formatı
Numaraları ülke koduyla, örn. 905551112233 biçiminde gönderin.
Teslimat raporu
/report/detail ile alıcı bazlı status_description açıklamasını inceleyin.

SMS API hakkında sık sorulan sorular

SMS API'yi ücretsiz deneyebilir miyim?

Evet. Ücretsiz hesap açın; paneldeki API bölümünden anahtarınızı alıp test gönderimlerinizi hemen yapabilirsiniz.

API anahtarını nereden alırım?

WaMessage paneline giriş yaptıktan sonra API bölümünden api_key değerinizi kopyalayın. Aynı anahtar gönderim, rapor, hesap ve kara liste işlemlerinin tamamında kullanılır.

Hangi programlama dilleriyle kullanabilirim?

Tümüyle. API standart REST + JSON kullandığı için PHP, Node.js, Python, C#, Java, Go dahil HTTP isteği atabilen her dil ve platformla çalışır; SDK zorunluluğu yoktur.

OTP SMS nasıl gönderilir?

/otp endpointini kullanın. Mesajınız 1 SMS uzunluğunda ve Türkçe karaktersizse sistem gönderimi otomatik olarak hızlı OTP kanalına yönlendirir.

Her numaraya farklı SMS gönderebilir miyim?

Evet. /NtoN endpointinde her alıcı için ayrı phone ve message değeri gönderirsiniz — isim, sipariş numarası gibi kişiselleştirmeler için idealdir.

İleri tarihli SMS planlayabilir miyim?

Evet. /NtoN isteğinde send_time alanını YYYY-MM-DD HH:mm:ss formatında doldurun; vazgeçerseniz /cancel/future-sms ile iptal edin.

Teslimat sonucunu nasıl öğrenirim?

Gönderim yanıtındaki id değeriyle /report/single (özet) veya /report/detail (alıcı bazlı) endpointlerini sorgulayın; tarih aralığı için /report/between kullanılır.

Ticari iletilere iptal linki eklenir mi?

Evet. Gönderim isteklerinde add_cancel_link alanını true yapın; iptal talebi gelen numaraları /add/blacklist ile programatik olarak engelleyebilirsiniz.

Kalan kredimi API'den görebilir miyim?

Evet. /user/information yanıtındaki credit alanı kalan SMS kredinizi verir; ayrıca her gönderim yanıtındaki quantity alanı gönderim sonrası kalan krediyi döndürür.

SMS API fiyatları nasıl belirlenir?

Fiyatlandırma kredi paketlerine göre yapılır; her başarılı gönderimde harcanan kredi yanıttaki amount alanında görünür. Güncel paketler için bizimle iletişime geçin.

İlk SMS'inizi bugün gönderin

Ücretsiz hesabınızı açın, API anahtarınızı panelden alın; yukarıdaki adımlarla 5 dakikada entegrasyonu tamamlayın.