로그인 등록

상점

메인 태스크 마켓플레이스 도구 바구니 구독 주문 내역

계정

잔액 충전 프로모션 코드 활성화하기 추천 프로그램

도움말

지원 서비스 자주 묻는 질문 정보 리뷰 블로그 뉴스

개발자

public API reseller API
다크 테마

mrpopularAPI

mrpopularAPI

Reseller API

API 키

API 키를 받으려면 로그인하세요.

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

리셀러 API를 활성화하려면 고객 지원에 문의하세요. 잔액이 100달러 이상이어야 합니다.

API 문서

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();