Clave API
Inicie sesión para obtener su clave API.
URL
https://mrpopular.net/api/v2.php
Solicitud
POST / GET / JSON
Respuesta
JSON
Autorización
username
password
key = clave API de la página de documentación de su cuenta (en lugar de username y password)
Averiguar balance
action = balance
currency = EUR
{"balance":123.456}
Obtener estado del balance
action = status
order = (pedido 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.
Obtener 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"},...}}
Descripción del esrado del pedido
0 : pendiente/procesamiento
1 : procesamiento
2 : completado
3 : error
4 : error
5 : devuelto
devuelto
action = order
service = (servicio ID)
quantity = cantidad
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 = enlace
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":1} USERNAME o PASSWORD no está indicado
{"errorcode":2} ACTION no está indicada
{"errorcode":3} CURRENCY no está disponible
{"errorcode":4} ORDER no está disponible
{"errorcode":5} ORDER incorrecto
{"errorcode":6} SERVICE no está disponible
{"errorcode":7} QUANTITY no está disponible
{"errorcode":8} LINK no está disponible
{"errorcode":9} Fondos insuficientes en el balance
{"errorcode":10} Fondos insuficientes en el balance
Ejemplos del código php
class Api
{
//configuración
public $api_url = 'https://mrpopular.net/api/v2.php'; // API URL
public $username = ''; //tu username
public $password = ''; //tu password
public $currency = 'EUR';
public function order($data) { // añadir pedido
$post = array_merge(array(
'username' => $this->username,
'password' => $this->password,
'action' => 'order'
), $data);
return json_decode($this->connect($post));
}
public function status($order) { // obtener estado de pedido
return json_decode($this->connect(array(
'username' => $this->username,
'password' => $this->password,
'action' => 'status',
'order' => $order
)));
}
public function service() { // obtener lista de servicios
return json_decode($this->connect(array(
'username' => $this->username,
'password' => $this->password,
'action' => 'service',
)));
}
public function balance() { // obtener 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;
}
}
//empezar API
$api = new Api();
//balance revisar
/*$balance = $api->balance();
print_r($balance);*/
//nuevo pedido
/*$order = $api->order(array(
'service' => 462,
'quantity' => $qnty,
'link' => $src
));
print_r($order);*/
//nuevo pedido
/*$status = $api->status(12232);
print_r($status);*/
//obtener lista de servicios
/*$service = $api->service();
print_r($service);*/
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":[{"executor":"ID972036","date":"2026-06-25 20:32:40","screenshots":["https://mrpopular.net/etask/includes/img/...jpg"],"links":[]}]}
Solo para pedidos realizados por ejecutores reales. "links" contiene las URL que los ejecutores indicaron en sus informes (tareas de backlinks).