Developer SMS API Referansı

Güçlü RESTful API ile SMS entegrasyonu. Kapsamlı dokümantasyon, örnekler ve gerçek sistem entegrasyonu.

  • RESTful API endpoint'leri: POST https://anadolusms.com/api/v1/sms/send
  • Bearer token ile güvenli kimlik doğrulama
  • Toplu gönderim desteği (1000 numara per request)
  • Zamanlanmış gönderim (schedule_at parametresi)
  • Webhook entegrasyonu (HMAC-SHA256 imza)
  • BTK yasaklı içerik kontrolü
  • Detaylı raporlama ve kredi sorgulama
  • Rate limiting: 300 istek/dakika
Developer SMS API

Hızlı Başlangıç

5 dakikada SMS API'nizi entegre edin

🔑
1. API Key Alın

Kullanıcı panelinden API anahtarınızı oluşturun ve güvenle saklayın

API Key Oluştur
📝
2. İlk İsteğinizi Gönderin

cURL, PHP, Python veya JavaScript ile REST API'yi test edin

🚀
3. Üretime Geçin

Webhook'ları kurun, raporları takip edin ve gerçek SMS gönderimlerini başlatın

API Endpoint'leri

Tüm SMS API endpoint'leri ve kullanım örnekleri

📤 SMS Gönderimi

Tek veya çoklu numara SMS gönderimi

POST https://anadolusms.com/api/v1/sms/send
{
  "to": "+905551234567",
  "message": "Merhaba! Bu bir test mesajıdır.",
  "originator": "BASLIK",
  "schedule_at": null
}

Not: to parametresi tek numara veya array olabilir. Maksimum 1000 alıcı desteklenir.

📊 Rapor Sorgulama

SMS gönderim durumunu ve detaylarını kontrol edin

GET https://anadolusms.com/api/v1/reports?send_id=123
{
  "summary": {
    "id": 123,
    "status": "completed",
    "total_sent": 100,
    "success_count": 98,
    "failed_count": 2,
    "parts": 1
  },
  "details": [...]
}
📋 Toplu Gönderim

Çoklu numaraya aynı mesaj gönderimi

POST https://anadolusms.com/api/v1/sms/send
{
  "to": [
    "+905551234567",
    "+905559876543",
    "+905551111111"
  ],
  "message": "Toplu mesaj",
  "originator": "BASLIK"
}

Not: Aynı endpoint kullanılır. to parametresi array olarak gönderilir. Maksimum 1000 numara.

💰 Kredi Sorgulama

Hesap bakiyenizi sorgulayın

GET https://anadolusms.com/api/v1/account/balance
{
  "balance": 1250.50,
  "currency": "TRY"
}
📝 Başlık Listesi

Kullanılabilir gönderici başlıklarınızı alın

GET https://anadolusms.com/api/v1/originators
{
  "originators": [
    "BASLIK1",
    "BASLIK2",
    "KCDSMS"
  ]
}

SDK Örnekleri

Favori programlama dilinizde hızlı entegrasyon

🐘 PHP
<?php
$apiKey = 'your-api-key';
$apiUrl = 'https://anadolusms.com/api/v1';

// SMS gönder
$ch = curl_init($apiUrl . '/sms/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $apiKey,
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'to' => '+905551234567',
    'message' => 'Merhaba!',
    'originator' => 'BASLIK'
]));

$response = curl_exec($ch);
$result = json_decode($response, true);
echo $result['send_id']; // 123
?>
🐍 Python
import requests

api_key = 'your-api-key'
api_url = 'https://anadolusms.com/api/v1'

response = requests.post(
    f'{api_url}/sms/send',
    json={
        'to': '+905551234567',
        'message': 'Merhaba!',
        'originator': 'BASLIK'
    },
    headers={
        'Authorization': f'Bearer {api_key}',
        'Content-Type': 'application/json'
    }
)

result = response.json()
print(result['send_id'])  # 123
🟨 JavaScript
const axios = require('axios');

const apiKey = 'your-api-key';
const apiUrl = 'https://anadolusms.com/api/v1';

axios.post(`${apiUrl}/sms/send`, {
    to: '+905551234567',
    message: 'Merhaba!',
    originator: 'BASLIK'
}, {
    headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
    }
}).then(response => {
    console.log(response.data.send_id); // 123
});
☕ Java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

String apiKey = "your-api-key";
String apiUrl = "https://anadolusms.com/api/v1";

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(apiUrl + "/sms/send"))
    .header("Authorization", "Bearer " + apiKey)
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(
        "{\"to\":\"+905551234567\",\"message\":\"Merhaba!\",\"originator\":\"BASLIK\"}"
    ))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

Webhook Entegrasyonu

Gerçek zamanlı bildirimler ve olay takibi

🔔 Webhook URL Kurulumu

