Kimlik Doğrulama
Tüm istekler Bearer token ile yapılır. API anahtarınızı Ayarlar > API Anahtarı'ndan alabilirsiniz.
curl https://api.xox.io/v1/sms \
-H "Authorization: Bearer xox_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{"to":"+905321234567","message":"Merhaba!"}'const res = await fetch("https://api.xox.io/v1/sms", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.XOX_API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({ to: "+905321234567", message: "Merhaba!" })
});
const data = await res.json();import requests
r = requests.post("https://api.xox.io/v1/sms",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"to": "+905321234567", "message": "Merhaba!"})
print(r.json())SMS Gönder
Tek veya toplu SMS gönderin. Çoklu sağlayıcı desteği, otomatik retry, delivery webhook.
{
"to": ["+905321234567", "+905331234567"],
"message": "Hoş geldin {{name}}! Kodun: {{code}}",
"from": "XOX",
"provider": "netgsm",
"templateVars": {
"+905321234567": { "name": "Ahmet", "code": "XOX-9F2A" }
},
"webhookUrl": "https://siteniz.com/hooks/sms"
}{
"ok": true,
"batchId": "batch_abc123",
"total": 2,
"delivered": 2,
"failed": 0,
"cost": 1.6,
"creditsAfter": 98.4,
"results": [
{ "to": "+905321234567", "status": "delivered", "messageId": "msg_xyz", "cost": 0.8 },
{ "to": "+905331234567", "status": "delivered", "messageId": "msg_abc", "cost": 0.8 }
]
}Telegram Mesajı
Bot API üzerinden metin, fotoğraf, konum gönderin. HTML ve MarkdownV2 desteği.
{
"chatId": "@kanaladi",
"message": "<b>Yeni sipariş!</b>\nSipariş #{{order_id}}",
"parseMode": "HTML",
"templateVars": { "order_id": "ORD-12345" },
"disableNotification": false
}{
"ok": true,
"messageId": 12345,
"chatId": "@kanaladi",
"cost": 0.1,
"creditsAfter": 99.9
}Sesli Arama
TTS veya ses dosyası ile otomatik arama başlatın. TwiML veya hazır ses kabul edilir.
{
"to": "+905321234567",
"message": "Sayın Ahmet, siparişiniz hazır.",
"voice": "tr-TR",
"twimlUrl": "https://siteniz.com/voice/123.xml",
"maxDuration": 60
}{
"ok": true,
"callId": "CAxxxxx",
"to": "+905321234567",
"status": "queued",
"estimatedCost": 5,
"creditsAfter": 95
}Kişiler
Kişi listelerinizi yönetin. Gruplar, etiketler, CSV import/export.
/v1/contactsKişileri listele/v1/contactsYeni kişi ekle/v1/contacts/:idKişi güncelle/v1/contacts/:idKişi sil/v1/contacts/bulkToplu içe aktar (JSON veya CSV)/v1/groupsGrupları listele// Toplu içe aktarma
POST /v1/contacts/bulk
{
"contacts": [
{ "name": "Ahmet Yılmaz", "phone": "+905321234567", "tags": ["vip"] },
{ "name": "Ayşe Demir", "phone": "+905331234568", "telegram": "ayedemir" }
]
}Kampanyalar
Toplu kampanya oluşturun ve gönderin. Şablonlar, değişkenler, zamanlama.
/v1/campaignsKampanyaları listele/v1/campaignsYeni kampanya oluştur/v1/campaigns/:id/sendKampanyayı gönder/v1/campaigns/:idKampanyayı silPOST /v1/campaigns
{
"name": "Yaz Kampanyası 2026",
"channel": "sms",
"message": "{{name}}, yaza özel %20 indirim! Kod: {{code}}",
"contactGroupIds": ["grp_vip"],
"provider": "netgsm",
"sendNow": true
}Şablonlar
{{değişken}} destekli mesaj şablonları. Sistem ve özel şablonlar.
/v1/templatesŞablonları listele/v1/templatesYeni şablon oluştur/v1/templates/previewŞablonu önizlePOST /v1/templates/preview
{
"body": "Merhaba {{name}}, siparişin {{order_id}} hazır.",
"variables": { "name": "Ahmet", "order_id": "ORD-12345" }
}Webhooklar
Sistemden sisteminize anlık bildirimler. HMAC-SHA256 imzalı, 8s zaman aşımı.
/v1/webhooksWebhook listesi/v1/webhooksYeni webhook/v1/webhooks/:id/testTest isteği gönder// X-XOX-Signature: sha256=HMAC(body, secret)
// X-XOX-Event: sms.delivered
POST https://siteniz.com/hooks
{
"event": "sms.delivered",
"timestamp": "2026-07-04T15:42:18.000Z",
"data": {
"messageId": "msg_xyz",
"to": "+905321234567",
"deliveredAt": "2026-07-04T15:42:18.000Z",
"cost": 0.8
}
}Hata Kodları
RESTful standart hata kodları. Detaylı hata mesajları ve code alanı.
{
"ok": false,
"error": "Yetersiz kredi: 50 SMS için 50 kredi gerekli, mevcut: 12.5",
"code": "INSUFFICIENT_CREDITS",
"details": {
"required": 50,
"available": 12.5
}
}| Kod | Anlam |
|---|---|
| 200 | Başarılı |
| 400 | Geçersiz istek (validation error) |
| 401 | API anahtarı geçersiz veya eksik |
| 402 | Yetersiz kredi |
| 403 | Yetkisiz (plan limiti aşıldı) |
| 404 | Kaynak bulunamadı |
| 429 | Rate limit aşıldı (60 istek/dakika) |
| 500 | Sunucu hatası |
Hemen deneyin
Ücretsiz hesap oluşturun, 100 başlangıç kredisi kazanın ve API'yi test edin.