短信验证 API — SMSNoKYC
端到端地自动完成 OTP 验证。在 190 多个国家预订虚拟号码,几秒内读取短信验证码,租用长期专属线路,并通过单一 REST 界面掌控每一笔订单——无需 API 密钥、无需 KYC,用加密货币付款。
开发者选择SMSNoKYC API的原因
SMSNoKYC是最灵活的短信验证API,专为需要匿名性、全球覆盖和可预测定价的开发者而设计。与那些需要企业合同、月度最低消费和KYC问卷才能访问的传统SMS-OTP服务商不同,SMSNoKYC兼容任意HTTPS客户端,严格按号码计费,并支持20+种加密货币,包括Bitcoin、Monero、Ethereum、USDT、USDC、Solana、Litecoin、XRP、TRON和Toncoin。
典型使用场景包括:为大规模QA自动化账号注册、为无界面代理和CI机器人获取一次性密码、在持续集成中验证需要手机号的流程、为需要不间断接收短信的Telegram或WhatsApp账号租用专属长期号码,以及通过明确的运营商层级控制(虚拟、实体或高级)在190+个国家实现地理分布式验证。
身份验证
API 使用基于 cookie 的会话身份验证。要以编程方式进行身份验证:
- 发送 POST 请求到
/auth-api.php,附上您的 seed 短语 - 保存响应中的会话 cookie
- 在所有后续 API 请求中包含该 cookie
使用您的 seed 短语进行身份验证并建立会话。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
| action | string | 必填 | 必须为 "login" |
| seed | string | 必填 | 您的 16 字符访问 seed(例如 AbC3-dEf4-gHj5-kLm6) |
基础 URL
所有 API 端点相对于:
所有响应均为 JSON 格式。POST 端点接受 application/json 和 application/x-www-form-urlencoded 请求体。
速率限制
API 执行以下速率限制:
| 端点 | 限制 | 时间窗口 |
|---|---|---|
| 身份验证 | 5 次尝试 | 15 分钟 |
| 所有其他端点 | 无硬性限制 | — |
频率限制:身份验证限制为每 15 分钟 5 次尝试。其他端点目前没有频率限制,但过度使用可能会被限流。请使用合理的请求间隔。
错误处理
所有错误返回一个包含 <code>error</code> 字段的 JSON 对象:
| 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" | 未提供必需参数 |
获取国家列表
返回所有拥有可用虚拟号码的活跃国家。无需身份验证。
获取服务列表
返回特定国家的可用服务,包括价格和库存。不指定国家代码时,返回所有服务但不含价格。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
| country | string | 可选 | ISO 3166-1 alpha-2 国家代码(例如 us、gb、de) |
获取运营商列表
返回特定国家的可用运营商。每个运营商有一个类型和应用于基础服务价格的价格倍率。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
| country | string | 必填 | ISO 3166-1 alpha-2 国家代码 |
运营商类型:virtual — VoIP 号码,最便宜,可能被某些服务屏蔽。physical — 实体 SIM 卡,成功率更高。premium — 最快交付(约 10 秒),成功率最高。
购买号码(SMS激活)
购买虚拟号码用于一次性短信验证。号码有效期为 20 分钟。如果未收到短信,您的余额将自动退还。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
| country | string | 必填 | 国家代码(例如 us) |
| service_id | integer | 必填 | 来自服务列表的服务 ID |
| operator_id | integer | 可选 | 来自运营商列表的运营商 ID。留空使用默认运营商。 |
列出订单
返回您最近的 50 个订单,包括电话号码和短信验证码。轮询此端点以检查活跃订单的短信验证码。
订单状态:active — 等待短信。completed — 已收到短信。cancelled — 用户已取消。refunded — 自动退款(超时前未收到短信)。expired — 已过期。
获取租赁价格
获取从特定运营商租用专用号码的价格和租期。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
| country | string | 必填 | 国家代码 |
| operator_id | integer | 必填 | 运营商 ID |
| duration | integer | 必填 | 租用天数:7、14、30 或 90 |
租赁号码
租用一个或多个专用电话号码。该号码在整个租用期间专属于您,并可接收无限量的短信。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
| country | string | 必填 | 国家代码 |
| operator_id | integer | 必填 | 运营商 ID |
| duration | integer | 必填 | 7、14、30 或 90 天 |
| qty | integer | 可选 | 要租用的号码数量(1–10,默认:1) |
获取用户信息
返回当前用户的账户信息和余额。用于检查身份验证状态和可用资金。
完整工作流程示例
以下是一个完整的 Python 示例,演示身份验证、查找服务、购买号码并轮询SMS验证码: