本文へスキップ
1PANEL PLUS

SMMパネル APIの使い方: リセラー向けAPI v2連携ガイド

執筆 1PANEL PLUS10分で読めます YouTube最終更新


要点まとめ

標準SMMパネル API v2のリクエスト方法と6つのaction、レスポンス例、エラーメッセージ、リクエスト上限をリセラー向けにまとめました。

SMMパネル APIは、他のパネルや自作のプログラムから注文を自動で入れ、ステータスを確認する連携方式です。1PANEL PLUSは標準SMMパネル API v2を使っているため、すでに他のパネルと連携しているコードがあれば、アドレスとキーを変えるだけですぐに連携できます。APIとウェブサイトは、同じサービス、同じ1,000件あたりの価格、同じ残高を使います。

SMMパネル APIは誰が使いますか?

  • リセラー: 自分のパネルにサービスを掲載し、お客様の注文を自動で転送します
  • エージェンシー: 複数のチャンネルの注文を決まった時間に一度に入れます
  • 開発者: 配信開始や新しい動画のアップロードに合わせて注文するスクリプトを作ります
  • 運営者: 残高と注文ステータスを自分の管理画面にまとめて表示します

APIキーはどうやって取得しますか?

初回チャージが反映された後、ダッシュボードのAPIキー画面で作成します。キーは作成した瞬間に一度だけ表示されるので、すぐにコピーして安全な場所に保管してください。新しいキーを作ると以前のキーはすぐに使えなくなるため、キーが漏れたと思われる場合は新しいキーを作って切り替えてください。

APIリクエストはどうやって送りますか?

すべてのリクエストは https://1panelplus.com/api/v2 のアドレスひとつにPOSTで送ります。フォームフィールド(application/x-www-form-urlencodedまたはmultipart)かJSON本文(Content-Type: application/json)のうち使いやすい方式を使い、すべてのリクエストにkeyとactionを一緒に入れます。レスポンスはすべてJSONです。

リクエスト例(フォームフィールド): key=YOUR_API_KEY&action=balance

リクエスト例(JSON): {"key": "YOUR_API_KEY", "action": "balance"}

action
services
一緒に送る値
なし
返ってくる値
サービス一覧
action
add
一緒に送る値
service, link, quantity または comments
返ってくる値
order(注文番号)
action
status
一緒に送る値
order 1件または orders(カンマ区切りで100件まで)
返ってくる値
charge, start_count, status, remains, currency
action
refill
一緒に送る値
order
返ってくる値
refill(リフィル番号)
action
refill_status
一緒に送る値
refill
返ってくる値
status
action
balance
一緒に送る値
なし
返ってくる値
balance, currency

servicesでサービス一覧はどうやって取得しますか?

action=servicesを送ると、販売中のサービスすべてが配列で返ります。サービスごとにservice(サービス番号)、name、type、category、rate、min、max、refill、cancelが含まれます。rateは1,000件あたりの価格(USD)で、typeがPackageの場合はパッケージ1件の価格です。refillはリフィル期間付きのサービスならtrueで、cancelは常にfalseです。categoryにはプラットフォーム名と分類が一緒に書かれているため、自分のパネルの分類をそのまま作れます。

レスポンス例: [{"service": SERVICE_ID, "name": "サービス名", "type": "Default", "category": "YouTube - カテゴリ名", "rate": "1,000件あたりの価格", "min": "最小数量", "max": "最大数量", "refill": true, "cancel": false}]

価格とサービスは変わることがあるため、リセラーの方は決まった間隔でservicesを取得し直し、自分のパネルの価格と最小・最大数量を合わせておくと安心です。

addで注文はどうやって入れますか?

action=addにservice(サービス番号)、link(公開リンク)、quantity(数量)を一緒に送ると注文が受け付けられ、金額が残高からすぐに差し引かれます。レスポンスのorderが注文番号なので、この番号を保存しておき、statusとrefillに使います。注文は初回チャージが反映されたアカウントで入れられます。

  • 通常のサービス: service、link、quantityを送ります
  • Custom Commentsサービス: quantityの代わりにcommentsを送ります。1行にコメント1件ずつ、各行500文字までで、行数がそのまま数量になります
  • Packageサービス: 数量を送らなくてもかまいません。パッケージ1件で注文されます

リクエスト例: key=YOUR_API_KEY&action=add&service=SERVICE_ID&link=https://www.youtube.com/watch?v=videoid&quantity=1000

レスポンス例: {"order": ORDER_ID}

statusで注文ステータスはどうやって確認しますか?

action=statusにorder(注文番号1件)を送るとその注文のステータスが返り、ordersに注文番号をカンマでつなげて送ると一度に100件まで照会できます。多くの注文を管理しているなら、ordersでまとめて照会するとリクエスト数を大きく節約できます。

