Chuyển đến nội dung chính
100+
Quốc gia
1000+ dịch vụ. Thanh toán bằng crypto, không cần KYC.
Mua Số

API Xác minh SMS — SimNoKYC

Tự động hóa xác minh OTP ở quy mô lớn. Mua số điện thoại ảo tại 190+ quốc gia, nhận mã SMS trong vài giây, thuê số dài hạn, và quản lý mọi đơn hàng qua một REST endpoint duy nhất — không API key, không KYC, thanh toán bằng tiền mã hóa.

Thời gian đọc: 5 phút REST · JSON · OpenAPI 3.0 Đặc tả OpenAPI →

Yêu cầu xác thực. Tất cả các yêu cầu API đều sử dụng xác thực phiên dựa trên cookie. Bạn phải đăng nhập vào tài khoản SimNoKYC để sử dụng API. Đăng nhập qua giao diện web hoặc sử dụng endpoint xác thực để thiết lập phiên.

Tại sao các lập trình viên chọn API SimNoKYC

SimNoKYC là API xác minh SMS linh hoạt nhất dành cho các lập trình viên cần ẩn danh, phủ sóng toàn cầu và giá cả minh bạch. Khác với các nhà cung cấp SMS-OTP truyền thống đòi hỏi hợp đồng doanh nghiệp, mức tối thiểu hàng tháng và bảng câu hỏi KYC, SimNoKYC hoạt động với bất kỳ HTTPS client nào, tính phí theo từng số, và chấp nhận 20+ loại tiền mã hóa bao gồm Bitcoin, Monero, Ethereum, USDT, USDC, Solana, Litecoin, XRP, TRON và Toncoin.

Các trường hợp sử dụng điển hình bao gồm tự động hóa đăng ký tài khoản cho QA quy mô lớn, lấy mật khẩu một lần cho các headless agent và CI bot, xác thực luồng yêu cầu số điện thoại trong continuous integration, thuê số dài hạn cho tài khoản Telegram hoặc WhatsApp cần nhận SMS liên tục, và xác minh phân tán địa lý tại 190+ quốc gia với kiểm soát cấp nhà mạng — ảo, vật lý hoặc premium.

Xác Thực

API sử dụng xác thực phiên dựa trên cookie. Để xác thực theo cách lập trình:

  1. Gửi yêu cầu POST đến /auth-api.php kèm theo seed phrase của bạn
  2. Lưu cookie phiên từ phản hồi
  3. Đính kèm cookie trong tất cả các yêu cầu API tiếp theo
POST /auth-api.php

Xác thực bằng cụm từ seed của bạn và thiết lập phiên.

Tham sốLoạiBắt buộcMô tả
actionstringbắt buộcPhải là "login"
seedstringbắt buộcSeed truy cập 16 ký tự của bạn (ví dụ: 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: {...}}
Phản Hồi Thành Công
{ "success": true, "user": { "id": 42, "prefix": "AbC3", "balance": "74.50" } }
Phản hồi lỗi
{ "success": false, "error": "Invalid seed." }

URL Cơ Sở

Tất cả các endpoint API đều tương đối với:

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

Tất cả phản hồi đều ở định dạng JSON. Các endpoint POST chấp nhận cả hai kiểu nội dung yêu cầu application/jsonapplication/x-www-form-urlencoded.

Giới hạn tần suất

API áp dụng các giới hạn tần suất sau:

EndpointGiới hạnCửa sổ
Xác Thực5 lần thử15 phút
Tất cả các endpoint khácKhông giới hạn cứng

Giới hạn tốc độ: Xác thực bị giới hạn ở 5 lần thử mỗi 15 phút. Các endpoint khác hiện chưa bị giới hạn, nhưng việc sử dụng quá mức có thể bị hạn chế. Hãy sử dụng khoảng thời gian yêu cầu hợp lý.

Xử lý lỗi

Tất cả lỗi trả về một đối tượng JSON với trường <code>error</code>:

{ "error": "Description of what went wrong" }
Mã HTTPÝ nghĩa
200Thành công (kiểm tra nội dung phản hồi để phát hiện lỗi cấp ứng dụng)
403Token CSRF không hợp lệ
405Phương thức HTTP sai (ví dụ: GET trên endpoint chỉ nhận POST)
429Đã vượt giới hạn tần suất

Các lỗi phổ biến ở cấp ứng dụng:

