Chuyển đến nội dung chính
116
Quốc gia
133 dịch vụ, 400 tuyến nhà mạng, hơn 15.400 mức giá thời gian thực. Chỉ crypto, không xác minh danh tính.
Thuê một số

SmsNoKYC Dành Cho Nhà Phát Triển: Xác Minh SMS Có Thể Lập Trình

Lập trình toàn bộ vòng lặp xác minh qua một giao diện JSON duy nhất. 116 quốc gia, 133 dịch vụ, 400 tuyến nhà mạng và hơn 15.400 mức giá trực tiếp nằm sau một vài endpoint: cấp một số điện thoại, bắt mã đến, giữ số thuê tối đa 90 ngày, thanh toán bằng tiền mã hóa. Không có API key ở đây — cụm từ seed là thông tin xác thực duy nhất bạn sẽ từng cung cấp.

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

Yêu cầu xác thực. Các phiên dựa trên cookie. Đăng nhập bằng cụm từ seed của bạn — qua trang web hoặc trực tiếp tới endpoint xác thực được tài liệu hóa bên dưới — và mọi yêu cầu sau đó sẽ tự động kế thừa phiên đó.

Được thiết kế cho script, pipeline và các agent tự động

Các nhà cung cấp OTP truyền thống muốn hợp đồng được ký, tuân thủ được thông qua và cam kết mức tối thiểu hàng tháng trước khi yêu cầu đầu tiên của bạn được gửi đi. SmsNoKYC đảo ngược trật tự đó: giữ một seed phrase, nạp số dư từ $25 bằng bất kỳ loại nào trong 8 loại tiền mã hóa — trong đó có Bitcoin, Monero, Ethereum, Litecoin, TRON, USDT, Solana — và bắt đầu gọi từ bất kỳ client HTTPS nào bạn đang chạy sẵn. Tính phí theo từng số từ $0.01, trải trên hơn 15.400 mức giá thực tế.

Hàng ngày, các endpoint xác minh luồng đăng ký bên trong CI, cấp mã OTP cho trình duyệt headless và các đội scraper, duy trì tài khoản Telegram hoặc WhatsApp sống nhờ thuê bao 7 đến 90 ngày, và trải rộng xác minh qua 116 quốc gia với quyền kiểm soát rõ ràng trên 400 tuyến nhà mạng thuộc ba cấp — ảo, vật lý, cao cấp. Các AI agent tiếp cận cùng danh mục này qua một máy chủ MCP gốc, được trình bày ở trang agents, để một mô hình biết dùng công cụ có thể mua số và đọc mã mà không cần lớp trung gian tùy chỉnh nào.

Xác Thực

Các phiên hoạt động dựa trên cookie — không có bearer key nào cần tạo hay xoay vòng. Đăng nhập bằng lập trình chỉ cần ba bước:

  1. POST cụm từ seed của bạn tới /auth-api.php
  2. Ghi lại cookie được thiết lập trong phản hồi
  3. Đính kèm cookie đó vào mọi lệnh gọi tiếp theo
POST /auth-api.php

Đổi cụm từ khôi phục (seed phrase) của bạn lấy một phiên đăng nhập hoạt động.

Tham sốLoạiBắt buộcMô tả
actionstringbắt buộcPhải là "login"
seedstringbắt buộcCụm seed 16 ký tự gắn với tài khoản của bạn (định dạng 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: {...}}
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ở

Mọi endpoint đều nằm theo một mẫu URL duy nhất:

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

Phản hồi luôn ở dạng JSON trong mọi trường hợp. Nội dung POST có thể được gửi dưới dạng application/json hoặc application/x-www-form-urlencoded.

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

Hai quy tắc chi phối khối lượng yêu cầu:

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ần suất: đăng nhập cho phép 5 lần thử mỗi 15 phút; các endpoint khác hiện không có giới hạn cố định, dù việc lạm dụng kéo dài có thể bị làm chậm ở tầng trên. Hãy giãn cách các lệnh gọi một cách hợp lý.

Xử lý lỗi

Mọi lỗi đều trả về dưới dạng một đối tượng JSON chứa trường error:

{ "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 ở cấp độ ứng dụng bạn sẽ gặp thường xuyên nhất:

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 need và have
"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

Liệt kê mọi quốc gia hiện đang có tồn kho — 116 quốc gia theo lần đếm gần nhất. Endpoint mở, không cần phiên đăng nhập.

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();
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}

Lấy bảng dịch vụ cho một quốc gia, bao gồm giá và số lượng còn lại theo thời gian thực. Bỏ trống tham số quốc gia để nhận toàn bộ danh mục 133 dịch vụ mà không kèm 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}

Liệt kê các tuyến nhà mạng đứng sau một quốc gia. Mỗi nhà mạng có một cấp bậc kèm hệ số nhân áp lên 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 — dựa trên VoIP, chi phí thấp nhất, đôi khi bị từ chối bởi các nền tảng khắt khe. physical — SIM vật lý thật, tỷ lệ chấp nhận cao hơn. premium — tỷ lệ chấp nhận cao nhất và giao mã nhanh nhất, khoảng 10 giây.

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

POST /api.php?action=buy

Giữ chỗ một số điện thoại cho một lần xác minh duy nhất. Số thuộc về bạn trong 20 phút; nếu không có tin nhắn nào xuất hiện trong khoảng thời gian đó, khoản phí sẽ tự động hoàn lại vào số dư của bạn.

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://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();
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 cùng số điện thoại và mọi mã đã bắt được. Hãy kiểm tra tại đây trong khi một lần kích hoạt đang chờ SMS.

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 — vẫn đang chờ tin nhắn. completed — đã nhận mã. cancelled — bạn đã hủy. refunded — tự động hoàn tiền sau khi hết hạn không có tin nhắn. expired — đã hết thời gian chờ.

Xem giá thuê

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

Báo giá chi phí giữ một số điện thoại riêng trên một nhà mạng nhất định cho một thời hạn đã chọ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ộ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

Khóa giữ một hoặc nhiều số riêng. Mỗi số hoàn toàn thuộc về bạn trong suốt thời hạn — 7 đến 90 ngày — và nhận SMS đến không giới hạn từ mọi dịch vụ.

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

Báo cáo tài khoản đứng sau phiên hiện tại, bao gồm cả số dư. Một lệnh gọi vừa kiểm tra đăng nhập vừa kiểm tra số dư.

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

Kịch Bản Toàn Trình

Đoạn mã bên dưới chạy toàn bộ vòng lặp bằng Python — phiên, tra cứu danh mục, mua hàng, sau đó kiểm tra liên tục cho đến khi mã xuất hiện:

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

Câu Hỏi Của Nhà Phát Triển, Đã Được Giải Đáp

API dành cho nhà phát triển của SmsNoKYC cung cấp những thao tác nào?

Mọi việc bảng điều khiển làm được, một đoạn script cũng làm được: lấy danh mục 116 quốc gia và 133 dịch vụ, xem hơn 15.400 mức giá trải trên 400 tuyến nhà mạng, cấp một số cho một OTP dùng một lần, đọc mã đến ngay khi nó xuất hiện, giữ một số thuê riêng trong 7, 14, 30 hoặc 90 ngày, và kiểm tra mọi đơn hàng. Tất cả đều là JSON thuần qua HTTPS, tính phí bằng crypto, không có bước xác minh danh tính nào trong toàn bộ quy trình.

Có cần tạo API key trước khi thực hiện yêu cầu đầu tiên không?

Không cần tạo gì, không cần luân chuyển gì. Seed phrase của bạn chính là thông tin xác thực: gửi POST nó một lần đến /auth-api.php, giữ lại cookie phiên mà máy chủ trả về, và gửi cookie đó cùng mỗi lệnh gọi sau này. Không bảng điều khiển key, không bắt tay OAuth, không lịch hết hạn — một seed mở một phiên, và đó là toàn bộ mô hình.

