Ana içeriğe geç
100+
Ülkeler
1000+ hizmet. Kripto ile öde, KYC yok.
Numara Satın Al

SMS Doğrulama API — SMSNoKYC

OTP doğrulamasını baştan sona otomatikleştirin. 190'dan fazla ülkede sanal numara ayırın, SMS kodlarını saniyeler içinde okuyun, uzun süreli özel hatlar kiralayın ve her siparişi tek bir REST yüzeyinden yönetin — API anahtarı yok, KYC yok, kripto parayla ödenir.

Okuma süresi: 5 dk REST · JSON · OpenAPI 3.0 OpenAPI özelliği →

Kimlik doğrulama gerekli. Her istek bir oturum çerezine dayanır, bu yüzden SMSNoKYC hesabınızda oturum açmış olmalısınız. Çağırmadan önce web arayüzü ya da kimlik doğrulama uç noktası üzerinden bir oturum kurun.

Geliştiriciler SMSNoKYC API'sini neden tercih ediyor?

SMSNoKYC, anonimlik, küresel kapsam ve öngörülebilir fiyatlandırma isteyen geliştiriciler için en esnek SMS doğrulama API'sidir. Erişimi kurumsal sözleşmeler, aylık minimumlar ve KYC anketleri arkasına kilitleyen eski SMS-OTP sağlayıcılarının aksine, SMSNoKYC her HTTPS istemcisiyle çalışır, yalnızca numara başına ücret alır ve Bitcoin, Monero, Ethereum, USDT, USDC, Solana, Litecoin, XRP, TRON ve Toncoin dahil 20'den fazla kripto parayı kabul eder.

Tipik kullanım senaryoları şunlardır: ölçekli QA için hesap kayıtlarını otomatikleştirme, gizli ajanlar ve CI botları için tek kullanımlık şifreler alma, sürekli entegrasyonda telefon gerektiren akışları doğrulama, kesintisiz SMS alımı gerektiren Telegram veya WhatsApp hesapları için uzun vadeli özel numaralar kiralama ve 190'dan fazla ülkede açık operatör katmanı kontrolüyle (sanal, fiziksel veya premium) coğrafi dağıtımlı doğrulama sağlama.

Kimlik Doğrulama

API, çerez tabanlı oturum kimlik doğrulaması kullanır. Programatik olarak kimlik doğrulamak için:

  1. /auth-api.php adresine seed ifadenizle bir POST isteği gönderin
  2. Yanıttan gelen oturum çerezini saklayın
  3. Çerezi sonraki tüm API isteklerine dahil edin
POST /auth-api.php

Seed ifadenizle kimlik doğrulaması yapın ve bir oturum başlatın.

ParametreTürZorunluAçıklama
actionstringzorunlu"login" olmalıdır
seedstringzorunlu16 karakterlik erişim seed'iniz (örn. AbC3-dEf4-gHj5-kLm6)
cURL
Python
JavaScript
# Login and save session cookie curl -X POST https://smsnokyc.com/auth-api.php \ -d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \ -c cookies.txt
import requests session = requests.Session() resp = session.post("https://smsnokyc.com/auth-api.php", data={ "action": "login", "seed": "AbC3-dEf4-gHj5-kLm6" }) data = resp.json() print(data) # {"success": true, "user": {...}} # session object now holds the cookie for all future requests
const resp = await fetch("https://smsnokyc.com/auth-api.php", { method: "POST", credentials: "include", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: "action=login&seed=AbC3-dEf4-gHj5-kLm6" }); const data = await resp.json(); console.log(data); // {success: true, user: {...}}
Başarılı yanıt
{ "success": true, "user": { "id": 42, "prefix": "AbC3", "balance": "74.50" } }
Hata yanıtı
{ "success": false, "error": "Invalid seed." }

Temel URL

Tüm API uç noktaları şuna görelidir:

https://smsnokyc.com/api.php?action={action}

Tüm yanıtlar JSON formatındadır. POST uç noktaları hem application/json hem de application/x-www-form-urlencoded istek gövdelerini kabul eder.

