跳至主要内容
116
国家
133种服务,400条运营商线路,15,400+个实时价格点。仅限加密货币,零身份验证。
租赁号码

面向开发者的 SmsNoKYC:可脚本化的短信验证

通过一个JSON接口脚本化整个验证流程。116个国家、133项服务、400条运营商线路以及超过15,400个实时价格,都由为数不多的几个接口驱动:分配号码、捕获接收到的验证码、持有租赁最长90天、以加密货币结算。这里没有API密钥——助记词是你唯一需要提供的凭证。

阅读时间:5 分钟 REST · JSON · OpenAPI 3.0 OpenAPI 规范 →

需要身份验证。 会话依赖于Cookie。用你的助记词登录——可通过网站,也可直接调用下方文档说明的认证接口——之后的每一个请求都会自动沿用该会话。

专为脚本、流水线和自主智能体设计

传统OTP服务商要求在您发出第一个请求前签署合同、通过合规审查并承诺月度最低消费。SmsNoKYC彻底颠覆这一顺序:持有一个助记词,用比特币、门罗币、以太坊、USDT、莱特币、波场币、SOL等8种加密货币中的任意一种充值最低$25,即可从您现有的任何HTTPS客户端开始调用。计费按号码计量,起价$0.01,覆盖15,400多个实时价格节点。

日常使用中,这些接口可在CI流程内验证注册流程、向无头浏览器和爬虫集群提供OTP验证码、通过7至90天的专属租用保持Telegram或WhatsApp账号活跃,并在116个国家范围内进行验证,可精确控制虚拟、实体、高级三档共400条运营商线路。AI智能体可通过原生MCP服务器访问同一目录(详见agents页面),让具备工具调用能力的模型无需任何定制粘合代码即可购买号码并读取验证码。

身份验证

会话基于Cookie——没有需要生成或轮换的持有者密钥。程序化登录只需三步:

  1. 将你的助记词 POST 到 /auth-api.php
  2. 捕获响应中设置的 Cookie
  3. 在后续每次调用中都附带该 Cookie
POST /auth-api.php

用你的助记词换取一个实时会话。

参数类型必需描述
actionstring必填必须为 "login"
seedstring必填与你账户绑定的16位字符助记词(格式为 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: {...}}
成功响应
{ "success": true, "user": { "id": 42, "prefix": "AbC3", "balance": "74.50" } }
错误响应
{ "success": false, "error": "Invalid seed." }

基础 URL

所有接口均遵循同一URL格式:

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

所有响应均以 JSON 格式返回。POST 请求体可以是 application/json 或 application/x-www-form-urlencoded 格式。

速率限制

请求量受两条规则约束:

端点限制时间窗口
身份验证5 次尝试15 分钟
所有其他端点无硬性限制—

速率限制:登录接口每15分钟允许5次尝试;其他所有接口目前没有固定上限,但持续滥用可能会在上游被限速。请合理安排调用频率。

错误处理

所有失败响应均以包含error字段的JSON对象形式返回:

{ "error": "Description of what went wrong" }
HTTP 状态码含义
200成功(请检查响应体中的应用级错误)
403无效的 CSRF 令牌
405错误的 HTTP 方法(例如在仅限 POST 的端点使用 GET)
429超出频率限制

您最常遇到的应用层错误:

错误原因
"Login required"会话已过期或未认证
"Insufficient balance"资金不足 — 包含 need 和 have 字段
"Service not available for this country"所选国家无库存或服务未激活
"Missing country or service"未提供必需参数

获取国家列表

GET /api.php?action=countries

列出当前有库存的所有国家——最新统计为116个。开放接口,无需会话验证。

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();
响应
[ { "id": 1, "code": "us", "name": "USA" }, { "id": 2, "code": "gb", "name": "UK" }, { "id": 3, "code": "de", "name": "Germany" } ]

获取服务列表

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

获取某一国家的服务清单,包含实时价格与库存。不填写国家参数则返回不带定价的完整133项服务目录。

参数类型必需描述
countrystring可选ISO 3166-1 alpha-2 国家代码(例如 us、gb、de)
响应(含国家)
[ { "id": 12, "name": "WhatsApp", "slug": "whatsapp", "icon_code": "WA", "icon_color": "#25d366", "category": "social", "price": "0.35", "stock": 847 } ]

获取运营商列表

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

列出某国家背后的所有运营商线路。每个运营商都有对应档位及在基础服务价格上应用的倍数。

参数类型必需描述
countrystring必填ISO 3166-1 alpha-2 国家代码
响应
[ { "id": 5, "name": "T-Mobile", "type": "physical", "price_multiplier": "1.50", "icon_slug": "tmobile", "icon_domain": "t-mobile.com" } ]

运营商类型:virtual(虚拟)——基于 VoIP,成本最低,偶尔会被严格的平台拒绝。physical(实体)——真实 SIM 硬件,接受度更高。premium(高级)——接受度最高、送达最快,约10秒。

购买号码(SMS激活)

POST /api.php?action=buy

为单次验证预留一个号码。该号码在20分钟内归你使用;若在此期间未收到短信,费用会自动退回你的余额。

