银狼接码 API 文档

官方 SDK

五种语言 SDK 封装了全部开放接口(余额、长效号码、在线接码),并内置「等待验证码」轮询助手。源码托管在 GitHub,欢迎 Star / 反馈 Issue。

语言要求获取方式
Node.jsNode 18+(原生 fetch)sdk/nodejs 目录 / npm(发布后)
PythonPython 3.8+,requestssdk/python 目录 / PyPI(发布后)
GoGo 1.20+,零依赖sdk/go 目录 / go get(发布后)
JavaJava 11+,零依赖sdk/java 目录 / Maven(发布后)
JavaScript现代浏览器 ESMsdk/js 目录直接引入

Node.js SDK

npm install yinglangsms        # 发布后;或直接复制 sdk/nodejs 目录
const { YinglangSMS } = require("yinglangsms");

const client = new YinglangSMS("你的API_KEY");

// 余额
const me = await client.getUserInfo();
console.log(me.balance);

// 在线接码:取号 → 等验证码(自动轮询)
const [session] = (await client.onlineBuy({ appId: "1001", country: "52" })).list;
try {
  const done = await client.onlineWaitCode(session.session_no, { timeout: 300 });
  console.log("验证码:", done.code);
} catch (e) {
  await client.onlineRelease(session.session_no); // 未收到则释放退款
}

// 长效号码:购买 → 等短信
const { order, phones } = await client.createOrder({ appId: 123, num: 1 });
const sms = await client.waitForSms(phones[0].token, { timeout: 300 });
console.log("短信:", sms);

Python SDK

pip install yinglangsms        # 发布后;或直接复制 sdk/python 目录
from yinglangsms import YinglangSMS

client = YinglangSMS("你的API_KEY")

# 余额
print(client.get_user_info()["balance"])

# 在线接码:取号 → 等验证码(自动轮询)
session = client.online_buy(app_id="1001", country="52")["list"][0]
try:
    done = client.online_wait_code(session["session_no"], timeout=300)
    print("验证码:", done["code"])
except TimeoutError:
    client.online_release(session["session_no"])  # 未收到则释放退款

# 长效号码:购买 → 等短信
result = client.create_order(app_id=123, num=1)
sms = client.wait_for_sms(result["phones"][0]["token"], timeout=300)
print("短信:", sms)

Go SDK

go get github.com/yinglangS/yinglangsms-sdk/go   # 发布后;或直接复制 sdk/go 目录
client := yinglangsms.New("你的API_KEY")

// 余额
info, _ := client.GetUserInfo(ctx)
fmt.Println(info.Balance)

// 在线接码:取号 → 等验证码
buy, _ := client.OnlineBuy(ctx, yinglangsms.OnlineBuyReq{AppID: "1001", Country: "52"})
session := buy.List[0]
done, err := client.OnlineWaitCode(ctx, session.SessionNo, 5*time.Minute)
if err != nil {
    client.OnlineRelease(ctx, session.SessionNo) // 未收到则释放退款
} else {
    fmt.Println("验证码:", done.Code)
}

Java SDK

// Maven 发布后引入坐标,或直接复制 sdk/java 源码
YinglangSmsClient client = new YinglangSmsClient("你的API_KEY");

// 余额
JsonObject me = client.getUserInfo();
System.out.println(me.get("balance"));

// 在线接码:取号 → 等验证码
JsonObject session = client.onlineBuy("1001", "52", 1)
        .getAsJsonArray("list").get(0).getAsJsonObject();
String sessionNo = session.get("session_no").getAsString();
try {
    JsonObject done = client.onlineWaitCode(sessionNo, 300);
    System.out.println("验证码: " + done.get("code").getAsString());
} catch (Exception e) {
    client.onlineRelease(sessionNo); // 未收到则释放退款
}

浏览器 JavaScript SDK

注意:API Key 等同账户权限,请勿在公开网页中明文使用浏览器 SDK,建议仅在内部工具 / Electron / 油猴脚本等可控环境使用。
<script type="module">
import { YinglangSMS } from "./yinglangsms.esm.js";

const client = new YinglangSMS("你的API_KEY");
const me = await client.getUserInfo();
console.log(me.balance);
</script>

SDK 方法与接口对照

SDK 方法(Node.js 命名)对应接口
getUserInfo()GET /api/v1/user/info
getCategories()GET /api/v1/app/categories
getApps(query)GET /api/v1/apps
getPrefixes(appId, query)GET /api/v1/apps/{id}/prefixes
createOrder(body)POST /api/v1/orders
listOrders(query)GET /api/v1/orders
listPhones(query)GET /api/v1/phones
getSms(token) / waitForSms(token)GET /api/v1/sms
onlineApps(keyword)GET /api/v1/online/apps
onlineCountries(appId)GET /api/v1/online/countries
onlineBuy(body)POST /api/v1/online/orders
onlineGetCode(no) / onlineWaitCode(no)GET /api/v1/online/orders/{no}/code
onlineRelease(no)POST /api/v1/online/orders/{no}/release
onlineOrders(query)GET /api/v1/online/orders
← 上一页在线接码 API