LỗiNguyên Nhân
"Login required"Phiên đã hết hạn hoặc chưa xác thực
"Insufficient balance"Số dư không đủ — bao gồm các trường needhave
"Service not available for this country"Không có hàng hoặc dịch vụ không hoạt động cho quốc gia đã chọn
"Missing country or service"Chưa cung cấp các tham số bắt buộc

Danh sách quốc gia

GET /api.php?action=countries

Trả về tất cả quốc gia đang hoạt động có số ảo khả dụng. Không yêu cầu xác thực.

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();
Phản hồi
[ { "id": 1, "code": "us", "name": "USA" }, { "id": 2, "code": "gb", "name": "UK" }, { "id": 3, "code": "de", "name": "Germany" } ]

Danh sách dịch vụ

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

Trả về các dịch vụ khả dụng cho một quốc gia cụ thể, bao gồm giá và số lượng tồn kho. Nếu không có mã quốc gia, trả về tất cả dịch vụ mà không có thông tin giá.

Tham sốLoạiBắt buộcMô tả
countrystringtùy chọnMã quốc gia ISO 3166-1 alpha-2 (ví dụ: us, gb, de)
Phản hồi (kèm quốc gia)
[ { "id": 12, "name": "WhatsApp", "slug": "whatsapp", "icon_code": "WA", "icon_color": "#25d366", "category": "social", "price": "0.35", "stock": 847 } ]

Danh sách nhà mạng

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

Trả về các nhà mạng khả dụng cho một quốc gia cụ thể. Mỗi nhà mạng có một loại và hệ số nhân giá áp dụng vào giá dịch vụ cơ bản.

Tham sốLoạiBắt buộcMô tả
countrystringbắt buộcMã quốc gia ISO 3166-1 alpha-2
Phản hồi
[ { "id": 5, "name": "T-Mobile", "type": "physical", "price_multiplier": "1.50", "icon_slug": "tmobile", "icon_domain": "t-mobile.com" } ]

Loại nhà mạng: virtual — Số VoIP, rẻ nhất, có thể bị một số dịch vụ chặn. physical — SIM thực, tỷ lệ thành công cao hơn. premium — giao tin nhắn nhanh nhất (~10 giây), tỷ lệ thành công cao nhất.

Mua Số (Kích Hoạt SMS)

POST /api.php?action=buy

Mua một số ảo để xác minh SMS một lần. Số có hiệu lực trong 20 phút. Nếu không nhận được SMS, số dư của bạn sẽ được tự động hoàn trả.

Tham sốLoạiBắt buộcMô tả
countrystringbắt buộcMã quốc gia (ví dụ: us)
service_idintegerbắt buộcID dịch vụ từ Danh Sách Dịch Vụ
operator_idintegertùy chọnID nhà mạng từ Danh sách nhà mạng. Bỏ trống để dùng nhà mạng mặc định.
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();
Phản Hồi Thành Công
{ "success": true, "order_id": 1847, "price": 0.53, "balance": "73.97" }
Lỗi: Số dư không đủ
{ "error": "Insufficient balance", "need": 0.53, "have": "0.10" }

Danh sách đơn hàng

GET /api.php?action=orders

Trả về 50 đơn hàng gần nhất của bạn, bao gồm số điện thoại và mã SMS. Gọi định kỳ endpoint này để kiểm tra mã SMS đến trên các đơn hàng đang hoạt động.

Phản hồi
[ { "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" } ]

Trạng thái đơn hàng: active — đang chờ SMS. completed — đã nhận SMS. cancelled — người dùng đã hủy. refunded — đã hoàn tiền tự động (không nhận được SMS trước khi hết thời gian). expired — đã hết thời gian.

Xem giá thuê

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

Xem giá thuê số cố định từ một nhà mạng cụ thể trong khoảng thời gian nhất định.

Tham sốLoạiBắt buộcMô tả
countrystringbắt buộcMã quốc gia
operator_idintegerbắt buộcID nhà mạng
durationintegerbắt buộcThời hạn thuê tính bằng ngày: 7, 14, 30 hoặc 90
Phản hồi
{ "price": "12.50", "duration": 30, "operator": "T-Mobile", "type": "physical", "country": "USA" }

Thuê số

POST /api.php?action=rental_buy

Thuê một hoặc nhiều số điện thoại riêng. Số hoàn toàn thuộc về bạn trong toàn bộ thời gian thuê và nhận SMS đến không giới hạn.

