GetirSMS API

SMS Gönderim Platformu REST API v1

GetirSMS API, uygulamalarınız ve sistemleriniz üzerinden programatik olarak SMS göndermenize, gönderim raporlarını sorgulamanıza ve bakiye bilgilerinizi kontrol etmenize olanak sağlar. RESTful mimari üzerine kurulmuştur ve JSON formatında veri alışverişi yapar.

RESTful API

Standart HTTP metotları ile kolay entegrasyon

Yüksek Performans

Tek istekte 100.000 numaraya SMS

Güvenli

API Key + IP Whitelist + Rate Limit

Base URL

https://your-domain.com/api/v1

Tüm endpoint'ler bu base URL üzerinden erişilir.

Kimlik Doğrulama

Tüm API isteklerinde kimlik doğrulaması gereklidir. API Key'inizi aşağıdaki yöntemlerden biriyle gönderebilirsiniz:

Authorization: Bearer API_KEYÖnerilen yöntem
X-API-Key: API_KEYAlternatif header
?api_key=API_KEYQuery parametresi (önerilmez)

🔑 API Key Nasıl Alınır?

  1. GetirSMS paneline giriş yapın
  2. Sol menüden SMS API bölümüne gidin
  3. Yeni API Key butonuna tıklayın
  4. Key adı, izinler ve opsiyonel ayarları belirleyin
  5. Oluşturulan key'i güvenli bir yere kaydedin (sadece bir kez gösterilir!)

Örnek İstek

curl -X GET https://your-domain.com/api/v1/sms/balance \
  -H "Authorization: Bearer gsms_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"

API Key İzinleri

ParametreTipZorunluAçıklama
sms:sendpermissionHayırSMS gönderme izni
sms:reportpermissionHayırRapor sorgulama izni
sms:balancepermissionHayırBakiye sorgulama izni
sms:statuspermissionHayırDurum sorgulama izni

SMS Gönder

POST/api/v1/sms/send

Tek veya toplu SMS gönderimi yapar. Tek istekte en fazla 100.000 numaraya SMS gönderebilirsiniz. Her numara 1 kredi harcar. İstek JSON veya application/x-www-form-urlencoded formatında gönderilebilir.

Request Body Parametreleri

ParametreTipZorunluAçıklama
tostring | string[]EvetAlıcı numara(lar). Tekli: "5551234567", çoklu: ["555...", "555..."] veya virgülle ayrılmış string
messagestringEvetSMS mesaj içeriği. Maksimum karakter: GSM 160, Unicode 70
originatorstringHayırGönderici adı (başlık). Belirtilmezse hesap varsayılanı kullanılır
encodingstringHayırKarakter kodlaması. Değerler: "default", "tr" (Türkçe), "unicode"

Başarılı Yanıt (200)

{
  "success": true,
  "data": {
    "id": "clxx1234abcd",
    "messageId": "123456789",
    "phoneCount": 2,
    "creditCost": 2,
    "status": "sent",
    "message": "2 numaraya SMS başarıyla gönderildi."
  }
}

Hata Yanıtı (4xx/5xx)

{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Yetersiz kredi. Mevcut: 50, Gerekli: 1000"
  }
}

Kod Örneği — cURL

curl -X POST https://your-domain.com/api/v1/sms/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": ["5551234567", "5559876543"],
    "message": "Merhaba, siparişiniz kargoya verildi!",
    "originator": "SIRKETADI"
  }'

Rapor Sorgula

GET/api/v1/sms/report?id=REQUEST_ID
POST/api/v1/sms/reportBody: {"id": "REQUEST_ID"}

Daha önce gönderilen bir SMS talebinin detaylı iletim raporunu sorgular. Rapor; iletilen, bekleyen ve başarısız SMS sayılarını içerir.

Parametreler

ParametreTipZorunluAçıklama
idstringEvetSMS gönderim talebi ID'si (SMS Gönder yanıtındaki 'id' alanı)

Başarılı Yanıt

{
  "success": true,
  "data": {
    "id": "clxx1234abcd",
    "status": "completed",
    "phoneCount": 1000,
    "creditCost": 1000,
    "report": {
      "delivered": 950,
      "pending": 0,
      "failed": 50,
      "total": 1000,
      "status": "published",
      "date": "2026-06-01T12:00:00.000Z"
    },
    "refund": {
      "amount": 50,
      "date": "2026-06-01T12:05:00.000Z"
    },
    "createdAt": "2026-06-01T10:00:00.000Z",
    "sentAt": "2026-06-01T10:00:05.000Z"
  }
}

📊 Rapor Durumları

draft

Rapor henüz tamamlanmadı, gönderim devam ediyor

complete

Tüm SMS'ler raporlandı, admin onayı bekleniyor

published

Rapor yayınlandı, iade varsa yapıldı