Việc truy cập API tốn bao nhiêu?

Truy cập hoàn toàn miễn phí — không phí hàng tháng, không hạng mức, không khối lượng gọi tối thiểu. Bạn chỉ trả tiền theo từng số: mã xác minh dùng một lần bắt đầu từ $0,01 và thường rơi vào khoảng $0,20 đến $1, trong khi thuê số riêng mở đầu từ $4,20 cho kỳ hạn 7 ngày. Số dư được nạp bằng 8 loại tiền mã hóa (nạp tối thiểu $25), và một lượt kích hoạt không bao giờ nhận được SMS sẽ tự hoàn tiền mà bạn không cần làm gì.

Tôi có thể tích hợp từ bất kỳ ngôn ngữ lập trình nào — hay từ một tác nhân AI không?

Bất kỳ thứ gì giao tiếp được bằng HTTPS đều phù hợp: Python, Node.js, Go, Rust, PHP, Ruby, Java, C#, hoặc cURL thuần trong một shell script. Tài liệu tham khảo cung cấp sẵn các đoạn mã chạy được bằng cURL, Python và JavaScript, và /openapi.json cung cấp một tài liệu OpenAPI 3.0 đầy đủ để tạo client có kiểu dữ liệu. Các tác nhân tự động cũng được hỗ trợ sẵn — một máy chủ MCP chuyên dụng cho phép các mô hình sử dụng công cụ tự mua số và thu thập mã; trang /agents hướng dẫn chi tiết cách thiết lập.

Điều gì xảy ra khi một số đã mua vẫn im lặng?

Bạn không mất gì cả. Mỗi lần kích hoạt có cửa sổ nhận tin nhắn 20 phút; khi cửa sổ đóng lại mà không có tin nhắn nào, nền tảng sẽ tự động hủy đơn hàng và hoàn trả toàn bộ số tiền vào số dư của bạn. Không cần ticket, không cần biểu mẫu, không cần chờ hỗ trợ. Mua lại ngay lập tức — nâng cấp lên tuyến nhà mạng vật lý hoặc cao cấp thường sẽ tăng tỷ lệ giao mã thành công.

Tôi có thể truy vấn liên tục đến mức nào trước khi bị giới hạn tốc độ?

Chỉ có đăng nhập mang giới hạn cứng: 5 lần thử mỗi 15 phút cho mỗi IP, nhằm ngăn việc dò seed. Các endpoint danh mục, mua hàng, đơn hàng và thuê số hiện chưa có hạn mức cố định. Giữ tần suất hợp lý — kiểm tra endpoint đơn hàng mỗi 3 đến 5 giây là đủ bắt mọi mã — và giữ lưu lượng liên tục dưới khoảng 10 yêu cầu mỗi giây, vì các đợt tải nặng hơn có thể bị làm chậm ở lớp biên.

Triển khai ngay

Lấy một seed trên trang chủ, nạp $25 crypto trở lên, và mã xác minh đầu tiên của bạn chỉ cách năm yêu cầu. Đang xây dựng trên một LLM thay vì một script? Hãy trỏ mô hình của bạn đến máy chủ MCP của SmsNoKYC hoặc làm theo hướng dẫn tích hợp AI agent — toàn bộ danh mục 116 quốc gia và 133 dịch vụ trở thành một lệnh gọi công cụ.

Mọi điều tài liệu tham khảo chưa nói rõ đều được giải đáp tại trung tâm trợ giúp, bảng thuật ngữ SMS giải mã các thuật ngữ chuyên môn, và hoạt động trực tiếp cho thấy mạng lưới đang vận hành. Hỗ trợ hoạt động qua ticket trong ứng dụng khi bạn đã đăng nhập.