Tham sốLoạiBắt buộcMô tả
countrystringbắt buộcMã quốc gia
operator_idintegerbắt buộcID nhà mạng
durationintegerbắt buộc7, 14, 30 hoặc 90 ngày
qtyintegertùy chọnSố lượng số cần thuê (1–10, mặc định: 1)
Phản Hồi Thành Công
{ "success": true, "order_ids": [1848, 1849], "total": 25.00, "qty": 2, "unit_price": 12.50, "duration": 30, "balance": "49.50" }

Lấy thông tin người dùng

GET /api.php?action=user

Trả về thông tin tài khoản và số dư của người dùng hiện tại. Dùng để kiểm tra trạng thái xác thực và số dư khả dụng.

Đã Xác Thực
{ "logged_in": true, "id": 42, "prefix": "AbC3", "balance": "74.50" }
Chưa xác thực
{ "logged_in": false }

Ví dụ quy trình hoàn chỉnh

Dưới đây là ví dụ Python đầy đủ thực hiện xác thực, tìm dịch vụ, mua số và chờ nhận mã SMS:

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")

Câu hỏi thường gặp

Tôi có thể làm gì với API xác minh SMS SimNoKYC?

API SimNoKYC cung cấp cho lập trình viên quyền truy cập lập trình vào số điện thoại ảo tại 190+ quốc gia cho xác minh SMS một lần (mã OTP) và thuê số dài hạn (7, 14, 30 hoặc 90 ngày). Bạn có thể liệt kê dịch vụ, truy vấn giá thực tế, cấp phát số, lấy mã SMS đến, và hoàn tiền cho các kích hoạt thất bại — tất cả qua giao diện JSON REST, không KYC và chỉ thanh toán bằng crypto.

Tôi có cần API key hoặc token OAuth để dùng API không?

Không. API SimNoKYC sử dụng xác thực phiên dựa trên cookie: gửi một POST request duy nhất đến /auth-api.php với seed truy cập 16 ký tự của bạn, sau đó tái sử dụng session cookie được trả về cho mọi lệnh gọi tiếp theo. Không có API key nào cần cấp phát, xoay vòng hay thu hồi — bạn xác thực một lần mỗi phiên và duy trì trạng thái đó suốt vòng đời của cookie.

Chi phí sử dụng API SimNoKYC là bao nhiêu?

Bản thân API hoàn toàn miễn phí — không có phí hàng tháng, không đăng ký, và không có lượng yêu cầu tối thiểu. Bạn chỉ trả tiền theo từng số: kích hoạt SMS một lần bắt đầu từ $0.05 và thuê dài hạn bắt đầu từ $4.79 cho 7 ngày. Mọi hành động đều được trừ vào số dư trả trước, và bất kỳ kích hoạt nào không nhận được SMS đều được hoàn tiền tự động.

Những ngôn ngữ lập trình và framework nào được hỗ trợ?

Bất kỳ ngôn ngữ hoặc nền tảng nào có thể gửi HTTPS request đều có thể gọi API — Python (requests, httpx), Node.js (fetch, axios), Go, PHP, Ruby, Java, C#, Bash với cURL, và nhiều hơn nữa. Tài liệu đi kèm các ví dụ chạy được ngay trong cURL, Python và JavaScript, cùng đặc tả OpenAPI 3.0 đầy đủ được xuất bản tại /openapi.json để bạn có thể tự sinh client có kiểu dữ liệu trong ngôn ngữ của mình.

Điều gì xảy ra nếu mã xác minh SMS của tôi không bao giờ đến?

Mỗi kích hoạt có cửa sổ giao nhận 20 phút. Nếu không có SMS nào đến trước khi cửa sổ đó hết hạn, đơn hàng sẽ tự động bị hủy và toàn bộ số tiền được hoàn vào số dư tài khoản của bạn — không cần mở ticket hỗ trợ, không cần thử lại thủ công. Bạn có thể ngay lập tức dùng số dư được hoàn để cấp phát số khác, tùy chọn ở cấp nhà mạng khác (ảo, vật lý hoặc premium) để tăng tỷ lệ giao nhận thành công.

API SimNoKYC có giới hạn tốc độ (rate limit) không?

Xác thực bị giới hạn 5 lần thử mỗi 15 phút mỗi IP, nhằm bảo vệ chống brute-force dò seed. Tất cả các endpoint khác — catalog, buy, orders, rentals — hiện không có rate limit cứng, nhưng chúng tôi yêu cầu bạn giữ khoảng cách giữa các request ở mức hợp lý: polling /api.php?action=orders mỗi 3–5 giây là đủ để lấy SMS, và các đợt burst liên tục vượt ~10 req/s có thể bị throttle ở tầng WAF.