参数类型必需描述
countrystring必填国家代码(例如 us)
service_idinteger必填来自服务列表的服务 ID
operator_idinteger可选来自运营商列表的运营商 ID。留空使用默认运营商。
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();
成功响应
{ "success": true, "order_id": 1847, "price": 0.53, "balance": "73.97" }
错误:余额不足
{ "error": "Insufficient balance", "need": 0.53, "have": "0.10" }

列出订单

GET /api.php?action=orders

返回你最近50笔订单及其号码和已捕获的验证码。等待某次激活收到短信时,请轮询此接口。

响应
[ { "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" } ]

订单状态:active(进行中)——仍在等待短信。completed(已完成)——验证码已获取。cancelled(已取消)——由您关闭。refunded(已退款)——静默超时后自动退还。expired(已过期)——时间窗口已结束。

获取租赁价格

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

报出在指定运营商上、以选定期限持有专属号码的费用。

参数类型必需描述
countrystring必填国家代码
operator_idinteger必填运营商 ID
durationinteger必填租用天数:7、14、30 或 90
响应
{ "price": "12.50", "duration": 30, "operator": "T-Mobile", "type": "physical", "country": "USA" }

租赁号码

POST /api.php?action=rental_buy

锁定一个或多个专属号码。每个号码在整个租期(7至90天)内均专属于您,可无限接收来自任何服务的短信。

参数类型必需描述
countrystring必填国家代码
operator_idinteger必填运营商 ID
durationinteger必填7、14、30 或 90 天
qtyinteger可选要租用的号码数量(1–10,默认:1)
成功响应
{ "success": true, "order_ids": [1848, 1849], "total": 25.00, "qty": 2, "unit_price": 12.50, "duration": 30, "balance": "49.50" }

获取用户信息

GET /api.php?action=user

返回当前会话所属的账户信息,包含余额。一次调用即可同时完成登录检查和余额检查。

已认证
{ "logged_in": true, "id": 42, "prefix": "AbC3", "balance": "74.50" }
未认证
{ "logged_in": false }

端到端脚本

下面的脚本用Python完成整个流程——建立会话、查询目录、下单购买,然后轮询直至验证码到达:

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

开发者常见问题解答

SmsNoKYC开发者API开放了哪些操作?

仪表盘能做的事,脚本同样能做:拉取覆盖116个国家、133项服务的目录,查看分布在400条运营商线路上的15,400多个实时价格节点,分配号码接收一次性OTP,验证码到达时即时读取,租用专属线路7、14、30或90天,并审计每一笔订单。全部操作均为通过HTTPS传输的纯JSON,以加密货币计费,整个流程中不涉及任何身份验证步骤。

首次请求前是否需要生成API密钥?

无需生成,也无需轮换。您的助记词本身就是凭证:将其POST到/auth-api.php一次,保留服务器返回的会话Cookie,此后每次调用都携带该Cookie。没有密钥管理面板,没有OAuth握手流程,没有到期日历——一个助记词开启一个会话,整套模型就是如此简单。

使用API本身需要付费吗?

使用无需任何费用——没有月费、没有档位、没有最低调用量要求。您只需按号码付费:一次性验证码低至$0.01,通常价格在$0.20至$1之间,而专属租用7天期限低至$4.20。余额可用8种加密货币充值(最低充值$25),若激活的号码始终未收到短信,系统会自动退款,无需您采取任何操作。

我可以用任何编程语言集成——或通过 AI 智能体集成吗?

任何支持 HTTPS 的语言都可以:Python、Node.js、Go、Rust、PHP、Ruby、Java、C#,或者 shell 脚本中的纯 cURL。参考文档提供可直接运行的 cURL、Python 和 JavaScript 代码片段,/openapi.json 提供完整的 OpenAPI 3.0 文档,可用于生成带类型的客户端。自主智能体也得到原生支持——专用的 MCP 服务器可让使用工具的模型自行购买号码并收取验证码;/agents 页面详细介绍了具体设置方法。

已购买的号码始终没有收到短信会怎样?

你不会有任何损失。每次激活都有一个20分钟的接收窗口;如果窗口关闭时仍未收到短信,平台会自动取消订单并将全额费用退回你的余额。无需提交工单、无需填表、无需等待客服。你可以立即重新购买——升级到物理或高级运营商档位通常能提高送达率。

轮询频率多高才会触发限流?

只有登录设有硬性上限:每个IP每15分钟5次尝试,用于阻止助记词猜测。目录、购买、订单和租赁接口目前没有固定配额。保持合理的请求节奏——每3到5秒查询一次订单接口即可捕获所有验证码——并将持续流量控制在每秒约10次请求以内,因为更猛烈的突发流量可能会在边缘层被限速。

上线部署

在首页生成一个助记词,充值$25以上的加密货币,只需五次请求即可获得第一条验证码。使用大语言模型而非脚本进行开发?将您的模型指向SmsNoKYC MCP服务器,或参照AI智能体集成指南——覆盖116个国家、133项服务的完整目录,将变成一次工具调用。

参考文档未涵盖的内容可在帮助中心找到,短信术语表解释了专业术语,实时动态展示了网络的实时运行情况。登录后,支持服务通过应用内工单提供。