SMM面板 API 文档
SMM面板标准 API v2:从您的 电报机器人或自己的面板直接订购 4SNS PLUS 服务。
什么是 SMM面板 API?
SMM面板 API 让程序无需打开网站,就能获取服务列表、下单并查询订单状态和余额。4SNS PLUS 支持众多面板和机器人通用的标准 SMM面板 API v2 格式,已经对接其他面板的代码,只需更换 URL 和 key 即可直接使用。
API 的价格和余额与网站完全相同。services 响应中的 rate 等于价格表里的每 1,000 价格(美元),用 add 提交的订单与网页订单一样从余额扣款,也会出现在后台的订单记录中。取消或部分完成订单退回的金额同样回到这个余额。
基本信息
| 接口地址 | https://4snsplus.com/api/v2 |
| 请求方法 | POST |
| 请求格式 | 表单字段(application/x-www-form-urlencoded、multipart)或 JSON 请求体 |
| 响应 | JSON;错误同样以 HTTP 200 返回,并带有 error 字段 |
| 认证 | 每次请求都带上 key 参数(您的 API 密钥) |
| 频率限制 | 每个密钥每分钟 300 次请求 |
| 货币 | 美元(USD) |
请求示例
curl -X POST https://4snsplus.com/api/v2 \ -d key=YOUR_API_KEY \ -d action=balance
import requests
r = requests.post("https://4snsplus.com/api/v2", data={
"key": "YOUR_API_KEY",
"action": "add",
"service": 2210,
"link": "https://t.me/yourchannel",
"quantity": 1000,
})
print(r.json()) # {"order": 31877} or {"error": "..."}如何获取 API 密钥?
首次充值到账后,即可在后台的 API 密钥菜单中创建 API 密钥。密钥只在创建时显示一次,请妥善保存。创建新密钥后,旧密钥会立即失效。
API 密钥与账户令牌是分开的。机器人或服务器中只放 API 密钥,切勿放入账户令牌。如果担心密钥泄露,只需在 API 密钥页面重新创建一个。
服务列表(services)
返回所有可订购的服务。rate 为每 1,000 价格(USD),type 为 Package 时则是一个套餐的价格。type 为 Custom Comments 时,提交的是评论列表而不是数量。category 为平台名加分组名。
| 参数 | 说明 |
|---|---|
| key | 您的 API 密钥 |
| action | services |
响应示例
[
{
"service": 2210,
"name": "Members - 30 Days Non Drop - 30 Days Refill",
"type": "Default",
"category": "Telegram - Members (30 Days Non Drop)",
"rate": "1.4300",
"min": "100",
"max": "50000",
"refill": true,
"cancel": false
}
]提交订单(add)
提交订单并从余额扣款。金额为每 1,000 价格乘以数量;Package 按套餐价格计算,Custom Comments 以评论行数作为数量。首次充值已到账的账户才能下单。响应中的 order 即您的订单编号。
| 参数 | 说明 |
|---|---|
| key | 您的 API 密钥 |
| action | add |
| service | 服务编号(services 中的 service) |
| link | 公开链接。Telegram 格式:t.me/name,私密邀请链接 t.me/+code,帖子 t.me/name/123,机器人 t.me/botname。也支持 @name |
| quantity | 数量(在 min 与 max 之间)。Package 和 Custom Comments 无需填写 |
| comments | 仅限 Custom Comments。每行一条评论,最多 10,000 行,每行最多 500 个字符 |
响应示例
{
"order": 31877
}订单状态(status)
查询单个订单的状态。charge 为扣除退款后的实际支付金额(USD,6 位小数),start_count 为订单开始时的数量,remains 为尚未交付的数量。
| 参数 | 说明 |
|---|---|
| key | 您的 API 密钥 |
| action | status |
| order | 订单编号 |
响应示例
{
"charge": "1.430000",
"start_count": "8120",
"status": "In progress",
"remains": "410",
"currency": "USD"
}批量订单状态(status, orders)
一次最多查询 100 个订单,订单编号用逗号分隔。不存在或不属于您账户的编号,会在对应位置返回错误。
| 参数 | 说明 |
|---|---|
| key | 您的 API 密钥 |
| action | status |
| orders | 订单编号列表,例如 1,10,100 |
响应示例
{
"1": { "charge": "0.300000", "start_count": "120", "status": "Completed", "remains": "0", "currency": "USD" },
"10": { "error": "Incorrect order ID" }
}申请补量(refill)
适用于有补量期、并以 Completed 或 Partial 结束的服务订单,需在订单结束后的补量期内申请。每个订单同时只能有一个未结申请,两次申请需间隔 24 小时。
| 参数 | 说明 |
|---|---|
| key | 您的 API 密钥 |
| action | refill |
| order | 订单编号 |
响应示例
{
"refill": 512
}补量状态(refill_status)
查询单个补量申请的状态。
| 参数 | 说明 |
|---|---|
| key | 您的 API 密钥 |
| action | refill_status |
| refill | 补量编号(refill 响应中的 refill) |
响应示例
{
"status": "Completed"
}余额(balance)
您的余额(USD,6 位小数)。
| 参数 | 说明 |
|---|---|
| key | 您的 API 密钥 |
| action | balance |
响应示例
{
"balance": "84.120000",
"currency": "USD"
}订单状态值
| Pending | 已接收。正在转交、等待开始,或运营人员正在确认转交结果 |
| In progress | 正在交付 |
| Completed | 已全部交付 |
| Partial | 部分交付。未交付部分退回您的余额 |
| Canceled | 未交付。全额退回您的余额 |
补量状态值
| Pending | 已收到补量申请 |
| In progress | 正在补量 |
| Completed | 补量已完成 |
| Rejected | 补量申请未被受理 |
错误信息
错误以 HTTP 200 响应返回,JSON 中带有 error 字段。请在代码中先检查 error 字段。
{
"error": "Not enough funds on balance"
}| Invalid API key | 密钥缺失、错误,或已被新密钥取代 |
| Too many requests | 每分钟请求超过 300 次,请稍后再试 |
| Incorrect action | action 值不在上述列表中 |
| Add funds first | 账户首次充值尚未到账就下单 |
| Incorrect service ID | 没有该编号的可订购服务 |
| Incorrect link | 链接为空或不是网址 |
| Quantity out of range | 数量低于最小值或高于最大值 |
| Incorrect comments | Custom Comments 为空,或超过 10,000 行或每行 500 个字符 |
| Not enough funds on balance | 余额低于订单金额,请充值后重新下单 |
| Incorrect order ID | 该订单编号不属于您的账户 |
| Refill is not available for this service | 该服务没有补量期 |
| Order is not finished yet | 订单为 Completed 或 Partial 后才能补量 |
| Refill period has ended | 已超过从订单结束起计算的补量期 |
| Refill already requested | 该订单已有未结的补量申请 |
| Refill already requested, try again later | 距上次申请未满 24 小时 |
| Incorrect refill ID | 该补量编号不属于您的账户 |
如何把 SMM面板 API 接入 电报机器人?
1. 保存服务列表
每天调用几次 services,把服务编号、名称、rate、min 和 max 保存到您自己的数据中。在 rate 上加上您的利润作为给客户的售价,下单时直接使用保存的服务编号。
2. 下单前检查数量和链接
先确认数量在 min 与 max 之间、链接为 t.me 格式,可以减少 Quantity out of range 和 Incorrect link 错误。提前用 balance 查看余额也很有帮助。
3. 批量查询状态
每隔几分钟用 orders 参数以每批 100 个查询进行中的订单,这样完全在每个密钥每分钟 300 次的限额之内。订单变为 Completed、Partial 或 Canceled 时,把结果告知您的客户。
4. 只为已结束的订单补量
补量服务的订单变为 Completed 或 Partial 后即可发送 refill。保存响应中的补量编号,并用 refill_status 跟踪进度。