İstek limitleri

API aşağıdaki hız sınırlarını uygular:

Uç NoktaLimitPencere
Kimlik Doğrulama5 deneme15 dakika
Diğer tüm endpoint'lerKesin limit yok

Hız sınırlaması: Kimlik doğrulama 15 dakikada 5 denemeyle sınırlıdır. Diğer endpoint'ler şu anda sınırlı değildir, ancak aşırı kullanım kısıtlanabilir. Makul istek aralıkları kullanın.

Hata yönetimi

Tüm hatalar bir <code>error</code> alanı içeren JSON nesnesi döndürür:

{ "error": "Description of what went wrong" }
HTTP KoduAnlam
200Başarılı (uygulama düzeyindeki hatalar için yanıt gövdesini kontrol edin)
403Geçersiz CSRF token
405Yanlış HTTP metodu (örn. yalnızca POST endpoint'inde GET)
429Hız limiti aşıldı

Yaygın uygulama düzeyinde hatalar:

HataNeden
"Login required"Oturum süresi doldu veya kimliği doğrulanmadı
"Insufficient balance"Yetersiz bakiye — need ve have alanlarını içerir
"Service not available for this country"Seçilen ülke için stok yok veya hizmet aktif değil
"Missing country or service"Gerekli parametreler sağlanmadı

Ülkeleri Listele

GET /api.php?action=countries

Mevcut sanal numaralara sahip tüm aktif ülkeleri döndürür. Kimlik doğrulama gerekli değildir.

cURL
Python
JavaScript
curl https://smsnokyc.com/api.php?action=countries
resp = session.get("https://smsnokyc.com/api.php", params={"action": "countries"}) countries = resp.json() for c in countries: print(c["code"], c["name"])
const resp = await fetch("https://smsnokyc.com/api.php?action=countries"); const countries = await resp.json();
Yanıt
[ { "id": 1, "code": "us", "name": "USA" }, { "id": 2, "code": "gb", "name": "UK" }, { "id": 3, "code": "de", "name": "Germany" } ]

Hizmetleri Listele

GET /api.php?action=services&country={code}

Belirli bir ülke için fiyatlar ve stok dahil mevcut hizmetleri döndürür. Ülke kodu olmadan tüm hizmetleri fiyatsız döndürür.

ParametreTürZorunluAçıklama
countrystringisteğe bağlıISO 3166-1 alpha-2 ülke kodu (örn. us, gb, de)
Yanıt (ülke ile)
[ { "id": 12, "name": "WhatsApp", "slug": "whatsapp", "icon_code": "WA", "icon_color": "#25d366", "category": "social", "price": "0.35", "stock": 847 } ]

Operatörleri Listele

GET /api.php?action=operators&country={code}

Belirli bir ülke için mevcut operatörleri (taşıyıcıları) döndürür. Her operatörün bir türü ve temel hizmet fiyatına uygulanan bir fiyat çarpanı vardır.

ParametreTürZorunluAçıklama
countrystringzorunluISO 3166-1 alpha-2 ülke kodu
Yanıt
[ { "id": 5, "name": "T-Mobile", "type": "physical", "price_multiplier": "1.50", "icon_slug": "tmobile", "icon_domain": "t-mobile.com" } ]

Operatör türleri: virtual — VoIP numaraları, en ucuz, bazı hizmetler tarafından engellenebilir. physical — gerçek SIM kartlar, daha yüksek başarı oranı. premium — en hızlı teslimat (~10sn), en yüksek başarı oranı.

Numara satın al (SMS Aktivasyonu)

POST /api.php?action=buy

Tek kullanımlık SMS doğrulaması için sanal bir numara satın alın. Numara 20 dakika boyunca aktiftir. SMS alınmazsa bakiyeniz otomatik olarak iade edilir.

ParametreTürZorunluAçıklama
countrystringzorunluÜlke kodu (örn. us)
service_idintegerzorunluHizmet Listesi'nden hizmet ID'si
operator_idintegeristeğe bağlıOperatör Listesi'nden operatör ID'si. Varsayılan operatör için boş bırakın.
cURL
Python
JavaScript
curl -X POST https://smsnokyc.com/api.php?action=buy \ -b cookies.txt \ -H "Content-Type: application/json" \ -d '{"country":"us","service_id":12,"operator_id":5}'
resp = session.post("https://smsnokyc.com/api.php?action=buy", json={ "country": "us", "service_id": 12, "operator_id": 5 }) order = resp.json() print(f"Order #{order['order_id']} — ${order['price']}")
const resp = await fetch("https://smsnokyc.com/api.php?action=buy", { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ country: "us", service_id: 12, operator_id: 5 }) }); const order = await resp.json();
Başarılı yanıt
{ "success": true, "order_id": 1847, "price": 0.53, "balance": "73.97" }
Hata: Yetersiz bakiye
{ "error": "Insufficient balance", "need": 0.53, "have": "0.10" }

