DEMO
DEMO
サービス使い方特長APIFAQBLOG
ログイン
サービス使い方特長APIFAQBLOG
ログイン新規登録

v2 API ドキュメント

リセラー向け HTTP API のリファレンスです。標準的な SMM パネル API 互換のフォーマットで、発注・ステータス確認・リフィル・キャンセルを自動化できます。

エンドポイント

POSThttps://demo.socialgoodworld.com/api/v2
  • すべてのアクションは POST で呼び出します(balance / services のみ動作確認用に GET も可)。
  • レスポンスは常に JSON です。文字コードは UTF-8。
  • テナント・ユーザーは API キーから解決されます。リクエストにアカウント識別子を含める必要はありません。

認証

すべてのリクエストに API キー key=smm_... を含めます。送信方法は次の 3 つに対応し、body が優先・クエリ文字列はフォールバックとして併合されます。

  1. application/x-www-form-urlencoded の body
  2. application/json の body
  3. クエリ文字列(例: ?key=...&action=balance)

キーは ログイン後の API キーページ で発行します。形式は smm_ + ランダム文字列(約 47 文字)で、発行時に一度だけ表示 されます(サーバーにはハッシュのみ保存)。漏えい時はローテーションで即座に無効化できます。

認証に失敗すると一律で 401 { "error": "Invalid API key" } を返します(未指定・形式不正・該当なしを区別しません)。

エンドポイントは ホスト非依存 です。キーがアカウント(テナント)を一意に決めるため、自分のどのパネルドメインから呼び出しても同じアカウントに解決されます。

リクエストの送り方(3 通り・いずれも等価)

# 1) form-encoded
curl -X POST https://demo.socialgoodworld.com/api/v2 \
  -d "key=smm_XXXX...&action=balance"

# 2) JSON
curl -X POST https://demo.socialgoodworld.com/api/v2 \
  -H "Content-Type: application/json" \
  -d '{"key":"smm_XXXX...","action":"balance"}'

# 3) query string (GET, balance/services のみ)
curl "https://demo.socialgoodworld.com/api/v2?key=smm_XXXX...&action=services"

レート制限

API キー単位で、1 分あたりのリクエスト数に上限があります。上限を超えると 429 { "error": "Rate limit exceeded" } を返します。

  • 既定の上限は 300 リクエスト / 分 / キー(固定ウィンドウ)。
  • 429 応答には Retry-After(再試行までの秒数)と X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset ヘッダが付きます。
  • 複数注文の照会は status / refill / cancel の orders(カンマ区切り)を使うと、1 リクエストにまとめられレート消費を抑えられます。

アクション一覧

actionメソッド説明
balanceGET / POST残高を取得
servicesGET / POST提供中のサービス一覧を取得
addPOST注文を発注(残高から自動引き落とし)
statusPOST注文ステータスを取得(単一 / 複数)
refillPOSTリフィルを要求(単一 / 複数)
refill_statusPOSTリフィル要求の進捗を取得
cancelPOSTキャンセルを要求(単一 / 複数)

balance — 残高取得

パラメータ必須説明
action必須"balance"

レスポンス

{
  "balance": "100.8400",
  "currency": "USD"
}

services — サービス一覧

パラメータ必須説明
action必須"services"

レスポンス(配列)

[
  {
    "service": "svc_abc123",      // add の service に渡す ID
    "name": "Instagram Followers",
    "type": "Default",            // サービス種別
    "rate": "5.0000",             // 1000 単位あたりの価格 (USD)
    "min": "10",
    "max": "100000",
    "category": "Instagram",
    "refill": true,               // リフィル対応可否
    "cancel": true,               // キャンセル対応可否
    "dripfeed": false             // ドリップフィード対応可否
  }
]

有効かつ提供元が稼働中のサービスのみ返します。rate は SMM パネル慣例どおり「1000 件あたりの価格」です。

add — 注文発注

パラメータ必須説明
action必須"add"
service必須サービス ID(services の値)
link必須対象の URL
quantity任意数量。サービスの min〜max の範囲。Package 型は省略可(既定 1)
comments任意Custom Comments 型: 1 行 1 コメント
runs任意Drip-feed 型: 実行回数
interval任意Drip-feed 型: 実行間隔(分)
username任意Subscriptions 型: 対象ユーザー名
posts任意Subscriptions 型: 監視する投稿数
min任意Subscriptions 型: 1 投稿あたり最小数
max任意Subscriptions 型: 1 投稿あたり最大数
delay任意Subscriptions 型: 遅延(秒)
expiry任意Subscriptions 型: 期限(YYYY-MM-DD)

リクエスト例

curl -X POST https://demo.socialgoodworld.com/api/v2 \
  -d "key=smm_XXXX...&action=add&service=svc_abc123&link=https://instagram.com/p/...&quantity=1000"

レスポンス(成功)

{
  "order": "ord_abc123",   // この注文の ID
  "charge": "5.00",        // 引き落とし額 (USD)
  "currency": "USD"
}

残高は発注時に即座に引き落とされます。上流プロバイダが発注を拒否した場合は注文が Canceled になり、引き落とし額は自動で残高へ返金されます。残高不足のときは 402 { "error": "Not enough funds" } を返します。

status — 注文ステータス

