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

API Dokümantasyonu

SimNoKYC API ile SMS doğrulama iş akışlarını otomatikleştirin. Sanal telefon numaraları satın alın, SMS kodları alın, özel numaralar kiralayın ve siparişleri yönetin — hepsi programatik olarak.

Kimlik doğrulama gerekli. Tüm API istekleri çerez tabanlı oturum kimlik doğrulaması kullanır. API'yi kullanmak için SimNoKYC hesabınıza giriş yapmış olmanız gerekir. Web arayüzü üzerinden giriş yapın veya oturum oluşturmak için kimlik doğrulama uç noktasını kullanın.

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://simnokyc.com/auth-api.php \ -d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \ -c cookies.txt
import requests session = requests.Session() resp = session.post("https://simnokyc.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://simnokyc.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://simnokyc.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://simnokyc.com/api.php?action=countries
resp = session.get("https://simnokyc.com/api.php", params={"action": "countries"}) countries = resp.json() for c in countries: print(c["code"], c["name"])
const resp = await fetch("https://simnokyc.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://simnokyc.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://simnokyc.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://simnokyc.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://simnokyc.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")