PastePanel
All articles
Article 4 min read

SMM Panel API連携 完全ガイド(PHP・Python・Node.js 実装例つき)

P

PastePanel Team

Insights for panel operators

SMM panelのAPIを使いこなせるかどうかは、SMMビジネスを手作業のショップから完全自動のプラットフォームへと引き上げるための分岐点です。この記事では、業界で事実上の標準となっている perfect panel スタイルのAPI仕様に沿って、SMM panel API連携の全体像を PHPPythonNode.js の実装例とともに深く解説します。注文の自動化、drip-feed、残高照会、refillprovider連携、reseller向けの再販自動化まで、実際のコードを交えながら順を追って説明していきます。PastePanel(pastepanel.com)は、こうしたAPIを標準搭載した white-labelSMM panel SaaSであり、自分のブランドで InstagramTikTokYouTubeTelegramFacebook 向けのサービスを提供できます。

なぜSMM panel APIの連携が重要なのか

SMMパネルを運営していると、注文の受付、上流の provider への転送、ステータス確認、残高の同期といった作業が急速に増えていきます。これらを管理画面から手作業で行うのは、注文数が1日数十件を超えたあたりで現実的ではなくなります。APIを連携すれば、外部サイト・独自のフロントエンド・Telegram bot・在庫管理システムなどから、注文の作成やステータス取得をプログラムから直接行えます。

具体的なメリットは明確です。第一に、自社サイトのチェックアウトフローに SMM panel を裏側で組み込み、顧客には自社ブランドだけを見せられます。第二に、reseller が自分の顧客向けに注文を流し込む「二次販売」を完全自動化できます。第三に、上流 provider の在庫やレートをスクリプトで定期的に取得し、価格を自動更新できます。APIは、単なる便利機能ではなく、スケールする SMM panel ビジネスの心臓部だと考えてください。

perfect panel スタイルのAPI仕様の基本構造

SMM業界の多くのパネル、そして PastePanel は、perfect panel 互換として広く知られる共通のAPI仕様を採用しています。これは特定の製品を指すのではなく、業界で広く使われる事実上の標準フォーマットを意味します。この共通仕様のおかげで、あるパネル向けに書いた連携コードを、ほぼそのまま別のパネルにも流用できます。

基本構造は非常にシンプルです。

  • エンドポイントhttps://あなたのパネル.com/api/v2 のような単一のURL
  • メソッド:常に POST
  • 認証:リクエストごとにパラメータ key にAPIキーを付与
  • アクション指定:パラメータ action で操作を指定(services / add / status / balance / refill / cancel など)
  • レスポンス:JSON形式

つまり、すべての操作は「同じURLに POST し、keyaction と各種パラメータを送る」という一貫したパターンで表現されます。この統一性こそが perfect panel スタイルAPIの最大の強みであり、学習コストを大きく下げてくれます。

認証とAPIキーのセキュリティ

APIキーは、あなたのパネルアカウントに対する完全なアクセス権を持つ秘密情報です。漏洩すれば残高を使い切られる恐れがあるため、扱いには細心の注意が必要です。実装上、次の原則を必ず守ってください。

  • APIキーをソースコードやフロントエンドのJavaScriptに直書きしない。環境変数やシークレットマネージャから読み込む。
  • 通信は必ずHTTPS(TLS)で行い、証明書検証を無効化しない。
  • 上流 provider のAPIキーをサーバー側に保存する場合は暗号化して保管する。PastePanel では上流キーを Fernet で暗号化して保存し、平文でデータベースに残さない設計になっています。
  • キーが漏れた疑いがあれば、管理画面から即座に再発行(rotate)する。

API連携を「動くこと」だけで満足せず、最初からセキュリティを織り込んで設計することが、長く安定した SMM panel 運営につながります。

主要なAPIアクション一覧

連携で日常的に使うアクションは限られています。まずこの一覧を押さえれば、実装の全体像がつかめます。

  • services:提供中のサービス一覧(ID、名前、レート、最小/最大数量、drip-feedrefill対応可否など)を取得
  • add:新規注文を作成。注文タイプに応じてパラメータが変わる
  • status:単一注文のステータス(Pending / In progress / Completed / Partial / Canceled)と残数・実行数・課金額を取得
  • status(複数)orders にカンマ区切りでID群を渡し、一括でステータス取得
  • refill:減少した followers などの補充をリクエスト
  • refill_statusrefillの進捗を確認
  • cancel:注文のキャンセルをリクエスト
  • balance:アカウント残高と通貨を取得

