SMS API Platformu

SMS Onayla TR RESTful API v2 ile dakikada binlerce sanal numara tahsis edin, anlık SMS onay kodlarını webhook veya polling ile çekin, iptal ve iadeleri tam otomatik yönetin.

Base URL https://smsonaylatr.com/api/v2
300 İstek / Dakika
Bearer Token Güvenliği
Canlı API Test Konsolu (Interactive Sandbox)
Kod yazmadan tarayıcınızdan canlı API istekleri gönderin ve yanıtları test edin.
Canlı Sandbox
Beklemede - ms
// İsteği göndermek için "İsteği Gönder" butonuna tıklayın.
// GET /status için token girmenize gerek yoktur.
Kimlik Doğrulama (Sanctum Bearer Token): Korumalı tüm API isteklerinde HTTP başlığına (Header) Authorization: Bearer <TOKEN> eklenmelidir. Token'ınızı doğrudan Profil > API Anahtarı sayfasından tek tıkla üretebilir veya POST /auth/createToken ucuna e-posta & şifre göndererek programatik olarak alabilirsiniz.
Hız Sınırı (Rate Limiting - 300 Req/Min): Kullanıcı başına dakikada 300 istek limiti uygulanır. SMS bekleme süreçlerinde /number/smsList ucunu 3 ile 5 saniyelik aralıklarla sorgulamanız önerilir. Limit aşımında sistem 429 Too Many Requests döner.
GET /status
Yetki Gerekmez (Public)

API servislerinin, veritabanının ve sunucu motorunun ayakta olup olmadığını denetleyen sağlık kontrolü (Healthcheck) ucudur. UptimeRobot vb. izleme servisleriyle tam uyumludur.

Gereksinimler & Başlıklar
HeaderDeğerAçıklama
Accept application/json JSON yanıt formatı isteği
curl -X GET "https://smsonaylatr.com/api/v2/status" \
  -H "Accept: application/json"
● 200 OK
{
  "status": "API is running"
}
POST /auth/createToken
Açık (Oturum Açma)

Kullanıcı e-posta adresi ve şifresi ile oturum açarak tüm korumalı işlemlerde kullanacağınız Sanctum Bearer Token üretir.

Body Parametreleri (application/json)
ParametreTipDurumAçıklama
email string Zorunlu Sisteme kayıtlı kullanıcı e-posta adresi
password string Zorunlu Kullanıcı şifresi (Min 6 karakter)
curl -X POST "https://smsonaylatr.com/api/v2/auth/createToken" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "your_password"
  }'
{
  "token": "1|abcdefghijklmnopqrstuvwxyz1234567890..."
}
GET /service/categories
Bearer Token

Sistemdeki tüm aktif kategorileri (Türkiye v1, Almanya, İngiltere vb.) ve ülke telefon kodlarını listeler. Servisleri sorgulamak için kategori id değerini alırsınız.

Dönen Alanlar (Response Fields)
AlanTipAçıklama
idintegerKategori ID (Servis sorgularında kullanılır)
titlestringKategori / Ülke adı (Türkçe)
title_enstringKategori / Ülke adı (İngilizce)
codestringÜlke telefon arama kodu (Örn: 90, 49)
curl -X GET "https://smsonaylatr.com/api/v2/service/categories" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
● 200 OK (Kategoriler)
{
  "status": true,
  "data": [
    {
      "id": 1,
      "title": "Türkiye v1",
      "title_en": "Turkey v1",
      "code": "90"
    },
    {
      "id": 2,
      "title": "Almanya",
      "title_en": "Germany",
      "code": "49"
    }
  ]
}
GET /service/info
Bearer Token

Seçilen kategoriye ait aktif servisleri (WhatsApp, Telegram, Google vb.) ve kullanıcınıza tanımlı özel indirimli fiyatları döner.

Query Parametreleri
ParametreTipDurumAçıklama
id integer Zorunlu Kategori ID (Örn: 1)
curl -X GET "https://smsonaylatr.com/api/v2/service/info?id=1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
● 200 OK
{
  "status": true,
  "data": {
    "service": [
      {
        "id": 15,
        "amount": 149.99,
        "category_id": 1,
        "country": "000",
        "title": "Telegram"
      }
    ],
    "category": {
      "id": 1,
      "title": "Türkiye v1",
      "code": "90"
    }
  }
}
GET /service/stock
Bearer Token

Servisin anlık stok adedini ve çoklu SMS geçerlilik süresini (dakika, saat, gün) sorgular.

Query Parametreleri
ParametreTipDurumAçıklama
id integer Zorunlu Servis ID (Örn: 15)
curl -X GET "https://smsonaylatr.com/api/v2/service/stock?id=15" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
● 200 OK
{
  "status": true,
  "data": {
    "stock": 150,
    "multi_duration": "30 Minutes"
  }
}
POST /number/buyNumber
Bearer Token

Seçtiğiniz servisten hemen yeni bir sanal telefon numarası satın alır. Bakiye hesabınızdan tahsil edilir ve satın alınan numara benzersiz numberID ile döner.

