入り口 サインアップ

ショップ

ホーム タスクマーケット 道具 カード 購読 注文履歴

アカウント

バランスを補充する プロモーションコードを有効にする アフィリ エイト プログラム

ヘルプ

サポート よくある質問 情報 レビュー ブログ ニュース

開発者向け

public API リセラーAPI
ダークテーマ

mrpopularAPI

mrpopularAPI

Public API

APIキー

APIキーを取得するにはログインしてください。

user@mrpopular: ~/api — v2 docs
user@mrpopular:~/api$ curl -d "username=&password=&action=service" https://mrpopular.net/api/v2.php

API ドキュメント


リンク


https://mrpopular.net/api/v2.php


問い合わせ


POST / GET / JSON


回答


JSON

ログイン


username


password

key = アカウントのドキュメントページで取得したAPIキー(username と password の代わり)

バランスを確認する


action = balance

currency = JPY


{"balance":123.456}

注文のステータスを確認する


action = status

order = (注文番号)


{"order":{"status":"2","completed":"0","quantity":"250","date":"2018-09-27 17:34:49"}}

order = 142058,142059(複数の注文番号をカンマ区切りで指定、1リクエストにつき最大100件。結果は orders フィールドに注文番号ごとに返ります)


{"orders":{"142058":{"status":"2","completed":"250","quantity":"250","date":"2026-10-01 12:00:00"},"142059":{"error":"wrong ORDER"}}}

注文のキャンセル


action = cancel

order = 注文番号


{"cancel":{"order":142058,"cancelled":true,"delivered":40,"refund":12.5,"currency":"RUB"}}

一部のサービスで利用可能(v3 ではほぼすべて)、注文実行中に限ります。未納品分が返金されます。サービスがキャンセルに対応していない場合は errorcode 13、完了済みまたは未開始の注文は errorcode 14 です。

補充(refill)


action = refill

order = 注文番号


{"refill":{"order":142058,"status":"requested","message":"refill requested"}}

補充対応サービスのみ、注文履歴のボタンと同じ動作です。status:requested 開始、in_progress 実行中、wait_24h 1日1回、expired 期限切れ、queued オペレーター待ち。補充なしの場合は errorcode 16。

サービスの追加項目


action = options

service = サービス ID


{"service_id":6671,"option_type":"rating","option_label":"...","comment_label":"...","options":{"201":"5","202":"4-5"}}

option_type:none(項目なし)、text(option に自由テキスト)、select、geo、rating、topic(option に options の id を指定。topic で 0 は comment に独自テーマをテキストで指定)。action=service でも同じ option_type、option_label、comment_label が返ります。

実行への異議申し立て


action = dispute

order = 注文履歴の注文(ポジション)番号

execution = action=executions の実行 id

reason = 理由、5文字以上:スクリーンショットの何が問題か(投稿が違う、テキストが違う、操作が示されていない)


{"status":"pending","dispute":{"id":12,"status":"pending","created":"2026-10-24 12:00:00","decided":null},"execution":34099021,"order":594181140,"dispute_budget":{"turnover_rub":50659.56,"limit_rub":10131.91,"used_rub":29.8,"available_rub":10102.11,"min_per_dispute_rub":5,"percent":20,"days":90,"window_days":30}}

実際の実行者が行う注文のみ、かつ承認から30日以内の実行のみ対象です。異議は仲裁が審査し、通常1日以内に決定します。結果は action=executions の dispute.status に表示されます:pending(審査中)、confirmed(不備が確認され、実行は取り消されてやり直し)、rejected(実行はタスクに適合)、neutral(変更なし)。上限:過去90日間の支払済み注文の20%までの実行に異議を申し立てられます。各異議は注文の単価(最低5ルーブル)を上限から確保し、confirmed は確保分を戻し、rejected と neutral は消費します。残りの上限は dispute_budget にあります。

errorcode 21 注文は実際の実行者によるものではありません(異議不可)、errorcode 23 wrong EXECUTION(この注文に含まれない)、24 実行が承認されていない、25 異議申し立て期間終了、26 既に申し立て済み、27 REASON が5文字未満、28 上限到達(応答に dispute_budget)。

サービスのリストを手に入れる


action = service


{"service":{"1":{"social_network":"Facebook","service":"page likes","quality":"medium quality","id":"1","price":0.0149,"currency":"JPY","min":"100"},...}}

注文のステータス


0 : 実行中、統計なし


1 : 実行中、統計あり


