Uç noktalar
| POST /provider/v1/heartbeat | SIM'lerin çevrimiçi olduğunu bildirir. |
| GET /provider/v1/orders | Size atanmış açık numaralar ve son 10 dakikada kapananlar. |
| POST /provider/v1/sms | SIM'e gelen SMS'i iletir. |
| GET /provider/v1/rentals | Şu an kirada olan SIM'leriniz. |
| GET /provider/v1/sims | Bağlı SIM'leriniz, çevrimiçi durumu ve teslim ettikleri kod sayısı. |
| POST /provider/v1/sims | SIM ekler (tek seferde 500'e kadar). |
| PATCH /provider/v1/sims/:id | SIM'i satışa açar/kapatır ya da servis listesini değiştirir. |
| PUT /provider/v1/prices | Numara başına fiyatınız (USD, 0.02 ile 10 arası). |
| PUT /provider/v1/rent-prices | Kiralama için günlük fiyatınız (USD, 0.10 ile 50 arası). |
| GET /provider/v1 | Özet: durum, puan, seviye, komisyon, bakiyeler ve SIM sayıları. |
| GET /provider/v1/stats?days=30 | Günlük kazanç ve kod sayısı, servis ve ülke kırılımı, SIM başına başarı oranı ve çevrimiçi süresi (1-90 gün). |
| GET /provider/v1/ledger | Kazanç, serbest kalma, ceza ve ödeme hareketleri. |
| POST /provider/v1/payouts | Kullanılabilir bakiyeden USDT ödeme ister (en az 10 $). |
POST /provider/v1/heartbeat
SIM'lerin çevrimiçi olduğunu bildirir. En az 30 saniyede bir gönderin; 90 saniye sessiz kalan SIM satıştan çıkar. phones verilmezse bütün SIM'ler çevrimiçi sayılır.
İstek
{ "phones": ["447700900001", "447700900002"] }Yanıt
{ "online": 2 }GET /provider/v1/orders
Size atanmış açık numaralar ve son 10 dakikada kapananlar. Yeni sipariş için bunu 2-5 saniyede bir sorgulayın; status waiting olanlar için SMS bekleniyor.
Yanıt
[
{
"id": 9182,
"phone": "447700900001",
"service": "wa",
"status": "waiting",
"code": null,
"createdAt": "2026-11-10T09:00:00.000Z",
"expiresAt": "2026-11-10T09:20:00.000Z"
}
]POST /provider/v1/sms
SIM'e gelen SMS'i iletir. orderId, rentalId ya da phone'dan biri yeterli. Kodu sistem metinden kendisi çıkarır ve alıcıya anında gösterir.
İstek
{ "orderId": 9182, "sender": "WhatsApp", "text": "Your WhatsApp code 123-456" }Yanıt
{ "accepted": true, "code": "123456" }GET /provider/v1/rentals
Şu an kirada olan SIM'leriniz. Bu numaralara gelen her SMS'i /sms ile iletin.
Yanıt
[{ "id": 311, "phone": "447700900002", "service": "full", "status": "active", "price": "3.0000", "earning": "2.5500", "sms": 4, "endsAt": "2026-11-11T09:00:00.000Z" }]GET /provider/v1/sims
Bağlı SIM'leriniz, çevrimiçi durumu ve teslim ettikleri kod sayısı.
Yanıt
[{ "id": 7, "phone": "447700900001", "country": "16", "operator": "EE", "services": [], "enabled": true, "online": true, "busy": false, "delivered": 128 }]POST /provider/v1/sims
SIM ekler (tek seferde 500'e kadar). country, SMS-Activate ülke kodudur (16 = Birleşik Krallık, 62 = Türkiye). services boşsa SIM her servis için satılır.
İstek
{ "sims": [{ "phone": "447700900001", "country": "16", "operator": "EE", "services": ["wa", "tg"] }] }Yanıt
{ "ids": [7] }PATCH /provider/v1/sims/:id
SIM'i satışa açar/kapatır ya da servis listesini değiştirir.
İstek
{ "enabled": false }Yanıt
{ "ok": true }PUT /provider/v1/prices
Numara başına fiyatınız (USD, 0.02 ile 10 arası). service "*" o ülkenin varsayılanıdır; price: null satırı siler.
İstek
{ "prices": [{ "service": "*", "country": "16", "price": 0.12 }, { "service": "wa", "country": "16", "price": 0.18 }] }Yanıt
{ "ok": true }PUT /provider/v1/rent-prices
Kiralama için günlük fiyatınız (USD, 0.10 ile 50 arası).
İstek
{ "prices": [{ "country": "16", "dayPrice": 1.5 }] }Yanıt
{ "ok": true }GET /provider/v1
Özet: durum, puan, seviye, komisyon, bakiyeler ve SIM sayıları.
Yanıt
{
"status": "active",
"score": 88.5,
"tier": "A",
"commission": 0.15,
"balances": { "pending": "12.4800", "available": "41.2000", "deposit": "50.0000", "depositRequired": "62.0000" },
"sims": { "total": 12, "online": 11, "busy": 3 },
"hasKey": true
}GET /provider/v1/stats?days=30
Günlük kazanç ve kod sayısı, servis ve ülke kırılımı, SIM başına başarı oranı ve çevrimiçi süresi (1-90 gün).
Yanıt
{
"days": [{ "day": "2026-11-10", "orders": 42, "delivered": 37, "earned": "4.4400", "rentals": 1 }],
"services": [{ "service": "wa", "orders": 30, "delivered": 28, "earned": "3.3600", "successRate": 93.3 }],
"countries": [{ "country": "16", "orders": 42, "delivered": 37, "earned": "4.4400", "successRate": 88.1 }],
"sims": [{ "id": 7, "phone": "447700900001", "orders": 9, "delivered": 9, "earned": "1.0800", "successRate": 100, "uptime": 99.2 }]
}GET /provider/v1/ledger
Kazanç, serbest kalma, ceza ve ödeme hareketleri.
Yanıt
[{ "id": 55, "kind": "earning", "amount": "0.1020", "bucket": "pending", "createdAt": "…" }]POST /provider/v1/payouts
Kullanılabilir bakiyeden USDT ödeme ister (en az 10 $).
İstek
{ "amount": 40, "address": "TQ…" }Yanıt
{ "id": 18 }Örnek kod
Heartbeat, sipariş takibi ve SMS iletme için hazır örnekler. pk_... yerine kendi anahtarınızı yazın.
cURL
# Heartbeat
curl -X POST https://smsrota.com/provider/v1/heartbeat \
-H "Authorization: Bearer pk_..." -H "Content-Type: application/json" -d '{}'
# Open orders
curl https://smsrota.com/provider/v1/orders -H "Authorization: Bearer pk_..."
# Forward an SMS
curl -X POST https://smsrota.com/provider/v1/sms \
-H "Authorization: Bearer pk_..." -H "Content-Type: application/json" \
-d '{"phone":"447700900001","sender":"WhatsApp","text":"Your WhatsApp code 123-456"}'Python
import threading, time, requests
API = "https://smsrota.com/provider/v1"
H = {"Authorization": "Bearer pk_..."}
def heartbeat():
while True:
requests.post(f"{API}/heartbeat", json={}, headers=H, timeout=10)
time.sleep(25)
threading.Thread(target=heartbeat, daemon=True).start()
def on_sms(phone, sender, text):
# Call this from your modem / SIM bank software for every incoming SMS.
r = requests.post(f"{API}/sms", json={"phone": phone, "sender": sender, "text": text}, headers=H, timeout=10)
print(r.json())
while True:
for o in requests.get(f"{API}/orders", headers=H, timeout=10).json():
if o["status"] == "waiting":
print("waiting for SMS on", o["phone"], "for", o["service"])
time.sleep(3)Node.js
const API = "https://smsrota.com/provider/v1";
const headers = { Authorization: "Bearer pk_...", "Content-Type": "application/json" };
setInterval(() => fetch(`${API}/heartbeat`, { method: "POST", headers, body: "{}" }), 25_000);
export async function onSms(phone, sender, text) {
const res = await fetch(`${API}/sms`, { method: "POST", headers, body: JSON.stringify({ phone, sender, text }) });
return res.json(); // { accepted: true, code: "123456" }
}