SMM面板 API 文件
SMM面板 API 讓您用標準 API v2,從自己的 Telegram 機器人或面板直接訂購 4SNS PLUS 的服務。
什麼是 SMM面板 API?
SMM面板 API 讓程式不必透過網站,就能取得服務清單、下單,並查詢訂單狀態與餘額。4SNS PLUS 支援許多面板與機器人共用的標準 SMM面板 API v2 格式,所以您已經串接其他面板的程式碼,只要換掉 URL 和金鑰就能直接使用。
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 就是您的訂單 ID。
| 參數 | 說明 |
|---|---|
| key | 您的 API 金鑰 |
| action | add |
| service | 服務 ID(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 | 訂單 ID |
回應範例
{
"charge": "1.430000",
"start_count": "8120",
"status": "In progress",
"remains": "410",
"currency": "USD"
}多筆訂單狀態(status, orders)
以逗號串接訂單 ID,一次最多查詢 100 筆。不存在或不屬於您帳號的 ID,會在該位置回傳錯誤。
| 參數 | 說明 |
|---|---|
| key | 您的 API 金鑰 |
| action | status |
| orders | 訂單 ID 清單,例如 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 | 訂單 ID |
回應範例
{
"refill": 512
}補量狀態(refill_status)
查詢單筆補量申請的狀態。
| 參數 | 說明 |
|---|---|
| key | 您的 API 金鑰 |
| action | refill_status |
| refill | 補量 ID(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 | 沒有此 ID 的可訂購服務 |
| Incorrect link | 連結為空或不是網址 |
| Quantity out of range | 低於最少數量或高於最多數量 |
| Incorrect comments | Custom Comments 為空,或超過 10,000 行或每行 500 字元 |
| Not enough funds on balance | 餘額低於訂單金額,請儲值後再下單 |
| Incorrect order ID | 此訂單 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 | 此補量 ID 不屬於您的帳號 |
如何把 SMM面板 API 串接到 Telegram 機器人?
1. 儲存服務清單
每天呼叫 services 幾次,把服務 ID、名稱、rate、min、max 存到自己的資料中。在 rate 上加上您的利潤,就是顯示給客戶的價格,下單時直接使用儲存的服務 ID。
2. 下單前先檢查數量與連結
先確認數量介於 min 與 max 之間、連結為 t.me 格式,就能減少 Quantity out of range 和 Incorrect link 錯誤。事先用 balance 查詢餘額也很有幫助。
3. 批次查詢狀態
每隔幾分鐘,用 orders 參數以每批 100 筆查詢進行中的訂單,輕鬆維持在每個金鑰每分鐘 300 次的限制內。訂單變成 Completed、Partial 或 Canceled 時,再通知客戶結果。
4. 只為已完成的訂單申請補量
補量服務的訂單變成 Completed 或 Partial 後,就可以送出 refill。儲存回應中的補量 ID,再用 refill_status 追蹤進度。
