Geliştirici merkezine hoş geldiniz. TurkeySMS API, SMS yeteneklerini dijital ekosisteMinize doğrudan entegre etmeniz için güçlü, güvenli ve ölçeklenebilir programatik çözümler sunar — ister web platformları, ister mobil uygulamalar, ister kurumsal ERP sistemleri inşa ediyor olun.
API'miz Node.js, Python, PHP ve C# dahil tüm modern ortamlarda sorunsuz çalışacak şekilde tasarlanmıştır. Entegrasyon süresini en aza indirirken mesaj teslim performansını en üst düzeye çıkarmak için kapsamlı SDK'lar ve özel araçlar sunuyoruz.
API'mizin gücünü gerçek zamanlı olarak deneyimleyin. İnteraktif dokümantasyonumuz, doğrudan tarayıcınızdan endpoint'leri test etmenize, şemaları görüntülemenize ve yanıt yapılarını anlamanıza olanak tanır.
OpenAPI 3.0 spesifikasyonlarıyla tam uyumlu. Tek satır kod yazmadan SMS, OTP ve raporları deneyin.
İnteraktif Dokümantasyonu Aç →
TurkeySMS ile entegrasyon, akıllı ve gerçek zamanlı iletişim kanalları kurmanızı sağlar. Otomatik sistem tetikleyicilerinden çok faktörlü kimlik doğrulamaya (OTP) kadar, en yüksek uluslararası güvenlik standartlarını karşılayan güvenilir iletişim altyapısını sunuyoruz.
Başarılı bir entegrasyon sağlamak ve yasal gerekliliklere uymak için lütfen aşağıdaki koşulları doğrulayın:
Türkiye'deki hesaplar için yasal kaydı tamamlamak ve hizmeti aktive etmek amacıyla geçerli bir Dijital İmza (E-imza) gereklidir.
API'nin gönderim taleplerinizi başarıyla işleyebilmesi için hesabınızda yeterli bakiye bulunduğundan emin olun.
Alıcılar tarafından açıkça tanınabilmek için onaylı bir Gönderici Kimliğine (Alfasayısal Başlık) sahip olmanız gerekir.
Sadece 3 adımda ilk SMS'inizi göndermeye başlayın:
TurkeySmsClient_TR.php dosyasını indirin, projenize ekleyin ve aşağıdaki kodu kullanın:
require_once 'TurkeySmsClient_TR.php'; $client = new TurkeySmsClient('YOUR_API_KEY'); $result = $client->sendSms('GondericiID', '905xxxxxxxxx', 'Merhaba!'); if ($client->isLastSuccess()) { echo "✅ Gönderildi! ID: " . $result['sms_id']; }
import requests url = "https://api.turkeysms.com.tr/sms/send" data = { "api_key": "YOUR_API_KEY", "title": "GondericiID", "sentto": "905xxxxxxxxx", "text": "Merhaba!", "sms_lang": 1 } result = requests.post(url, json=data).json() print(result)
const axios = require('axios'); const result = await axios.post('https://api.turkeysms.com.tr/sms/send', { api_key: 'YOUR_API_KEY', title: 'GondericiID', sentto: '905xxxxxxxxx', text: 'Merhaba!', sms_lang: 1 }); console.log(result.data);
Kimlik doğrulama, JSON istek gövdesinde gönderilen benzersiz API anahtarınız aracılığıyla gerçekleştirilir. API anahtarınızı kontrol panelinizde Hesabım → API Ayarları bölümünde bulabilirsiniz.
API anahtarınızı doğrulayın ve verilen tüm izinleri (Gönderim, OTP, Bakiye) ile mevcut hesap durumunu alın.
curl -X POST https://api.turkeysms.com.tr/auth/check \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY" }'
$ch = curl_init("https://api.turkeysms.com.tr/auth/check"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => json_encode(["api_key" => "YOUR_API_KEY"]), CURLOPT_HTTPHEADER => ['Content-Type: application/json'], ]); echo curl_exec($ch);
result = requests.post("https://api.turkeysms.com.tr/auth/check", json={"api_key": "YOUR_API_KEY"}).json() print(result)
const r = await axios.post('https://api.turkeysms.com.tr/auth/check', { api_key: 'YOUR_API_KEY' }); console.log(r.data);
{ "result": true, "result_code": "TS-1000", "key_details": { "status": "Active", "permissions": { "post_request": true, "send_single_sms": true, "send_otp": true, "check_balance": true } }, "account_summary": { "account_status": "Active", "balance": { "main": 1500, "international": 250 } } }
POST isteğiyle belirli bir telefon numarasına tek SMS gönderin:
| Parametre | Tür | Durum | Açıklama |
|---|---|---|---|
| api_key | string | Zorunlu | Benzersiz API anahtarınız. |
| title | string | Zorunlu | Kayıtlı gönderici kimliğiniz (büyük/küçük harf duyarlı). |
| text | string | Zorunlu | Mesaj metni. Unicode tam desteklenir. |
| sentto | string | Zorunlu | Uluslararası formatta alıcı numarası (örn. 905xxxxxxxxx). Yalnızca rakam. |
| report | int | İsteğe Bağlı | Yanıt raporu etkinleştir: 1, devre dışı: 0. Varsayılan: 1 |
| sms_lang | int | İsteğe Bağlı | 0 İngilizce, 1 Türkçe, 2 Arapça/Unicode. Varsayılan: 2 |
| content_type | int | İsteğe Bağlı | 0 İşlemsel, 1 Yüksek Kalite, 2 Reklam. Varsayılan: 0 |
| response_type | string | İsteğe Bağlı | Yanıt formatı: json veya php. Varsayılan: json |
curl -X POST https://api.turkeysms.com.tr/sms/send \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "title": "Sirketim", "text": "Merhaba! Bu bir test mesajıdır.", "sentto": "905xxxxxxxxx", "sms_lang": 1, "content_type": 0 }'
$data = [ "api_key" => "YOUR_API_KEY", "title" => "Sirketim", "text" => "Merhaba! Bu bir test mesajıdır.", "sentto" => "905xxxxxxxxx", "sms_lang" => 1, "content_type" => 0, ]; $ch = curl_init("https://api.turkeysms.com.tr/sms/send"); curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => json_encode($data), CURLOPT_HTTPHEADER => ['Content-Type: application/json']]); echo curl_exec($ch);
result = requests.post("https://api.turkeysms.com.tr/sms/send", json={ "api_key": "YOUR_API_KEY", "title": "Sirketim", "text": "Merhaba! Bu bir test mesajıdır.", "sentto": "905xxxxxxxxx", "sms_lang": 1, "content_type": 0, }).json() print(result)
const r = await axios.post('https://api.turkeysms.com.tr/sms/send', { api_key: 'YOUR_API_KEY', title: 'Sirketim', text: 'Merhaba! Bu bir test mesajıdır.', sentto: '905xxxxxxxxx', sms_lang: 1, content_type: 0, }); console.log(r.data);
{ "result": true, "result_code": "TS-1024", "result_message": "SMS başarıyla gönderildi.", "sms_id": 1000007721, "number_of_sms": 1, "sms_lang": "Turkish", "content_type": "Transactional", "country": "Turkey-TR" }
Tek Kullanımlık Şifre (OTP) göndermek için özel endpoint. Mesaj kuyruğunda en yüksek öncelikle ultra hızlı teslimat sağlar.
| Parametre | Tür | Durum | Açıklama |
|---|---|---|---|
| api_key | string | Zorunlu | Benzersiz API anahtarınız. |
| mobile | string | Zorunlu | Uluslararası formatta alıcı numarası (örn. 905xxxxxxxxx). |
| lang | int | İsteğe Bağlı | 0 İngilizce, 1 Türkçe, 2 Arapça. Varsayılan: 2 |
| digits | int | İsteğe Bağlı | OTP basamak sayısı (4, 5 veya 6). Varsayılan: 4 |
| report | int | İsteğe Bağlı | Rapor etkinleştir: 1. Varsayılan: 1 |
| response_type | string | İsteğe Bağlı | Yanıt formatı: json veya php. Varsayılan: json |
curl -X POST https://api.turkeysms.com.tr/otp/send \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "mobile": "905xxxxxxxxx", "lang": 1, "digits": 4 }'
$ch = curl_init("https://api.turkeysms.com.tr/otp/send"); curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => json_encode(["api_key" => "YOUR_API_KEY", "mobile" => "905xxxxxxxxx", "lang" => 1, "digits" => 4]), CURLOPT_HTTPHEADER => ['Content-Type: application/json']]); echo curl_exec($ch);
result = requests.post("https://api.turkeysms.com.tr/otp/send", json={"api_key": "YOUR_API_KEY", "mobile": "905xxxxxxxxx", "lang": 1, "digits": 4}).json() print(result)
const r = await axios.post('https://api.turkeysms.com.tr/otp/send', { api_key: 'YOUR_API_KEY', mobile: '905xxxxxxxxx', lang: 1, digits: 4 }); console.log(r.data);
OTP mesajının tam metnini kontrol edin. Metinde TS-CODE anahtar kelimesini mutlaka eklemelisiniz — otomatik olarak üretilen OTP koduyla değiştirilir. Aktif bir Gönderici Kimliği gereklidir.
curl -X POST https://api.turkeysms.com.tr/otp/detailed \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "mobile": "905xxxxxxxxx", "title": "GondericiID", "text": "Hoş geldiniz! Doğrulama kodunuz: TS-CODE", "lang": 1, "digits": 4 }'
curl_setopt_array($ch = curl_init("https://api.turkeysms.com.tr/otp/detailed"), [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => json_encode([ "api_key" => "YOUR_API_KEY", "mobile" => "905xxxxxxxxx", "title" => "GondericiID", "text" => "Kodunuz: TS-CODE", "lang" => 1, "digits" => 4 ]), CURLOPT_HTTPHEADER => ['Content-Type: application/json'] ]); echo curl_exec($ch);
result = requests.post("https://api.turkeysms.com.tr/otp/detailed", json={ "api_key": "YOUR_API_KEY", "mobile": "905xxxxxxxxx", "title": "GondericiID", "text": "Kodunuz: TS-CODE", "lang": 1, "digits": 4 }).json()
Mesajları belirli bir gelecek tarih ve saatte gönderilmek üzere zamanlayın. Aynı /sms/send endpoint'ini ek zamanlama parametreleriyle kullanır.
curl -X POST https://api.turkeysms.com.tr/sms/send \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "title": "Sirketim", "text": "Zamanlanmış mesaj içeriği", "sentto": "905xxxxxxxxx", "scheduled_sms": 1, "scheduled_date": "2026-12-31", "scheduled_time": "09:00" }'
Kampanya ihtiyaçlarınıza göre iki farklı yöntemle birden fazla alıcıya mesaj gönderin.
Numara listesine sabit bir mesaj gönderin.
curl -X POST https://api.turkeysms.com.tr/group/send \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "title": "GondericiID", "text": "Tüm alıcılar için evrensel mesaj", "sentto": ["905000000001", "905000000002", "905000000003"] }'
Her numaraya kişiselleştirilmiş mesaj gönderin (dizi indisleri eşleşmelidir).
curl -X POST https://api.turkeysms.com.tr/group/sendMixed \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "title": "GondericiID", "text": ["Merhaba Ali", "Merhaba Ayşe"], "sentto": ["905000000001", "905000000002"] }'
sms_lang| Değer | Dil | Açıklama |
|---|---|---|
| 0 | İngilizce | İngilizce (GSM 7-bit kodlama) |
| 1 | Türkçe | Özel karakter desteği ile Türkçe |
| 2 | Arapça / Unicode | Arapça veya herhangi bir UTF-8 dili |
content_type| Değer | Tür | Açıklama |
|---|---|---|
| 0 | İşlemsel | Sistem bildirimleri, uyarılar, OTP |
| 1 | Yüksek Kalite | Premium teslimat rotası |
| 2 | Reklam | Pazarlama ve tanıtım mesajları |
Kalan SMS kredinizi programatik olarak sorgulayın. API ayarlarınızda Bakiye Sorgulama izninin etkin olması gerekir.
curl -X POST https://api.turkeysms.com.tr/balance/ \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY" }'
curl_setopt_array($ch = curl_init("https://api.turkeysms.com.tr/balance/"), [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => json_encode(["api_key" => "YOUR_API_KEY"]), CURLOPT_HTTPHEADER => ['Content-Type: application/json']]); echo curl_exec($ch);
result = requests.post("https://api.turkeysms.com.tr/balance/", json={"api_key": "YOUR_API_KEY"}).json() print(result)
Hesabınızdaki aktif Gönderici Kimliklerinin listesini sorgulayın. Önce API anahtarı ayarlarınızda Gönderici Kimliği Sorgulama seçeneğini etkinleştirin.
curl -X POST https://api.turkeysms.com.tr/senderid/check \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY" }'
curl_setopt_array($ch = curl_init("https://api.turkeysms.com.tr/senderid/check"), [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => json_encode(["api_key" => "YOUR_API_KEY"]), CURLOPT_HTTPHEADER => ['Content-Type: application/json']]); echo curl_exec($ch);
{ "result": true, "result_code": "TS-1040", "sender_ids": [ { "id": 12345, "title": "TurkeySMS", "status": 1, "document": 1, "network_stat": 1 } ] }
Mesaj durumunu izlemek için iki tür rapor: genel özet için Temel Rapor, numara başına durum takibi için Detaylı Rapor.
curl -X POST https://api.turkeysms.com.tr/reports/basic \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "raporid": 12345 }'
{ "result": true, "rapor_id": 12345, "total_numbers": 1000, "success_count": 950, "failed_count": 30, "pending_count": 20 }
Numara başına durum takibi. Sayfa başına 500 kayıt sınırıyla sayfalandırma desteği.
| Parametre | Tür | Açıklama |
|---|---|---|
| api_key | string | API Anahtarınız. Zorunlu |
| raporid | integer | Gönderim sonrası alınan rapor ID. Zorunlu |
| page | integer | Sayfa numarası (yalnızca detaylı rapor). Varsayılan: 1. |
{ "result": true, "result_code": "TS-1064", "pagination": { "current_page": 1, "total_pages": 5, "total_records": 2350 }, "data": [{ "phone_number": "905xxxxxxxxx", "sent_at": "2026-04-03 12:00:00", "sms_status": "Numara mesajı aldı" }] }
Gönderim sırasında alınan benzersiz SMS ID'sini kullanarak belirli bir mesajın teslim durumunu sorgulayın.
| Parametre | Tür | Açıklama |
|---|---|---|
| api_key | string | API Anahtarınız. Zorunlu |
| sms_id | integer | Mesajın benzersiz SMS ID'si. Zorunlu |
curl -X POST https://api.turkeysms.com.tr/sms/status \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "sms_id": 12345678 }'
{ "status": "success", "result_code": "TS-1064", "result": true, "sender_id": "SENDER", "sms_status": "Numara mesajı aldı", "sms_balance": "1 SMS" }
Kişi gruplarınızı programatik olarak yönetin. Grup oluşturun, düzenleyin, silin veya listeleyin.
curl -X POST https://api.turkeysms.com.tr/groups/create \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "group_name": "Yeni Grubum" }'
{ "result": true, "result_code": "TS-1080", "group": { "id": 5412, "name": "Yeni Grubum", "created_at": "2026-04-03" } }
curl -X POST https://api.turkeysms.com.tr/groups/edit \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "group_id": 1234, "new_name": "Güncel İsim" }'
curl -X POST https://api.turkeysms.com.tr/groups/delete \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "group_id": 1234 }'
curl -X POST https://api.turkeysms.com.tr/groups/list \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "search": "Ekip" }'
{ "result": true, "result_code": "TS-1090", "groups_count": 2, "groups": [ { "id": 123, "name": "Ekip A", "date": "2026-04-01" }, { "id": 456, "name": "Müşteriler", "date": "2026-04-02" } ] }
Özel alan desteğiyle kişi gruplarınıza programatik olarak telefon numarası ekleyin veya kaldırın.
Parametreler: api_key, group_id, gsm_number (zorunlu). İsteğe bağlı: name, f_01, f_02, f_03.
curl -X POST https://api.turkeysms.com.tr/contacts/add \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "group_id": 1234, "gsm_number": "905051234567", "name": "Ahmet Yılmaz", "f_01": "Ek Bilgi" }'
{ "result": true, "result_code": "TS-1100", "group_id": 5412, "total_added": 1, "total_failed": 0, "mobile": "905051234567" }
Belirli telefon numaralarına mesaj gönderilmesini engelleyin. Her kullanıcı için bağımsız olarak yönetilir.
curl -X POST https://api.turkeysms.com.tr/blacklist/add \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "number": "905xxxxxxxx" }'
curl -X POST https://api.turkeysms.com.tr/blacklist/status \ -H "Content-Type: application/json" \ -d '{ "api_key": "YOUR_API_KEY", "number": "905xxxxxxxx" }'
{ "status": "success", "result_code": "TS-1143", "is_blocked": true, "block_date": "2026-04-03", "block_time": "17:50" }
Mesaj durumu için API'yi sorgulamak yerine TurkeySMS, operatör tarafından güncellenir güncellenmez ayrıntılı teslimat raporlarını doğrudan sunucunuza push etmek için Webhook desteği sunar.
X-TurkeySms-Signature başlığı ekleriz — Webhook Gizli Anahtarınızı kullanarak istek gövdesinin HMAC-SHA256 hash'i.
<?php $secret = "YOUR_WEBHOOK_SECRET"; $payload = file_get_contents('php://input'); $signature = $_SERVER['HTTP_X_TURKEYSMS_SIGNATURE'] ?? ''; $expectedSignature = hash_hmac('sha256', $payload, $secret); if (hash_equals($expectedSignature, $signature)) { $data = json_decode($payload, true); // Teslimat raporunu işle file_put_contents('webhook_log.txt', $data['data']['sms_id'] . ": " . $data['data']['status']); http_response_code(200); } else { http_response_code(403); // Yetkisiz istekleri reddet } ?>
Entegrasyon sürecinizi kolaylaştırmak için dünyanın en popüler platformlarına hazır çözümler.
TurkeySMS'i Make.com (eski adıyla Integromat) senaryolarınıza yerel olarak entegre edin. Tek satır kod yazmadan iletişim iş akışlarını otomatikleştirin.
En popüler programlama ortamları için tam dokümante edilmiş SDK'lar. Tümü Anlık SMS, OTP, Zamanlanmış Mesajlaşma ve Toplu SMS'i destekler.
Her işlem bir durum kodu döndürür. Sorunları teşhis etmek ve hataları düzgün yönetmek için bu tabloyu kullanın.
| Kod | HTTP | Açıklama |
|---|---|---|
| TS-1000 | 200 | Kimlik doğrulama başarılı. |
| TS-1022 | 200 | Numara mesajı almadı (teslimat başarısız). |
| TS-1023 | 200 | Numara kapsama alanı dışında, mesaj henüz alınmadı. |
| TS-1024 | 200 | SMS başarıyla gönderildi. |
| TS-1025 | 400 | Alıcı numarası eksik veya geçersiz. |
| TS-1026 | 400 | Mesaj metni eksik veya boş. |
| TS-1027 | 403 | İşlemi tamamlamak için yetersiz bakiye. |
| TS-1028 | 403 | Gönderici kimliği aktif değil veya doğrulanmamış. |
| TS-1029 | 403 | Gönderici kimliği hesapta bulunamadı. |
| TS-1030 | 403 | Hesap devre dışı veya geçici olarak askıya alındı. |
| TS-1031 | 401 | Geçersiz veya devre dışı API anahtarı. |
| TS-1032 | 403 | Bu hesap için uluslararası gönderim etkinleştirilmemiş. |
| TS-1033 | 400 | Geçersiz istek formatı (geçerli JSON değil). |
| TS-1034 | 400 | Gönderici başlığı eksik veya geçersiz karakter içeriyor. |
| TS-1036 | 403 | Standart OTP gönderme izni etkin değil. |
| TS-1037 | 403 | Gelişmiş OTP gönderme izni etkin değil. |
| TS-1038 | 403 | Gönderici kimliği sorgulama izni etkin değil. |
| TS-1040 | 200 | Bakiye / Gönderici kimliği sorgusu başarılı. |
| TS-1050 | 401 | İstekte API anahtarı eksik. |
| TS-1052 | 400 | SMS ID eksik. |
| TS-1060 | 403 | Dakika başına hız sınırı aşıldı. |
| TS-1061 | 403 | POST gönderim izni etkin değil. |
| TS-1063 | 403 | SMS durum sorgulama izni etkin değil. |
| TS-1064 | 200 | İşlem başarılı. |
| TS-1065 | 403 | API Anahtarı izinleri bu işleme izin vermiyor. |
| TS-1066 | 403 | Grup gönderme izni etkin değil. |
| TS-1072 | 400 | Planlanmış tarih/saat geçmişte veya geçersiz. Gelecekteki bir tarih ve saat kullanın. |
| TS-1080 | 200 | Grup başarıyla oluşturuldu. |
| TS-1081 | 403 | Grup oluşturma izni devre dışı. |
| TS-1082 | 400 | Grup adı zaten mevcut. |
| TS-1083 | 400 | Geçersiz grup adı. |
| TS-1084 | 403 | Grup düzenleme izni devre dışı. |
| TS-1085 | 403 | Grup silme izni devre dışı. |
| TS-1086 | 404 | Grup bulunamadı veya yetkisiz erişim. |
| TS-1087 | 200 | Grup adı başarıyla güncellendi. |
| TS-1088 | 200 | Grup başarıyla silindi. |
| TS-1089 | 403 | Grup listeleme izni devre dışı. |
| TS-1090 | 200 | Grup listesi başarıyla alındı. |
| TS-1100 | 200 | Kişi başarıyla eklendi. |
| TS-1101 | 400 | Numara eklenemedi veya numara zaten mevcut. |
| TS-1140 | 400 | Numara bu kullanıcı için zaten engellenmiş. |
| TS-1141 | 200 | Numara kara listeye başarıyla eklendi. |
| TS-1142 | 200 | Numara kara listede bulunamadı. |
| TS-1143 | 200 | Numara şu anda engelli. |
| TS-1144 | 400 | Geçersiz telefon numarası formatı. |