Siparişleri listele

GET /api.php?action=orders

Telefon numaraları ve SMS kodları dahil en son 50 siparişinizi döndürür. Aktif siparişlerdeki gelen SMS kodlarını kontrol etmek için bu endpoint'i sorgulayın.

Yanıt
[ { "id": 1847, "price": "0.53", "status": "completed", "phone_number": "+12025551234", "sms_code": "847293", "created_at": "2026-04-09 14:32:00", "country_code": "us", "country_name": "USA", "service_name": "WhatsApp", "operator_name": "T-Mobile" } ]

Sipariş durumları: active — SMS bekleniyor. completed — SMS alındı. cancelled — kullanıcı tarafından iptal edildi. refunded — otomatik iade (zaman aşımından önce SMS alınmadı). expired — süresi doldu.

Kiralama fiyatını al

GET /api.php?action=rental_price&country={code}&operator_id={id}&duration={days}

Belirli bir operatörden belirli bir süre için özel numara kiralama fiyatını alın.

ParametreTürZorunluAçıklama
countrystringzorunluÜlke kodu
operator_idintegerzorunluOperatör ID
durationintegerzorunluGün cinsinden kiralama süresi: 7, 14, 30 veya 90
Yanıt
{ "price": "12.50", "duration": 30, "operator": "T-Mobile", "type": "physical", "country": "USA" }

Numara Kirala

POST /api.php?action=rental_buy

Bir veya daha fazla özel telefon numarası kiralayın. Numara tüm kiralama süresi boyunca yalnızca size aittir ve sınırsız gelen SMS alır.

ParametreTürZorunluAçıklama
countrystringzorunluÜlke kodu
operator_idintegerzorunluOperatör ID
durationintegerzorunlu7, 14, 30 veya 90 gün
qtyintegeristeğe bağlıKiralanacak numara sayısı (1–10, varsayılan: 1)
Başarılı yanıt
{ "success": true, "order_ids": [1848, 1849], "total": 25.00, "qty": 2, "unit_price": 12.50, "duration": 30, "balance": "49.50" }

Kullanıcı bilgilerini al

GET /api.php?action=user

Mevcut kullanıcının hesap bilgilerini ve bakiyesini döndürür. Kimlik doğrulama durumunu ve mevcut fonları kontrol etmek için kullanın.

Kimliği doğrulanmış
{ "logged_in": true, "id": 42, "prefix": "AbC3", "balance": "74.50" }
Kimliği doğrulanmamış
{ "logged_in": false }

Tam iş akışı örneği

İşte kimlik doğrulayan, hizmet bulan, numara satın alan ve SMS kodunu sorgulayan tam bir Python örneği:

Python
import requests, time BASE = "https://smsnokyc.com" SEED = "AbC3-dEf4-gHj5-kLm6" s = requests.Session() # 1. Authenticate s.post(f"{BASE}/auth-api.php", data={"action": "login", "seed": SEED}) # 2. Check balance user = s.get(f"{BASE}/api.php?action=user").json() print(f"Balance: ${user['balance']}") # 3. Get services for USA services = s.get(f"{BASE}/api.php?action=services&country=us").json() whatsapp = next(svc for svc in services if svc["name"] == "WhatsApp") print(f"WhatsApp: ${whatsapp['price']} ({whatsapp['stock']} in stock)") # 4. Buy a number order = s.post(f"{BASE}/api.php?action=buy", json={ "country": "us", "service_id": whatsapp["id"] }).json() print(f"Order #{order['order_id']} created") # 5. Poll for SMS code for _ in range(60): orders = s.get(f"{BASE}/api.php?action=orders").json() my_order = next(o for o in orders if o["id"] == order["order_id"]) if my_order["sms_code"]: print(f"SMS code: {my_order['sms_code']}") print(f"Phone: {my_order['phone_number']}") break print("Waiting for SMS...") time.sleep(5) else: print("Timeout — balance will be refunded automatically")

Sıkça Sorulan Sorular

SMSNoKYC doğrulama API'si ne işe yarar?

Sitenin sunduğu aynı kataloğu kendi kodunuza açar: tek seferlik OTP doğrulaması ve 7-90 günlük kiralamalar için 190'dan fazla ülkede sanal numaralar. Basit bir JSON REST arayüzüyle uygulamalara göz atabilir, canlı fiyatları okuyabilir, numara ayırabilir, gelen kodları alabilir ve başarısız etkinleştirmeleri iade edebilirsiniz — KYC yok, yalnızca kriptoyla faturalama.

Bir API anahtarı veya OAuth belirteci gerekir mi?

Hayır. Kimlik doğrulama bir oturum çerezidir: 16 karakterlik erişim ifadenizi bir kez /auth-api.php'ye POST ile gönderin, sonra dönen çerezi her sonraki çağrıda iletin. Sağlanacak, döndürülecek ya da iptal edilecek bir şey yok — oturum başına bir kez giriş yaparsınız ve çerez yaşadığı sürece öyle kalırsınız.

API ne kadar tutar?

API'yi çağırmak ücretsizdir — aylık ücret yok, abonelik yok, asgari hacim yok. Yalnızca numara başına ödersiniz: tek seferlik etkinleştirmeler 0,05 $'dan, özel kiralamalar 7 gün için birkaç dolardan başlar. Her şey ön ödemeli bakiyenizden düşülür ve hiç SMS almayan her etkinleştirme kendiliğinden iade edilir.

Hangi diller ve çerçeveler onu çağırabilir?

Bir HTTPS isteği gönderebilen her şey çalışır — Python (requests, httpx), Node.js (fetch, axios), Go, PHP, Ruby, Java, C#, Bash'ten cURL ve gerisi. Belgeler cURL, Python ve JavaScript'te kopyalamaya hazır örnekler içerir ve /openapi.json'daki eksiksiz bir OpenAPI 3.0 dosyası seçtiğiniz dilde tipli bir istemci üretmenizi sağlar.

Bir doğrulama kodu hiç gelmezse ne olur?

Her etkinleştirmenin 20 dakikalık bir penceresi vardır. Pencere kapanmadan hiçbir şey gelmezse sipariş kendiliğinden iptal olur ve tam fiyat bakiyeye geri döner — talep açmadan, elle yeniden denemeden. İade edilen bakiyeyi hemen başka bir numaraya, belki daha iyi bir başarı oranı için başka bir operatör kategorisinde (sanal, fiziksel veya premium) harcayabilirsiniz.

API'nin hız sınırları var mı?

Giriş, ifade tahminini engellemek için IP başına 15 dakikada 5 denemeyle sınırlıdır. Gerisi — katalog, satın alma, siparişler, kiralamalar — şimdilik katı bir tavan olmadan çalışır, ama makul aralıklar bırakın: /api.php?action=orders'ı her 3-5 saniyede bir sorgulamak SMS okumak için fazlasıyla yeter ve saniyede yaklaşık 10 istek üstündeki sürekli patlamalar WAF düzeyinde kısıtlanabilir.