Kullanıcı panelinden webhook URL'inizi yapılandırın. API Bilgisi sayfasından webhook ayarlarınızı yapabilirsiniz. HTTPS zorunludur.

Webhook URL:
https://yourdomain.com/webhook/sms
Olaylar:
  • sms.queued - SMS kuyruğa alındı (zamanlanmış gönderim)
  • sms.sent - SMS başarıyla gönderildi
  • sms.failed - SMS gönderim hatası
Güvenlik: Webhook'lar HMAC-SHA256 ile imzalanır. Header'lar: X-Timestamp ve X-Signature
📨 Webhook Payload

Gelen webhook verisi örneği

POST https://yourdomain.com/webhook/sms
X-Timestamp: 1730284500
X-Signature: sha256=f1a9...
Content-Type: application/json

{
  "event": "sms.sent",
  "send_id": 123,
  "parts": 1,
  "count": 3,
  "failed": 0,
  "originator": "BASLIK"
}

Hata Yönetimi

Kapsamlı hata kodları ve çözüm önerileri

❌ 4xx Hatalar
  • 400 - Geçersiz JSON / Eksik parametre / BTK yasaklı içerik
  • 401 - API key geçersiz veya eksik
  • 402 - Yetersiz kredi
  • 403 - BTK yasaklı içerik tespit edildi
  • 404 - Kayıt bulunamadı (rapor sorgusu)
  • 429 - Rate limit aşıldı (300 istek/dakika)
  • 500 - Sunucu hatası
⚠️ 5xx Hatalar
  • 500 - Sunucu hatası
  • 502 - Bad Gateway
  • 503 - Servis kullanılamıyor
  • 504 - Gateway timeout
✅ Başarılı Yanıtlar
  • 200 - Başarılı (gönderim tamamlandı)
  • 202 - Kabul edildi (zamanlanmış gönderim)

Rate Limiting ve Güvenlik

API kullanım limitleri ve güvenlik önlemleri

⚡ Rate Limiting
  • Varsayılan: 300 istek/dakika
  • Toplu Gönderim: 1000 numara per chunk
  • Mesaj Limiti: Maksimum 8 SMS bölümü
Header'lar:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: UUID (opsiyonel)
🔐 Güvenlik
  • API Key: Header'da Authorization: Bearer ile gönderin
  • HTTPS: Zorunlu şifreli bağlantı
  • Idempotency: Tekrar deneme koruması (UUID ile)
  • Webhook İmza: HMAC-SHA256 ile doğrulama
Örnek Header:
Authorization: Bearer your-api-key
Content-Type: application/json
Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000

Sıkça Sorulan Sorular

Developer'ların en çok merak ettiği konular

API key nasıl alınır?

Kullanıcı paneline giriş yapın, "API Bilgisi" bölümünden yeni bir key oluşturun. Key'i güvenli bir yerde saklayın. API ayarları sayfasına buradan erişebilirsiniz.

Rate limit aşıldığında ne olur?

429 hata kodu döner. Varsayılan limit 300 istek/dakikadır. Exponential backoff kullanarak tekrar deneme yapın.

Webhook'lar güvenli mi?

Evet, webhook'lar HMAC-SHA256 ile imzalanır. Header'lar: X-Timestamp ve X-Signature. Signature'ı doğrulayarak güvenliği sağlayın. HTTPS zorunludur.

Zamanlanmış gönderim nasıl yapılır?

schedule_at parametresi ile ISO8601 formatında (örn: 2025-12-31T23:59:00+03:00) tarih gönderin. SMS belirtilen zamanda otomatik gönderilir. Önemli:

  • Timezone bilgisi mutlaka dahil edilmelidir (örn: +03:00)
  • Dakika seçimi 5 dakikalık dilimlerde olmalıdır: 00, 05, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
  • Geçmiş tarih seçilemez
  • Kredi hemen düşülür

Bulk SMS limiti nedir?

Tek seferde maksimum 1000 numaraya SMS gönderebilirsiniz. Daha fazlası için istekleri bölerek gönderin. Sunucu tarafında otomatik olarak 1000'lik parçalara bölünerek işlenir.

Mesaj uzunluk limiti nedir?

Maksimum 8 SMS bölümü (parts) gönderebilirsiniz. API'deki hesaplama user-panel ile tamamen aynıdır. Her zaman Türkçe karakter seti (tr2) olarak hesaplanır:

  • Tek SMS: 155 karakter (operator code +5 dahil)
  • Çoklu SMS: Her bölüm 155 karakter (operator code +5 dahil)
  • Özel karakterler (|, ^, {, }, [, ], \, ~, €) 2 karakter sayılır
  • Unicode karakterler otomatik temizlenir (Türkçe harfler hariç)
  • Maliyet: parts × recipient_count