Anadolu SMS API Dokümantasyonu

Kapsamlı SMS API dokümantasyonu: kimlik doğrulama, gönderim uç noktaları, webhook entegrasyonu, hata yönetimi, rate limiting, SDK'lar ve detaylı kod örnekleri. Developer'lar için tam entegrasyon rehberi.

  • Bearer Token ile güvenli kimlik doğrulama
  • Tek ve toplu mesaj gönderimi, durum sorgulama
  • Webhook ile gerçek zamanlı teslim bildirimleri
  • Sandbox ve Production ortamları
  • PHP, Python, Node.js, Java SDK'ları
  • Rate limiting ve hata yönetimi
  • Webhook doğrulama ve güvenlik
  • Detaylı kod örnekleri ve best practices
API Dokümantasyon

Hızlı Başlangıç

5 dakikada SMS API'nizi entegre edin

1. API Anahtarı

Dashboard'dan API anahtarınızı alın ve güvenli bir yerde saklayın.

Authorization: Bearer YOUR_API_KEY
2. İlk Mesaj

Basit bir POST isteği ile mesaj gönderin.

POST /api/v1/sms/send
{
  "to": "+905555555555",
  "message": "Merhaba, hoş geldiniz!"
}
3. Durum Kontrolü

Gönderim durumunu kontrol edin ve webhook'ları ayarlayın.

GET /api/v1/sms/status/{id}

API Endpoints

Tüm API uç noktaları ve detaylı kullanım örnekleri

SMS Gönderim

POST /api/v1/sms/send

Tek veya çoklu alıcıya SMS gönderin

Parametreler:
  • to - Alıcı telefon numarası (zorunlu)
  • message - Mesaj içeriği (zorunlu)
  • sender - Gönderici adı (opsiyonel)
  • scheduled_at - Zamanlanmış gönderim (opsiyonel)
POST /api/v1/sms/bulk

Toplu SMS gönderimi için optimize edilmiş endpoint

Avantajlar:
  • Yüksek performans
  • Batch processing
  • Detaylı raporlama
  • Hız optimizasyonu

Durum ve Raporlama

GET /api/v1/sms/status/{id}

Tek mesaj durumu sorgulama

Dönen Bilgiler:
  • Gönderim durumu
  • Teslim zamanı
  • Hata mesajları
  • Maliyet bilgisi
GET /api/v1/reports

Kapsamlı raporlama ve analitik

Rapor Türleri:
  • Günlük/haftalık/aylık
  • Kampanya bazlı
  • Operatör analizi
  • Maliyet raporları
GET /api/v1/balance

Hesap bakiyesi ve kredi durumu

Bilgiler:
  • Mevcut bakiye
  • Kullanılan kredi
  • Paket detayları
  • Otomatik yenileme

Webhook Yönetimi

POST /api/v1/webhooks

Webhook URL kaydetme ve yönetimi

Desteklenen Olaylar:
  • sms.sent - Mesaj gönderildi
  • sms.delivered - Mesaj teslim edildi
  • sms.failed - Mesaj başarısız
  • sms.received - Yanıt mesajı alındı
GET /api/v1/webhooks

Kayıtlı webhook'ları listeleme

Webhook Bilgileri:
  • URL durumu
  • Son başarılı çağrı
  • Hata sayısı
  • Yapılandırma detayları

Kod Örnekleri

Popüler programlama dilleri için hazır kod örnekleri

PHP - Laravel

Laravel framework ile SMS entegrasyonu

// Laravel Controller
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;

class SmsController extends Controller
{
    public function sendSms(Request $request)
    {
        $response = Http::withHeaders([
            'Authorization' => 'Bearer ' . config('sms.api_key'),
            'Content-Type' => 'application/json'
        ])->post('https://api.anadolusms.com/v1/sms/send', [
            'to' => $request->phone,
            'message' => $request->message,
            'sender' => 'LARAVEL'
        ]);
        
        return response()->json($response->json());
    }
}
Python - Django

Django framework ile SMS entegrasyonu

# Django View
import requests
from django.conf import settings

def send_sms(phone, message):
    url = 'https://api.anadolusms.com/v1/sms/send'
    headers = {
        'Authorization': f'Bearer {settings.SMS_API_KEY}',
        'Content-Type': 'application/json'
    }
    data = {
        'to': phone,
        'message': message,
        'sender': 'DJANGO'
    }
    
    response = requests.post(url, json=data, headers=headers)
    return response.json()
Node.js - Express

Express.js ile SMS entegrasyonu

// Express Route
const axios = require('axios');

