要点まとめ
標準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 | なし | サービス一覧 |
| add | service, link, quantity または comments | order(注文番号) |
| status | order 1件または orders(カンマ区切りで100件まで) | charge, start_count, status, remains, currency |
| refill | order | refill(リフィル番号) |
| refill_status | refill | status |
| balance | なし | balance, currency |
- 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 | 受付済みで開始を待っているか、処理へ進んでいる途中 |
| In progress | 送付中 |
| Completed | すべて届いた状態 |
| Partial | 一部が届き、残りの金額が残高に戻った状態 |
| Canceled | 処理できず、全額が残高に戻った状態 |
- 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 | キーがないか、一致しません |
| Too many requests | 1分あたりのリクエスト数を超えました。少し待ってから再送してください |
| Add funds first | 初回チャージが反映された後に注文できます |
| Incorrect service ID | 販売中のサービス番号ではありません |
| Incorrect link | リンクの形式が正しくありません |
| Quantity out of range | 数量がサービスの最小・最大の範囲外です |
| Incorrect comments | コメントの行が空か、1行が500文字を超えています |
| Not enough funds on balance | 残高が注文金額より少ないです |
| Incorrect order ID | このアカウントの注文番号ではありません |
| Incorrect refill ID | このアカウントのリフィル番号ではありません |
| Incorrect action | actionの値が6種類のいずれでもありません |
- 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連携はどの順番で進めればよいですか?
- 残高をチャージし、ダッシュボードでAPIキーを作成します
- balanceでキーと接続を確認します
- servicesでサービス一覧を取得し、自分のパネルに掲載します
- 最小の数量でaddを一度送り、注文番号を受け取ります
- statusでステータスが変わることを確認してから、自動注文をオンにします
curl、PHP、Python、Node.jsのサンプルと全フィールドの説明はAPIドキュメントにあり、その他の質問はよくある質問のAPIカテゴリで確認できます。