API 密钥
登录后即可获取 API 密钥。
链接
https://mrpopular.net/api/v2.php
查询
POST / GET / JSON
回答
JSON
登录
username
password
key = 账户内文档页面的 API 密钥(代替 username 和 password)
显示余额
action = balance
currency = CNY
{"balance":123.456}
查询订单状态
action = status
order = (订单号码)
{"order":{"status":"2","completed":"0","quantity":"250","date":"2018-09-27 17:34:49"}}
order = 142058,142059(多个订单号用逗号分隔,每次最多 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 每天一次,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天内已通过的执行。申诉由仲裁审核,通常一天内有结果;结果见 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”:”CNY”,”min":"100"},...}}
订单状态
0 : 处理中,无统计信息
1 : 处理中,有统计信息
2 : 已处理完毕
3 : 处理错误
4 : 排队中
5 : 已退款
新订单
action = order
service = (服务ID)
quantity = 数量
option = 服务的附加字段:来自 action=options 的 id(评论主题、评价星级、地区、投票选项)或自由文本(评论作者用户名、搜索词);字段类型和说明见 option_type 和 option_label
comment = 评论或评价文本(每行一条),或 AI 评价的要求说明,或主题评论的自定义主题(option=0 时);comment_label 说明该字段需要填什么
link = 链接
lang = 部分服务的执行者语言:any、ru 或 en(默认不限)
gender = 部分服务的评价作者性别:any、m、f(默认不限)
day_limit = 部分服务每日最多完成数,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 URL
public $username = ''; //您的 username
public $password = ''; //您的 password
public $currency = 'CNY';
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 为执行者在报告中提交的链接(外链任务)。