2 : 実行された


3 : エラー


4 : 順番で


5 : 返還されました

新たな注文


action = order

service = (ID サービス)

quantity = 数

option = サービスの追加項目:action=options の id(コメントのテーマ、レビューの評価、地域、投票の選択肢)または自由テキスト(コメント投稿者のユーザー名、検索語)。項目の種類と説明は option_type と option_label で確認できます

comment = コメントまたはレビューのテキスト(1行に1件)、または AI レビューの指示、またはテーマコメントの独自テーマ(option=0 の場合)。comment_label に入力内容の説明があります

link = リンク

lang = 一部のサービスの実行者の言語:any、ru、en(既定は指定なし)

gender = 一部のサービスのレビュー投稿者の性別:any、m、f(既定は指定なし)

day_limit = 一部のサービスの1日あたりの最大実行数、0 = 制限なし


{"order":"142058"}

エラー


{"errorcode":1} USERNAME または PASSWORD 送信しません


{"errorcode":2} ACTION 送信しません


{"errorcode":3} 選択した通貨はありません


{"errorcode":4} お客様の注文番号は送信できません


{"errorcode":5} わからない注文番号


{"errorcode":6} SERVICE 送信できません


{"errorcode":7} 数は送信されません


{"errorcode":8} リンクは送信されません


{"errorcode":9} 十分な残高がない


{"errorcode":10} 数は最小値より小さい

php コードの例


            class Api
            {
              //設定
              public $api_url = 'https://mrpopular.net/api/v2.php'; // API のためのリンク
              public $username = ''; //お客さん username
              public $password = ''; //お客さん password
              public $currency = 'JPY';

                public function order($data) { //注文を追加する
                    $post = array_merge(array(
                      'username' => $this->username, 
                      'password' => $this->password,
                      'action' => 'order'
                    ), $data);
                    return json_decode($this->connect($post));
                }

                public function status($order) { //注文のステータスを手に入れる
                    return json_decode($this->connect(array(
                        'username' => $this->username, 
                        'password' => $this->password,
                        'action' => 'status',
                        'order' => $order
                    )));
                }

                public function service() { //サービスの一覧を手に入れる
                    return json_decode($this->connect(array(
                        'username' => $this->username, 
                        'password' => $this->password,
                        'action' => 'service',
                    )));
                }

                public function balance() { //バランスを手に入れる
                    return json_decode($this->connect(array(
                        'username' => $this->username, 
                      'password' => $this->password,
                        'action' => 'balance',
                    )));
                }


                function connect($post) {
                    $_post = Array();
                    if (is_array($post)) {
                        foreach ($post as $name => $value) {
                            $_post[] = $name.'='.urlencode($value);
                        }
                    }

                    $ch = curl_init($this->api_url);
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($ch, CURLOPT_POST, 1);
                    curl_setopt($ch, CURLOPT_HEADER, 0);
                    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
                    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
                    if (is_array($post)) {
                        curl_setopt($ch, CURLOPT_POSTFIELDS, join('&', $_post));
                    }
                    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
                    $result = curl_exec($ch);
                    if (curl_errno($ch) != 0 && empty($result)) {
                        $result = false;
                    }
                    curl_close($ch);
                    return $result;
                }
            }

            //APIを始動させる
            $api = new Api();

            //バランスを確認する
            /*$balance = $api->balance();
            print_r($balance);*/

            //新たな注文
            /*$order = $api->order(array(
              'service' => 462, 
              'quantity' => $qnty, 
              'link' => $src
            ));
            print_r($order);*/

            //注文のステータス
            /*$status = $api->status(12232);
            print_r($status);*/

            //サービスの一覧
            /*$service = $api->service();
            print_r($service);*/
          

注文の実行履歴(スクリーンショット)


action = executions

order = (Order id)

offset = (optional, default 0)

limit = (optional, default 100, max 500)


{"total":3,"count":1,"offset":0,"executions":[{"id":34099021,"executor":"ID972036","date":"2026-06-25 20:32:40","screenshots":["https://mrpopular.net/etask/includes/img/...jpg"],"links":[],"dispute":null}],"dispute_budget":{"limit_rub":10131.91,"used_rub":29.8,"available_rub":10102.11}}

execution の id は action=dispute に使います。dispute:その実行の異議の状態または null。dispute_budget:アカウントの異議上限。


実際の実行者が行う注文のみ対象。links には実行者がレポートで提出したリンクが含まれます(バックリンク案件)。