Body Parametreleri (application/json)
ParametreTipDurumAçıklama
id integer Zorunlu Satın alınacak Servis ID (Örn: 15)
curl -X POST "https://smsonaylatr.com/api/v2/number/buyNumber" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": 15}'
● 200 Numara Tahsis Edildi
{
  "status": true,
  "message": "Number purchased successfully! Purchased number: +905015773268",
  "numberID": 57155,
  "number": "+905015773268"
}
GET /number/getNumbers
Bearer Token

Satın aldığınız tüm numaraları, bekleme durumlarını (WAIT, OK, CANCEL), kalan süre sayacını ve gelen tüm SMS'leri listeler.

curl -X GET "https://smsonaylatr.com/api/v2/number/getNumbers" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
● 200 OK
{
  "status": true,
  "data": [
    {
      "id": 57103,
      "number": "+905051423414",
      "status": "WAIT",
      "time": "00:12",
      "timer": 1,
      "serviceTitle": "Telegram",
      "categoryTitle": "Türkiye v1"
    }
  ]
}
GET /number/smsList
Bearer Token

Satın alınan belirli bir numaraya gelen tüm SMS doğrulama kodlarını ve zaman damgalarını liste halinde çeker.

Query Parametreleri
ParametreTipDurumAçıklama
id integer Zorunlu Sipariş / Numara ID (Örn: 57103)
curl -X GET "https://smsonaylatr.com/api/v2/number/smsList?id=57103" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
● 200 SMS Alındı
{
  "status": true,
  "data": [
    {
      "sms_text": "Hesabiniza giris yapmak icin kodunuz: 404355 B043",
      "date": "2026-10-06T03:31:41.044291Z"
    }
  ]
}
POST /number/cancelNumber
Bearer Token

SMS gelmeyen ve beklemede olan (WAIT) siparişi iptal ederek tutarı anında kullanıcı bakiyesine geri yükler.

İptal Penceresi: Siparişin verildiği andan itibaren 2. ile 20. dakikalar arasında iptal gerçekleştirilebilir.
Body Parametreleri
ParametreTipDurumAçıklama
id integer Zorunlu İptal edilecek sipariş ID (Örn: 57103)
curl -X POST "https://smsonaylatr.com/api/v2/number/cancelNumber" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": 57103}'
● 200 Sipariş İptal Edildi
{
  "status": true,
  "message": "Order has been successfully canceled."
}
POST /number/extendNumberTime
Bearer Token

"Türkiye v1" veya "Bet Siteleri" gibi uygun servislerde, ilk SMS'i başarıyla alınmış (OK durumundaki) numaraların bekleme süresini uzatır.

Body Parametreleri
ParametreTipDurumAçıklama
idintegerZorunluNumara ID
curl -X POST "https://smsonaylatr.com/api/v2/number/extendNumberTime" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": 57103}'
Uçtan Uca Tam Entegrasyon Örneği (End-to-End)
Numara satın alıp SMS gelene kadar bekleyen, SMS gelmezse otomatik iptal eden tam akış kodu.
import time, requests

API_TOKEN = "YOUR_BEARER_TOKEN"
BASE_URL = "https://smsonaylatr.com/api/v2"
HEADERS = {"Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json"}

# 1. Numara Satın Al (Telegram: 15)
buy = requests.post(f"{BASE_URL}/number/buyNumber", headers=HEADERS, json={"id": 15}).json()
if not buy.get("status"):
    exit(f"Hata: {buy.get('message')}")

num_id, phone = buy["numberID"], buy["number"]
print(f"Numara Alındı: {phone} (ID: {num_id})")

# 2. SMS Gelene Kadar 5 Saniyede Bir Kontrol Et
for _ in range(25):
    time.sleep(5)
    sms_res = requests.get(f"{BASE_URL}/number/smsList", headers=HEADERS, params={"id": num_id}).json()
    if sms_res.get("data"):
        print("🎉 SMS Kodu:", sms_res["data"][0]["sms_text"])
        exit()

# 3. Kod Gelmediyse İptal Et & Bakiye İadesi Al
cancel = requests.post(f"{BASE_URL}/number/cancelNumber", headers=HEADERS, json={"id": num_id}).json()
print("İptal:", cancel.get("message"))
HTTP Durum Kodları Referansı
KodDurumAnlamı
200OKİstek başarıyla işlendi ve beklenen yanıt döndü.
400Bad RequestGeçersiz istek parametreleri veya süresi geçmiş iptal isteği.
401UnauthorizedGeçersiz veya eksik Bearer token.
403ForbiddenSize ait olmayan siparişi okuma veya iptal etme yetkisizliği.
404Not FoundBelirtilen servis, kategori veya sipariş bulunamadı.
422UnprocessableParametre doğrulama hatası (Örn: geçersiz e-posta formatı).
429Too Many RequestsDakikada 300 istek hız sınırı aşıldı.
503MaintenanceServis bakımda, kısa süre sonra tekrar deneyiniz.
ESC