İçeriğe atla
REST API · v1

Geliştirici Kaynakları

SMS Merkezi REST API ile dakikalar içinde sisteminize SMS gönderimi entegre edin. Sanctum token kimliği, JSON yanıt, RFC 7807 hata standardı, gerçek zamanlı DLR webhook.

Terminal — SMS gönder
# Tek bir SMS gönder
curl -X POST https://api.smsmerkezi.net/v1/sms \
  -H "Authorization: Bearer SK_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+905551234567",
    "sender": "FIRMAM",
    "body": "Merhaba, randevunuz onaylandı."
  }'

Hızlı entegrasyon

Tek endpoint, JSON gövde, Bearer token. İlk SMS'inizi 5 dakikada gönderin.

Güvenli token

Laravel Sanctum tabanlı API token + ability scope. Token'ı panelden yönetin, istediğinizde iptal edin.

Standartlara uyumlu

RFC 7807 problem+json hatalar, X-RateLimit başlıkları, ISO 8601 tarih, idempotent webhook.

Hızlı Başlangıç

3 adımda ilk API çağrınızı yapın.

ADIM 1

Hesap aç

Ücretsiz hesap açın ve onboarding sihirbazını tamamlayın.

ADIM 2

Token oluştur

Panelde Ayarlar → API Token bölümünden yeni token üretin. Token sadece bir kez gösterilir.

ADIM 3

İlk SMS'i gönder

Aşağıdaki kod örneğini kopyalayın, token'ınızı yapıştırın, çağırın. Yanıtta SMS ID'sini alacaksınız.

Kod Örnekleri

SMS gönderme — dilediğiniz dilde başlayın.

curl -X POST https://api.smsmerkezi.net/v1/sms \
  -H "Authorization: Bearer SK_your_token_here" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+905551234567",
    "sender": "FIRMAM",
    "body": "Randevunuz 14:30 onaylandı."
  }'
<?php
$ch = curl_init('https://api.smsmerkezi.net/v1/sms');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer SK_your_token_here',
        'Accept: application/json',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'to'     => '+905551234567',
        'sender' => 'FIRMAM',
        'body'   => 'Randevunuz 14:30 onaylandı.',
    ]),
]);
$response = curl_exec($ch);
$status   = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "HTTP $status\n$response\n";
import requests

response = requests.post(
    "https://api.smsmerkezi.net/v1/sms",
    headers={
        "Authorization": "Bearer SK_your_token_here",
        "Accept": "application/json",
    },
    json={
        "to": "+905551234567",
        "sender": "FIRMAM",
        "body": "Randevunuz 14:30 onaylandı.",
    },
    timeout=10,
)

print(response.status_code, response.json())
// Node 18+ (yerleşik fetch). Aksi halde: npm i node-fetch
const res = await fetch('https://api.smsmerkezi.net/v1/sms', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SK_your_token_here',
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    to: '+905551234567',
    sender: 'FIRMAM',
    body: 'Randevunuz 14:30 onaylandı.',
  }),
});

console.log(res.status, await res.json());

Örnek Yanıt

Başarılı çağrı → 202 Accepted

{
  "data": {
    "id": "sms_01HXYZ123ABC",
    "status": "queued",
    "to": "+905551234567",
    "segments": 1,
    "encoding": "GSM7",
    "credits_used": 1,
    "created_at": "2026-05-18T14:30:00+03:00"
  }
}

Kimlik Doğrulama

Her istek Bearer token ile yapılır. Token'ı panelden Ayarlar → API Token bölümünden oluşturursunuz. Her token bir veya birden fazla ability (yetki) ile sınırlandırılabilir:

  • sms:send — SMS gönderme
  • sms:read — SMS listesi + detay
  • contacts:* — Kontak CRUD
  • reports:read — Rapor erişimi

Token sızıntısı durumunda panel üzerinden tek tıkla iptal edebilirsiniz; geçmiş kayıtlar etkilenmez.

Rate Limit

API çağrıları paket bazında saatlik limite tabidir. Her yanıtta aşağıdaki başlıklar döner:

X-RateLimit-Limit: 3600
X-RateLimit-Remaining: 3542
X-RateLimit-Reset: 1716039600

Limit aşıldığında 429 Too Many Requests döner; Retry-After başlığını dikkate alın. Kullanımınızı panelde API Kullanımı ekranından izleyebilirsiniz.

Webhook (DLR Push)

Her SMS durumu değiştiğinde (queued → sent → delivered) belirttiğiniz URL'ye HMAC-SHA256 imzalı JSON push gönderilir. Başarısız istekler [10s, 60s, 300s, 900s, 1h] gecikmelerle 5 kez tekrarlanır.

POST /your-webhook
X-SMSMerkezi-Signature: sha256=abc123...
X-SMSMerkezi-Event: sms.delivered

{
  "event": "sms.delivered",
  "data": {
    "id": "sms_01HXYZ123ABC",
    "status": "delivered",
    "delivered_at": "2026-05-18T14:30:42+03:00"
  }
}

Doğrulama: gövdeyi paneldeki secret ile HMAC-SHA256 hesaplayın, X-SMSMerkezi-Signature başlığıyla kıyaslayın.

Hata Standardı

Tüm hata yanıtları RFC 7807 problem+json formatında döner. İşlemenize uygun yapı:

HTTP/1.1 422 Unprocessable Entity
Content-Type: application/problem+json

{
  "type": "https://smsmerkezi.net/errors/validation",
  "title": "Doğrulama hatası",
  "status": 422,
  "detail": "Alıcı numara geçersiz.",
  "errors": {
    "to": ["E.164 formatında olmalı"]
  }
}

type alanı hata türünü URI olarak tanımlar; bu URI'yi kontrol ederek programatik karar verebilirsiniz.

Tam dokümantasyon hazır

70+ endpoint, her biri için örnek istek/yanıt, parametre tablosu ve hata kodları. Scribe ile otomatik üretildi, her sürümde günceldir.