Kod Örneği — cURL

curl -X GET "https://your-domain.com/api/v1/sms/report?id=REQUEST_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

Durum Sorgula

GET/api/v1/sms/status?id=REQUEST_ID

Bir SMS gönderim talebinin mevcut durumunu ve temel bilgilerini sorgular. Rapor detayı içinendpoint'ini kullanın.

Parametreler

ParametreTipZorunluAçıklama
idstringEvetSMS gönderim talebi ID'si

Başarılı Yanıt

{
  "success": true,
  "data": {
    "id": "clxx1234abcd",
    "status": "sent",
    "phoneCount": 500,
    "creditCost": 500,
    "charCount": 98,
    "originator": "SIRKETADI",
    "messageId": "123456789",
    "reportStatus": "draft",
    "createdAt": "2026-06-01T10:00:00.000Z",
    "sentAt": "2026-06-01T10:00:05.000Z"
  }
}

Bakiye Sorgula

GET/api/v1/sms/balance

Hesabınızdaki mevcut kredi bakiyesini, günlük limiti ve bugünkü kullanım istatistiklerini döndürür.

Başarılı Yanıt

{
  "success": true,
  "data": {
    "credits": 50000,
    "unlimited": false,
    "dailyLimit": null,
    "today": {
      "smsCount": 1200,
      "creditUsed": 1200,
      "requestCount": 5
    }
  }
}

Yanıt Alanları

ParametreTipZorunluAçıklama
creditsnumberEvetMevcut kredi bakiyesi
unlimitedbooleanEvetSınırsız kredi aktif mi
dailyLimitnumber|nullEvetGünlük SMS limiti (null = limitsiz)
today.smsCountnumberEvetBugün gönderilen toplam SMS
today.creditUsednumberEvetBugün harcanan toplam kredi
today.requestCountnumberEvetBugünkü toplam istek sayısı

Kod Örneği — cURL

curl -X GET "https://your-domain.com/api/v1/sms/balance" \
  -H "Authorization: Bearer YOUR_API_KEY"

Hata Kodları

API hata durumlarında aşağıdaki formatta yanıt döner. code alanı programatik kontrol için, message alanı kullanıcıya gösterilebilir mesaj içerir.

{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "Hata açıklaması"
  }
}
KodHTTPAçıklamaÇözüm
AUTH_REQUIRED401API Key gönderilmediAuthorization header ekleyin
INVALID_KEY401Geçersiz API KeyKey doğruluğunu kontrol edin
KEY_EXPIRED401API Key süresi dolmuşYeni key oluşturun
KEY_DISABLED401API Key deaktif edilmişPanelden key'i aktif edin
API_DISABLED403API erişimi kapalıAdmin ile iletişime geçin
RATE_LIMITED429İstek limiti aşıldıBiraz bekleyin ve tekrar deneyin
INSUFFICIENT_CREDITS402Yetersiz krediKredi yükleyin
INVALID_PARAMS400Geçersiz parametrelerRequest body kontrol edin
IP_BLOCKED403IP adresi engellenmişAdmin ile iletişime geçin
IP_NOT_WHITELISTED403IP whitelist'te değilIP'nizi key ayarlarına ekleyin
PERMISSION_DENIED403Yetersiz izinKey izinlerini kontrol edin
ACCOUNT_LOCKED403Hesap kilitlenmişAdmin ile iletişime geçin
INTERNAL_ERROR500Sunucu hatasıDestek ile iletişime geçin

Rate Limiting

API istekleri rate limit ile korunmaktadır. Varsayılan limit API key başına 60 istek/dakika'dır. Bu limit API key oluştururken veya admin tarafından değiştirilebilir.

Limit TürüVarsayılanAçıklama
API İstek Limiti60 req/dkAPI key başına dakikada maksimum istek sayısı
SMS Gönderim Limiti100.000/istekTek istekte gönderilebilecek maksimum numara
Günlük SMS LimitiAdmin ayarlarKullanıcı bazlı günlük toplam SMS limiti
API Key SayısıMax 10Kullanıcı başına oluşturulabilecek API key sayısı

Rate Limit Aşıldığında

HTTP 429 Too Many Requests yanıtı döner:

{
  "success": false,
  "error": {
    "code": "RATE_LIMITED",
    "message": "Rate limit aşıldı. Lütfen biraz bekleyin."
  }
}

💡 IP Whitelist

API key'inize IP whitelist ekleyerek sadece belirli IP adreslerinden erişime izin verebilirsiniz. Bu, güvenliği artırmanın en etkili yollarından biridir. API key oluştururken veya düzenlerken virgülle ayrılmış IP adresleri ekleyebilirsiniz.

GetirSMS API Dokümantasyonu v1.0 — Sorularınız için panelden destek alabilirsiniz.