app.post('/api/send-sms', async (req, res) => {
    try {
        const response = await axios.post(
            'https://api.anadolusms.com/v1/sms/send',
            {
                to: req.body.phone,
                message: req.body.message,
                sender: 'NODEJS'
            },
            {
                headers: {
                    'Authorization': `Bearer ${process.env.SMS_API_KEY}`,
                    'Content-Type': 'application/json'
                }
            }
        );
        
        res.json(response.data);
    } catch (error) {
        res.status(500).json({ error: error.message });
    }
});
Java - Spring Boot

Spring Boot ile SMS entegrasyonu

// Spring Boot Service
@Service
public class SmsService {
    
    @Value("${sms.api.key}")
    private String apiKey;
    
    public ResponseEntity sendSms(String phone, String message) {
        RestTemplate restTemplate = new RestTemplate();
        
        HttpHeaders headers = new HttpHeaders();
        headers.set("Authorization", "Bearer " + apiKey);
        headers.set("Content-Type", "application/json");
        
        Map data = new HashMap<>();
        data.put("to", phone);
        data.put("message", message);
        data.put("sender", "JAVA");
        
        HttpEntity> request = new HttpEntity<>(data, headers);
        
        return restTemplate.postForEntity(
            "https://api.anadolusms.com/v1/sms/send",
            request,
            String.class
        );
    }
}

Hata Yönetimi ve Limitler

API hata kodları, rate limiting ve güvenlik

HTTP Hata Kodları

API'den dönen hata kodları ve anlamları

4xx - Client Errors
  • 400 - Bad Request (Geçersiz parametreler)
  • 401 - Unauthorized (Geçersiz API anahtarı)
  • 403 - Forbidden (Yetkisiz erişim)
  • 422 - Validation Error (Doğrulama hatası)
  • 429 - Too Many Requests (Rate limit aşıldı)
5xx - Server Errors
  • 500 - Internal Server Error
  • 502 - Bad Gateway
  • 503 - Service Unavailable
Rate Limiting

API kullanım limitleri ve yönetimi

Varsayılan Limitler
  • 100 RPS - Saniye başına istek
  • 10,000/gün - Günlük mesaj limiti
  • 1,000/batch - Toplu gönderim limiti
Limit Artırma
  • Destek ile iletişim
  • İş planı yükseltme
  • Özel limitler
Güvenlik

API güvenliği ve en iyi uygulamalar

  • HTTPS Zorunlu - Tüm istekler SSL ile
  • API Key Güvenliği - Anahtarları güvenli saklayın
  • IP Kısıtlama - Panelden IP allowlist
  • Webhook Doğrulama - HMAC-SHA256 imza
  • Rate Limiting - Otomatik koruma
Webhook Güvenliği

Webhook doğrulama ve güvenlik

// PHP Webhook Doğrulama
$signature = $_SERVER['HTTP_X_SIGNATURE'];
$payload = file_get_contents('php://input');
$expected = hash_hmac('sha256', $payload, $secret);

if (hash_equals($signature, $expected)) {
    // Webhook güvenli, işle
    $data = json_decode($payload, true);
}

SDK ve Araçlar

Hazır SDK'lar ve geliştirici araçları

PHP SDK

Composer ile kurulum

composer require anadolusms/php-sdk
Python SDK

Pip ile kurulum

pip install anadolusms
Node.js SDK

NPM ile kurulum

npm install anadolusms
Java SDK

Maven ile kurulum

mvn install anadolusms-java

Sıkça Sorulan Sorular

Sandbox ortamı var mı?

Evet, test amaçlı sandbox ortamı mevcuttur. API anahtarınız ile sandbox endpoint'ini kullanabilirsiniz. Test mesajları gerçek gönderilmez.

IP kısıtlama destekleniyor mu?

Evet, güvenlik için IP allowlist özelliği mevcuttur. Panelden sadece belirli IP adreslerinden API erişimine izin verebilirsiniz.

Webhook retry mekanizması var mı?

Evet, webhook'lar başarısız olduğunda otomatik olarak 3 kez tekrar denenir. Exponential backoff ile 1, 5, 15 dakika aralıklarla retry yapılır.

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

Rate limit aşıldığında 429 Too Many Requests hatası döner. X-RateLimit-Reset header'ı ile limit sıfırlanma zamanını öğrenebilirsiniz.

Hangi dosya formatları destekleniyor?

Toplu gönderim için CSV, Excel (.xlsx) ve JSON formatları desteklenir. Maksimum dosya boyutu 10MB'dır.

API ile Başlayın

5 dakikada SMS API'nizi entegre edin. Ücretsiz deneme ile başlayın.

Hemen Başla
Ücretsiz deneme
7/24 destek
Hızlı kurulum