SMMパネル API ドキュメント
SMMパネルの標準 API v2 で、テレグラムのボットやご自身のパネルから 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 キー) |
| 回数制限 | キー 1 つにつき 1 分あたり 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 の場合は 1 パッケージの価格です。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 のみ。1 行に 1 コメント、最大 10,000 行、1 行あたり最大 500 文字 |
レスポンス例
{
"order": 31877
}注文状況 (status)
1 件の注文の状況です。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 やご自身のアカウントにない 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 で終わった注文は、終了時点から数えたリフィル期間内に申請できます。1 件の注文で同時に出せる申請は 1 つで、申請の間隔は 24 時間です。
| パラメーター | 説明 |
|---|---|
| key | API キー |
| action | refill |
| order | 注文 ID |
レスポンス例
{
"refill": 512
}リフィル状況 (refill_status)
1 件のリフィル申請の状況です。
| パラメーター | 説明 |
|---|---|
| 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 のレスポンスで、error 項目付きの JSON として返ります。コードでは最初に error 項目の有無を確認してください。
{
"error": "Not enough funds on balance"
}| Invalid API key | キーがない、間違っている、または新しいキーに置き換えられています |
| Too many requests | 1 分あたり 300 リクエストを超えました。少し待ってからお試しください |
| Incorrect action | action の値が上の一覧にありません |
| Add funds first | 初回のチャージがまだ反映されていないアカウントからの注文です |
| Incorrect service ID | その ID で注文できるサービスがありません |
| Incorrect link | リンクが空、またはウェブアドレスではありません |
| Quantity out of range | 最小数量を下回っているか、最大数量を超えています |
| Incorrect comments | Custom Comments が空、または 10,000 行や 1 行 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 をテレグラム ボットにつなぐ方法は?
1. サービス一覧を保存する
services を 1 日に数回呼び出し、サービス ID、名前、rate、min、max をご自身のデータに保存します。お客様に見せる価格は rate に利益分を足して計算し、注文時は保存したサービス ID をそのまま使います。
2. 注文前に数量とリンクを確認する
数量が min と max の間にあるか、リンクが t.me 形式かを先に確認すれば、Quantity out of range や Incorrect link のエラーを減らせます。balance で残高を事前に確認しておくのもおすすめです。
3. 状況はまとめて確認する
進行中の注文は、数分ごとに orders パラメーターで 100 件ずつまとめて確認します。これならキー 1 つにつき 1 分あたり 300 リクエストの制限内に余裕で収まります。注文が Completed、Partial、Canceled になったら、お客様に結果をお知らせしましょう。
4. リフィルは終了した注文だけ
リフィル対象サービスの注文が Completed または Partial になったら、refill を送れます。レスポンスのリフィル ID を保存し、refill_status で進み具合を確認してください。