レスポンス例(1件): {"charge": "支払い金額", "start_count": "開始時の数値", "status": "In progress", "remains": "残りの数量", "currency": "USD"}

レスポンス例(複数): {"ORDER_ID_1": {"charge": "...", "start_count": "...", "status": "Completed", "remains": "0", "currency": "USD"}, "ORDER_ID_2": {"error": "Incorrect order ID"}}

statusの値
Pending
意味
受付済みで開始を待っているか、処理へ進んでいる途中
statusの値
In progress
意味
送付中
statusの値
Completed
意味
すべて届いた状態
statusの値
Partial
意味
一部が届き、残りの金額が残高に戻った状態
statusの値
Canceled
意味
処理できず、全額が残高に戻った状態

chargeは支払い金額から返金額を引いた値なので、一部完了やキャンセルの後は実際に使った金額がすぐに分かります。注文ステータスは約1分ごとに自動で更新されるため、statusも1分前後の間隔で照会すれば十分です。

refillとrefill_statusはどう使いますか?

action=refillにorderを送るとリフィルがリクエストされ、refill(リフィル番号)が返ります。リフィル期間付きサービスの完了または一部完了の注文で、注文完了日からリフィル期間内、進行中のリフィルがなく、前回のリクエストから24時間が経過していれば受け付けます。action=refill_statusにrefillを送ると、Pending、In progress、Completed、Rejectedのいずれかでステータスをお知らせします。

レスポンス例: {"refill": REFILL_ID} および {"status": "Completed"}

リフィルのルールはウェブサイトと同じです。詳しい条件はリフィル期間についてにまとめています。

balanceで残高はどうやって確認しますか?

action=balanceを送ると、現在の残高と通貨(USD)が返ります。リセラーの方は、注文を転送する前に残高を確認し、残高が一定額を下回ったら通知を送るようにしておけば、注文が途切れずに続きます。

レスポンス例: {"balance": "現在の残高", "currency": "USD"}

APIのエラーメッセージはどういう意味ですか?

エラーは、error欄に英語の文が入ったJSONで返ります。文ごとに原因が決まっているため、プログラムでそのまま比較して処理できます。

errorの値
Invalid API key
意味
キーがないか、一致しません
errorの値
Too many requests
意味
1分あたりのリクエスト数を超えました。少し待ってから再送してください
errorの値
Add funds first
意味
初回チャージが反映された後に注文できます
errorの値
Incorrect service ID
意味
販売中のサービス番号ではありません
errorの値
Incorrect link
意味
リンクの形式が正しくありません
errorの値
Quantity out of range
意味
数量がサービスの最小・最大の範囲外です
errorの値
Incorrect comments
意味
コメントの行が空か、1行が500文字を超えています
errorの値
Not enough funds on balance
意味
残高が注文金額より少ないです
errorの値
Incorrect order ID
意味
このアカウントの注文番号ではありません
errorの値
Incorrect refill ID
意味
このアカウントのリフィル番号ではありません
errorの値
Incorrect action
意味
actionの値が6種類のいずれでもありません

リフィルのリクエストには、Refill is not available for this service(リフィル期間のないサービス)、Order is not finished yet(まだ終わっていない注文)、Refill period has ended(リフィル期間が過ぎた注文)、Refill already requested, try again later(進行中のリフィルがあるか、24時間が経っていない注文)が返ることがあります。

APIリクエストは何回まで送れますか?

キー1つにつき1分300回までリクエストできます。ステータスの照会はordersで100件ずつまとめ、サービス一覧は必要なときだけ取得し直せば、余裕をもって使えます。たとえば進行中の注文が1,000件なら、1分に1回、10回のリクエストですべて照会できます。

リセラーは販売価格をどう決めますか?

APIで受け取るrateが1PANEL PLUSの1,000件あたりの価格で、自分のパネルの販売価格はリセラーが自由に決めます。たとえばrateが$2.00のサービスに25%を上乗せして販売すると1,000件あたり$2.50になり、お客様が4,000件を注文すると販売金額は$10.00、1PANEL PLUSで差し引かれる金額は$8.00です。この価格は計算を示すための例です。

API連携はどの順番で進めればよいですか?

  1. 残高をチャージし、ダッシュボードでAPIキーを作成します
  2. balanceでキーと接続を確認します
  3. servicesでサービス一覧を取得し、自分のパネルに掲載します
  4. 最小の数量でaddを一度送り、注文番号を受け取ります
  5. statusでステータスが変わることを確認してから、自動注文をオンにします

curl、PHP、Python、Node.jsのサンプルと全フィールドの説明はAPIドキュメントにあり、その他の質問はよくある質問のAPIカテゴリで確認できます。