パラメータ必須説明
action必須"status"
order任意単一の注文 ID
orders任意複数の注文 ID(カンマ区切り)。order と orders はどちらか一方

レスポンス(単一: order 指定)

{
  "charge": "5.0000",
  "start_count": "1200",   // 配信開始時点のカウント
  "status": "In progress",
  "remains": "300",        // 残り配信数
  "currency": "USD"
}

レスポンス(複数: orders 指定)

{
  "ord_abc123": { "charge": "5.0000", "start_count": "1200", "status": "Completed", "remains": "0", "currency": "USD" },
  "ord_bad999": { "error": "Incorrect order ID" }
}

単一指定で注文が見つからない場合は 404 { "error": "Incorrect order ID" }。複数指定では HTTP 200 で、見つからない ID だけ { "error": "Incorrect order ID" } を返します。返却値はローカル DB の値で、上流との同期は sync-orders cron が定期的に行います。

refill — リフィル要求

パラメータ必須説明
action必須"refill"
order任意単一の注文 ID
orders任意複数の注文 ID(カンマ区切り)

レスポンス(単一)

{ "refill": "pending" }

レスポンス(複数)

[
  { "order": "ord_abc123", "refill": "pending" },
  { "order": "ord_def456", "error": "Refill not supported for this service" }
]

リフィルはフラグを立てるだけで、実際の上流呼び出しは sync-orders cron が非同期にディスパッチします。対象は refill 対応かつ Completed / Partial の注文に限られます。

refill_status — リフィル進捗

パラメータ必須説明
action必須"refill_status"
order必須注文 ID

レスポンス

{ "status": "Pending" }   // "Completed" | "Pending" | "Not Found"

Completed = リフィル実行済み、Pending = 要求受付済み(cron 待ち)、Not Found = リフィル要求なし。注文が見つからない場合は 404 { "error": "Incorrect order ID" }。

cancel — キャンセル要求

パラメータ必須説明
action必須"cancel"
order任意単一の注文 ID
orders任意複数の注文 ID(カンマ区切り)

レスポンス(単一・複数とも配列)

[
  { "order": "ord_abc123", "cancel": "1" },
  { "order": "ord_def456", "error": "Order status not eligible" }
]

キャンセルもフラグを立てるだけで、上流呼び出しは sync-orders cron が処理します。キャンセルが確定すると未着分は残高へ返金されます。対象は cancel 対応かつ未完了(Awaiting / Pending / Processing / In progress)の注文です。

注文ステータス値

status意味
Awaiting発注直後。上流への送信待ち
Pending上流が受理し、処理開始待ち
Processing上流が処理中
In progress配信が進行中(残数が減っていく)
Completed配信完了
Partial一部のみ配信。未着分は返金済み
Canceledキャンセル。未着分は残高へ返金済み

サービス種別と add パラメータ

typeadd で使うパラメータ
Defaultservice, link, quantity
Custom Commentsservice, link, comments(1 行 1 コメント)
Drip-feedservice, link, quantity, runs, interval(分)
Subscriptionsservice, username, min, max, posts, delay(秒), expiry(YYYY-MM-DD)
Packageservice, link(quantity はサービス側で固定)

エラーリファレンス

エラーは { "error": "<メッセージ>" } の形で返り、HTTP ステータスで種別を表します。

HTTPerror意味
401Invalid API keyキー未指定 / 形式不正 / 該当キーなし(理由は区別しない)
400Missing actionaction パラメータがない
400Unknown action対応していない action 名
400Missing serviceadd で service がない
400Missing linkadd で link がない
400Invalid quantityquantity が数値でない / 1 未満
400Quantity out of range (min-max)数量がサービスの min〜max 範囲外
400Service not availableサービスが無効 / 他テナント / 提供停止中
400Order rejected by upstream上流プロバイダが発注を拒否(残高は自動返金)
400Missing orderrefill_status で order がない
400Missing order or orders paramstatus / refill / cancel で対象 ID がない
400Refill not supported for this serviceこのサービスはリフィル非対応
400Cancel not supported for this serviceこのサービスはキャンセル非対応
400Order status not eligible現在のステータスではリフィル / キャンセル不可
400Already requestedすでにリフィル / キャンセルを要求済み
400Order has no upstream id yet上流注文 ID 未付与(配信開始前)
402Not enough funds残高不足で発注できない
404Incorrect order ID注文が見つからない(単一 status / refill_status)
405POST required for this actionGET は balance / services のみ対応
429Rate limit exceededレート制限超過。Retry-After 秒後に再試行
500Internal server error上流ネットワーク等の予期しない例外(詳細は秘匿)
API キーはサーバー側でのみ使用し、ブラウザや公開リポジトリに含めないでください。漏えいの疑いがあるときは API キーページからローテーション(再発行)してください。
DEMO
DEMO

SNSを伸ばしたいすべてのクリエイターに、速く・安全・高品質なSMMサービスをお届けします。

サービス

  • フォロワー
  • いいね
  • 再生数
  • コメント

コンテンツ

  • ブログ
  • サービス一覧

サポート

  • ヘルプセンター
  • よくある質問
  • お問い合わせ

アカウント

  • ログイン
  • 新規登録
© 2026 DEMO
APIFAQBLOG
利用規約プライバシー特定商取引法に基づく表記