REST + JSON
Standart HTTP yöntemleri ve JSON gövde. Dil bağımsız; PHP, Node.js, Python, Java, C# ve .NET ile sorunsuz çalışır.
REST/JSON tabanlı, anahtar korumalı ve teslim bildirimi veren arayüz. Uygulamanız, CRM veya e-ticaret altyapınız üzerinden toplu SMS ve OTP gönderimi yapılabilir.
Genel bakış
API tasarımında önceliğimiz, ilk başarılı test gönderiminin kısa sürede gerçekleştirilebilmesidir. Bu nedenle istek yapısı sade tutulmuş, yanıtlar anlaşılır hata kodlarıyla dönmektedir.
Standart HTTP yöntemleri ve JSON gövde. Dil bağımsız; PHP, Node.js, Python, Java, C# ve .NET ile sorunsuz çalışır.
Her istek, panelden ürettiğiniz API anahtarıyla yetkilendirilir. Anahtarı yenileyebilir ve IP kısıtlaması tanımlayabilirsiniz.
Mesaj durumu değiştiğinde belirttiğiniz adrese bildirim gönderilir; sorgulama (polling) yapmanız gerekmez.
sender alanında kullanın.batch_id ile gönderimi panelden veya API'den sorgulayın.Not: Aşağıdaki adres ve alan adları örnek amaçlıdır. Hesabınıza özel güncel uç nokta ve parametre listesi, giriş yaptıktan sonra panelin API bölümünde yer alır.
curl -X POST "https://panel.oncusms.com.tr/api/v1/sms/send" \
-H "Authorization: Bearer API_ANAHTARINIZ" \
-H "Content-Type: application/json" \
-d '{
"sender": "ONCUSMS",
"type": "bulk",
"messages": [
{ "to": "905551112233", "text": "Sayin Ahmet Bey, randevunuz yarin saat 10:00." },
{ "to": "905559998877", "text": "Sayin Ayse Hanim, randevunuz yarin saat 11:30." }
]
}'
Yanıt
{
"status": "accepted",
"batch_id": "b_20261017_000481",
"total": 2,
"segments": 2,
"balance": 9998
}
<?php
$payload = [
'sender' => 'ONCUSMS',
'type' => 'otp',
'messages' => [
['to' => '905551112233', 'text' => 'Dogrulama kodunuz: 482915'],
],
];
$ch = curl_init('https://panel.oncusms.com.tr/api/v1/sms/send');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_ANAHTARINIZ',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
]);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
Panelde tanımladığınız adrese, mesaj durumu değiştiğinde aşağıdaki gibi bir POST isteği gönderilir. Uç noktanız 200 kodu döndürmelidir; aksi halde bildirim belirli aralıklarla yeniden denenir.
{
"batch_id": "b_20261017_000481",
"to": "905551112233",
"status": "delivered",
"delivered_at": "2026-10-17T21:14:09+03:00"
}
Hata yönetimi
Yanıt gövdesindeki message alanı hatanın Türkçe açıklamasını içerir.
| Kod | Anlam | Yapmanız gereken |
|---|---|---|
| 200 / 202 | İstek kabul edildi | Yanıttaki batch_id'yi kaydedin. |
| 400 | Geçersiz istek | Numara biçimini ve zorunlu alanları kontrol edin. |
| 401 | Yetkisiz | API anahtarınızı ve IP kısıtlamanızı doğrulayın. |
| 402 | Yetersiz bakiye | Panelden paket yükleyin. |
| 422 | Başlık veya içerik reddedildi | Gönderici başlığınızın onaylı olduğundan emin olun. |
| 429 | Hız sınırı aşıldı | İstekleri kısa aralıkla yeniden deneyin, toplu gönderim kullanın. |
| 5xx | Geçici sunucu hatası | Üstel beklemeyle (exponential backoff) yeniden deneyin. |
type değerleriyle iletin.Hazır eklenti ve platform entegrasyonları için entegrasyonlar sayfasını inceleyebilirsiniz.
Hayır. API erişimi tüm paketlerde dahildir; yalnızca gönderdiğiniz SMS adedi kadar kredi harcarsınız.
Panelde Ayarlar bölümünden API anahtarınızı oluşturabilir, yenileyebilir ve istediğiniz IP adreslerine kısıtlayabilirsiniz.
Test amaçlı gönderimlerinizi düşük adetli bir paketle gerçekleştirebilirsiniz. Daha kapsamlı test gereksinimleriniz için ekibimizle iletişime geçin.
Tek istekte birden fazla alıcı gönderebilirsiniz. Hesabınıza tanımlı hız sınırı panelde görünür; yüksek hacimli entegrasyonlar için sınırı birlikte planlarız.
Hesabınızı oluşturun, paketinizi tanımlayın ve API anahtarınız ile test gönderimi gerçekleştirin.