API 키
API 키를 받으려면 로그인하세요.
리셀러 API를 활성화하려면 고객 지원에 문의하세요. 잔액이 100달러 이상이어야 합니다.
URL
https://mrpopular.net/api/v3.php
요청
POST / GET / JSON
응답
JSON
인증
username
password
key = 계정의 문서 페이지에서 받은 API 키 (username과 password 대신)
잔액 조회
action = balance
{"balance":123.456}
주문 상태
action = status
order = (Order id)
{"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.
리필
action = refill
order = 주문 번호
{"refill":{"order":142058,"status":"requested","message":"refill requested"}}
리필이 있는 서비스만, 주문 내역의 버튼과 동일합니다. status: requested 시작됨, in_progress 진행 중, wait_24h 하루 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 = executions
order = (Order id)
offset = (optional, default 0)
limit = (optional, default 100, max 500)
{"total":3,"count":1,"offset":0,"executions":[{"executor":"ID972036","date":"2026-06-25 20:32:40","screenshots":["https://mrpopular.net/etask/includes/img/...jpg"],"links":[]}]}
실제 수행자가 완료한 주문에만 해당됩니다. "links"에는 수행자가 보고서에 제출한 링크가 포함됩니다(백링크 작업).
서비스 목록
action = service
{"service":{"1":{"social_network":"Facebook","service":"page likes","quality":"medium quality","id":"1","price":0.0149,"currency":"USD","min":"100","max":"900000","start":"30 min.","speed":"100/day","description":"HQ never drop"},...}}
주문 상태 설명
0 : Pending / Processing
1 : Processing
2 : Completed
3 : Error
4 : In queue
5 : Returned
신규 주문
action = order
service = (Service ID)
quantity
option = 서비스의 추가 필드: action=options의 id(댓글 주제, 리뷰 평점, 지역, 투표 항목) 또는 자유 텍스트(댓글 작성자 아이디, 검색어); 필드 종류와 설명은 option_type과 option_label에 있습니다
comment = 댓글 또는 리뷰 텍스트(한 줄에 하나), 또는 AI 리뷰의 요구사항, 또는 주제 댓글의 직접 입력 주제(option=0일 때); comment_label이 입력 내용을 안내합니다
link
lang = 일부 서비스 실행자 언어: any, ru 또는 en (기본값 any)
gender = 일부 서비스 리뷰 작성자 성별: any, m, f (기본값 any)
day_limit = 일부 서비스의 하루 최대 실행 수, 0 = 제한 없음
{"order":"142058"}
오류
{"errorcode":0} API is not activated
{"errorcode":1} USERNAME or PASSWORD is empty
{"errorcode":2} ACTION is empty
{"errorcode":4} ORDER is empty
{"errorcode":5} wrong ORDER
{"errorcode":6} SERVICE is empty
{"errorcode":7} QUANTITY is empty
{"errorcode":8} LINK is empty
{"errorcode":9} Not enough funds on balance
{"errorcode":10} Quantity less than minimum
PHP 코드 예시
class Api
{
public $api_url = 'https://mrpopular.net/api/v3.php';
public $username = ''; // your username
public $password = ''; // your password
public function order($data) {
return json_decode($this->connect(array_merge(array(
'username' => $this->username,
'password' => $this->password,
'action' => 'order'
), $data)));
}
public function status($order) {
return json_decode($this->connect(array(
'username' => $this->username, 'password' => $this->password,
'action' => 'status', 'order' => $order)));
}
public function executions($order, $offset = 0, $limit = 100) {
return json_decode($this->connect(array(
'username' => $this->username, 'password' => $this->password,
'action' => 'executions', 'order' => $order,
'offset' => $offset, 'limit' => $limit)));
}
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) {
$ch = curl_init($this->api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$result = curl_exec($ch);
return $result === false ? false : $result;
}
}
$api = new Api();
// $balance = $api->balance();
// $order = $api->order(array('service' => 462, 'quantity' => 100, 'link' => 'https://...'));
// $status = $api->status(142058);
// $shots = $api->executions(142058);
// $services = $api->service();