API Dokümantasyonu

Kendi yazılımınızdan SMS ve sesli mesaj göndermek için REST API. API anahtarınızı panelde API Erişimi sayfasından alabilirsiniz.

Kimlik doğrulama

Tüm isteklerde API anahtarınızı Authorization: Bearer başlığıyla gönderin. Alternatif olarak X-API-Key başlığı veya api_key parametresi de kabul edilir. İstek gövdesi JSON (Content-Type: application/json) veya form verisi olabilir.

Temel adres: https://smsbt.com/api/v1

YöntemUç noktaAçıklamaParametreler
POST /sms/send SMS gönderir message, numbers (dizi veya virgülle ayrılmış), sender (ops.; boşsa varsayılan başlık), send_at (ops.: 2026-12-31 10:00)
POST /voice/send Sesli mesaj gönderir caller_id, audio_id veya tts_text, numbers, send_at (ops.)
GET /balance Bakiye ve birim fiyatlar —
GET /senders?type=sms Onaylı başlıklar (type=voice: arayan numaralar) —
GET /audio Ses dosyalarınız (audio_id için) —
GET /jobs/{id} Gönderim durumu ve sayaçlar —
GET /jobs/{id}/report Numara bazlı rapor (sayfalı) limit (en fazla 10000), after (önceki yanıttaki next_after)
POST /jobs/{id}/cancel Bekleyen/devam eden gönderimi iptal eder —
Örnek: SMS gönderimi (cURL)
curl -X POST https://smsbt.com/api/v1/sms/send \
  -H "Authorization: Bearer API_ANAHTARINIZ" \
  -H "Content-Type: application/json" \
  -d '{"message":"Merhaba, siparişiniz kargoya verildi.","numbers":["05321234567","05441234567"]}'
Örnek: PHP
$ch = curl_init('https://smsbt.com/api/v1/sms/send');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer API_ANAHTARINIZ', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'message' => 'Merhaba, randevunuz yarın saat 10:00.',
        'numbers' => ['05321234567'],
    ]),
]);
$response = json_decode(curl_exec($ch), true);
echo $response['data']['id'];   // gönderim numarası
Örnek: Basit HTTP GET (eski sistemler için)
https://smsbt.com/api/v1/sms/send?api_key=API_ANAHTARINIZ&message=Merhaba&numbers=05321234567,05441234567
Yanıt biçimi
{
  "success": true,
  "data": { "id": 1024, "status": "queued", "total": 2, "pending": 2, "delivered": 0, "failed": 0, "cost": 2, ... }
}

{ "success": false, "error": { "code": "insufficient_balance", "message": "Yetersiz bakiye. ..." } }
Hata kodları

unauthorized, invalid_key, api_disabled, ip_not_allowed, invalid_sender, invalid_message, invalid_audio, invalid_date, no_recipients, too_many_recipients, insufficient_balance, no_provider, not_found, not_cancellable

10.000'den büyük listeler arka planda hazırlanır: yanıt status: "preparing" döner, ardından /jobs/{id} ile durumu takip edin. Durumlar: preparing, scheduled, queued, processing, sent, completed, failed, cancelled.