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 = 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 = 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"에는 수행자가 보고서에 제출한 링크가 포함됩니다(백링크 작업).
서비스 목록
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();