iniciar sesión registrarse

Tienda

inicio mercado de tareas herramientas carrito suscripciones pedidos

Cuenta

reponer la balanza activar un código promocional programa de afiliados

Ayuda

apoyo FAQ información opiniones blog noticias

Desarrolladores

public API reseller API
Tema oscuro

mrpopularAPI

mrpopularAPI

Reseller API

Clave API

Inicie sesión para obtener su clave API.

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

Para activar la API de reseller, escribe al servicio de soporte. Debes tener al menos 100 dolares en tu saldo.

Documentacion de la API

URL

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

Solicitud

POST / GET / JSON

Respuesta

JSON

Autorizacion

username

password

key = clave API de la página de documentación de su cuenta (en lugar de username y password)

Consultar saldo

action = balance

{"balance":123.456}

Estado del pedido

action = status

order = (Order id)

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

order = 142058,142059 (varios números separados por comas, hasta 100 por solicitud; la respuesta lista cada número en el campo orders)


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

Cancelar un pedido


action = cancel

order = número de pedido


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

Disponible para parte de los servicios (en v3 casi todos), mientras el pedido está en curso: se devuelve la parte no entregada. Si la cancelación no está disponible para el servicio, la respuesta es errorcode 13; pedidos terminados o aún no iniciados devuelven errorcode 14.

Reposición (refill)


action = refill

order = número de pedido


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

Solo servicios con reposición, igual que el botón del historial de pedidos. status: requested iniciado, in_progress en curso, wait_24h una vez al día, expired plazo vencido, queued en cola del operador. Sin reposición: errorcode 16.

Campo adicional del servicio


action = options

service = ID del servicio


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

option_type: none (sin campo), text (texto libre en option), select, geo, rating, topic (en option va un id de options; para topic el valor 0 significa tema propio como texto en comment). Los mismos option_type, option_label y comment_label se devuelven en action=service.

Reclamación sobre una ejecución


action = dispute

order = número de pedido (posición) del historial de pedidos

execution = id de la ejecución de action=executions

reason = motivo, 5+ caracteres: qué está mal en la captura (publicación equivocada, texto equivocado, acción no mostrada)


{"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}}

Solo para pedidos realizados por ejecutores reales y solo para ejecuciones aceptadas de no más de 30 días. La reclamación la revisa el arbitraje, normalmente en un día; el resultado se ve en action=executions, campo dispute.status: pending (en revisión), confirmed (defecto confirmado: la ejecución se retira y se rehará), rejected (la ejecución cumple con la tarea), neutral (sin cambios). Límite: puede impugnar ejecuciones por hasta el 20% de sus pedidos pagados en 90 días; cada reclamación reserva el precio unitario del pedido, mínimo 5 RUB; confirmed libera la reserva, rejected y neutral la consumen. El límite restante está en dispute_budget.

errorcode 21 el pedido no lo realizan ejecutores reales (sin reclamación), errorcode 23 wrong EXECUTION (no está en este pedido), 24 la ejecución no está aceptada, 25 plazo de reclamación terminado, 26 ya impugnada, 27 REASON menor de 5 caracteres, 28 límite alcanzado (dispute_budget en la respuesta).

Ejecuciones del pedido (capturas)

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}}

id de la ejecución se usa en action=dispute; dispute: estado de la reclamación o null; dispute_budget: límite de reclamaciones de la cuenta.

Solo para pedidos realizados por ejecutores reales. "links" contiene los enlaces que los ejecutores dejaron en sus informes (tareas de backlinks).

Lista de servicios

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"},...}}

Decodificacion de estados del pedido

0 : Pending / Processing

1 : Processing

2 : Completed

3 : Error

4 : In queue

5 : Returned

Nuevo pedido

action = order

service = (Service ID)

quantity

option = campo adicional del servicio: un id de action=options (tema de comentarios, calificación de reseña, geo, opción de encuesta) o texto libre (usuario del autor del comentario, consulta de búsqueda); el tipo y la etiqueta del campo están en option_type y option_label

comment = textos de comentarios o reseñas (uno por línea), o el brief para una reseña con IA, o su propio tema para comentarios temáticos (con option=0); comment_label indica qué espera el campo

link

lang = idioma del ejecutor para parte de los servicios: any, ru o en (por defecto cualquiera)

gender = género del autor de la reseña para parte de los servicios: any, m, f (por defecto cualquiera)

day_limit = máximo de ejecuciones por día para parte de los servicios, 0 = sin límite

{"order":"142058"}

Errores

{"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

Ejemplo de codigo 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();