この perfect panel 互換のアクション体系は PastePanel でもそのまま利用でき、既存の連携資産を活かせます。

注文タイプ別のパラメータ

APIで最も間違えやすいのが、注文タイプごとのパラメータの違いです。PastePanel は Default / Package / Custom Comments / Subscriptions / Drip-Feed / Mentions / Poll といった多彩な注文タイプに対応しており、action=add に渡すパラメータが型ごとに異なります。

  • Defaultservice, link, quantityfollowerslikesviews の基本形)
  • Packageservice, link(数量はパッケージ側で固定)
  • Custom Commentsservice, link, comments(改行区切りのコメント本文)
  • Drip-Feedservice, link, quantity, runs, interval(分割配信の回数と間隔)
  • Subscriptionsservice, username, min, max, posts, delay(新規投稿への自動配信)
  • Mentionsservice, link, quantity, usernames など(メンション系)
  • Pollservice, link, quantity, answer_number(投票の選択肢)

特に drip-feed は自然な伸びを演出するために重要で、quantity(1回あたりの数量)×runs(回数)が総配信量になる点を取り違えないよう注意してください。

PHPでのSMM panel API実装

まずは PHP での実装例です。cURLを使い、共通のリクエスト関数を作っておくと保守が楽になります。

<?php
$api_url = 'https://your-panel.com/api/v2';
$api_key = getenv('SMM_API_KEY'); // 環境変数から取得

function smmApi(string $url, string $key, array $params): array {
    $params['key'] = $key;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
        throw new RuntimeException('cURL error: ' . curl_error($ch));
    }
    curl_close($ch);
    return json_decode($response, true) ?? [];
}

// サービス一覧を取得
$services = smmApi($api_url, $api_key, ['action' => 'services']);

// 新規注文(Default)を作成
$order = smmApi($api_url, $api_key, [
    'action'   => 'add',
    'service'  => 1,
    'link'     => 'https://instagram.com/username',
    'quantity' => 1000,
]);

if (isset($order['order'])) {
    echo 'Order ID: ' . $order['order'];
} else {
    echo 'Error: ' . ($order['error'] ?? 'unknown');
}

ポイントは、curl_errno によるネットワークエラーの検出と、レスポンスに order が含まれるかどうかのチェックを分けている点です。HTTPが成功してもAPI側が error を返すケースがあるため、両方を必ず確認します。

PythonでのSMM panel API実装

次に Python です。requests ライブラリを使い、再利用しやすいクライアントクラスにまとめます。

import os
import requests

class SmmPanelClient:
    def __init__(self, api_url: str, api_key: str):
        self.api_url = api_url
        self.api_key = api_key
        self.session = requests.Session()

    def _post(self, payload: dict) -> dict:
        payload["key"] = self.api_key
        resp = self.session.post(self.api_url, data=payload, timeout=30)
        resp.raise_for_status()
        return resp.json()

    def services(self) -> list:
        return self._post({"action": "services"})

    def add_order(self, service: int, link: str, quantity: int) -> dict:
        return self._post({
            "action": "add",
            "service": service,
            "link": link,
            "quantity": quantity,
        })

    def add_drip_feed(self, service, link, quantity, runs, interval) -> dict:
        return self._post({
            "action": "add", "service": service, "link": link,
            "quantity": quantity, "runs": runs, "interval": interval,
        })

    def status(self, order_id: int) -> dict:
        return self._post({"action": "status", "order": order_id})

    def balance(self) -> dict:
        return self._post({"action": "balance"})


client = SmmPanelClient("https://your-panel.com/api/v2",
                        os.environ["SMM_API_KEY"])
order = client.add_order(service=1,
                         link="https://tiktok.com/@user",
                         quantity=500)
print(order.get("order") or order.get("error"))

Session を使うことでコネクションが再利用され、大量のリクエストを送る reseller 用途でも高速に動作します。PastePanel 自体が非同期の Python / FastAPI で構築されているため、こうしたPythonクライアントとの相性は特に良好です。

Node.jsでのSMM panel API実装

最後に Node.js の例です。axiosasync/await を使い、モダンなクラス設計にします。

import axios from "axios";

class SmmPanel {
  constructor(apiUrl, apiKey) {
    this.apiUrl = apiUrl;
    this.apiKey = apiKey;
  }

  async #request(params) {
    const body = new URLSearchParams({ ...params, key: this.apiKey });
    const { data } = await axios.post(this.apiUrl, body.toString(), {
      headers: { "Content-Type": "application/x-www-form-urlencoded" },
      timeout: 30000,
    });
    return data;
  }

  services() {
    return this.#request({ action: "services" });
  }

  addOrder(service, link, quantity) {
    return this.#request({ action: "add", service, link, quantity });
  }

  status(orderId) {
    return this.#request({ action: "status", order: orderId });
  }

  balance() {
    return this.#request({ action: "balance" });
  }
}

const panel = new SmmPanel("https://your-panel.com/api/v2",
                           process.env.SMM_API_KEY);

const order = await panel.addOrder(
  1, "https://youtube.com/watch?v=xxxxxxxx", 2000);
console.log(order.order ?? order.error);

URLSearchParams を使うことで、application/x-www-form-urlencoded 形式のボディを安全に組み立てられます。Telegram bot や Facebook 連携のバックエンドをNode.jsで書いている場合、このクライアントをそのまま流用できます。

エラーハンドリングとベストプラクティス

本番運用では、正常系より異常系の設計が品質を左右します。以下の点を必ず組み込んでください。

  • 冪等性(idempotency):注文作成をリトライする際、同じ注文が二重に発行されないよう、自社側で一意キーを管理し、成功レスポンスの order を保存してから次に進む。
  • 残高チェックaction=balance を定期取得し、USDT 建てなどの残高が閾値を下回ったらアラートを出す。残高切れは provider への転送失敗の主因です。
  • ステータスのポーリング間隔status を高頻度で叩きすぎない。複数注文は orders パラメータで一括取得し、リクエスト数を抑える。
  • タイムアウトと再試行:ネットワークエラー時は指数バックオフで再試行し、API側の error は再試行しても解決しないため区別して扱う。
  • レート制限の尊重:短時間の大量リクエストは制限対象になり得るため、キューで平準化する。

これらは perfect panel 互換のどのAPIでも通用する普遍的な原則であり、PastePanel の30種類の管理モジュールと組み合わせることで、監視・請求・在庫管理まで一貫して自動化できます。

reseller・provider連携の自動化

APIの真価は「連鎖」にあります。あなたが顧客からAPIで注文を受け取り、それを上流 provider へAPIで転送し、返ってきた注文IDでステータスを追跡する——この一連を自動化すれば、あなた自身が完全な自動 SMM panel になります。PastePanel は複数の上流 provider を登録でき、各社のAPIキーを暗号化保管したうえで残高監視も行えるため、reseller ビジネスの土台として最適です。顧客向けにはユーザーパネルと完全なAPI(PHP/Python/Node.js対応)を提供でき、決済も USDTBinanceCryptomus、NOWPayments、CoinPayments、Payeer、Stripe、bKash、ABA、手動入金と、世界中の手段に対応します。

SMM panel API連携の主なメリット

  • 完全自動化:注文受付から provider 転送、ステータス同期まで人手を介さず処理
  • マルチ言語対応:PHP・Python・Node.jsのどれからでも同一仕様で連携可能
  • 業界標準互換perfect panel スタイル仕様のため既存コードを流用しやすい
  • 柔軟な注文タイプ:Default・Package・Custom Comments・drip-feed・Subscriptions・Mentions・Pollに対応
  • 強固なセキュリティ:上流キーを Fernet 暗号化、HTTPS必須、キー再発行が容易
  • スケーラビリティ:非同期 Python / FastAPI基盤で高速・安全
  • マルチプラットフォーム成長InstagramTikTokYouTubeTelegramFacebookfollowerslikesviewssubscribers を一元管理

まとめ:あなた自身のSMM panelを無料で始めよう

SMM panel APIの連携は、一度基本構造を理解してしまえば決して難しいものではありません。単一エンドポイントに POST し、keyaction を送る——この perfect panel 互換のシンプルな設計が、PHP・Python・Node.jsのどの言語からでもあなたのビジネスを自動化してくれます。あとは、その連携を載せる信頼できる white-label の土台があれば十分です。

PastePanel(pastepanel.com)なら、独自ドメイン・独自ブランド・独自テーマで、フルAPI搭載の SMM panel を今すぐ立ち上げられます。ここで紹介したAPIをそのまま使い、reseller として、あるいは provider として、世界中の顧客に InstagramTikTokYouTubeTelegramFacebook の成長サービスを提供しましょう。PastePanel であなたのSMMパネルを無料で開始し、最初の注文を自動化する第一歩を踏み出してください。

Your brand, your revenue

Stop reading, start building.

The best lessons come from doing. Launch your own panel in five minutes.

Launch your panel