сonnexion inscription

Boutique

accueil marché des tâches outils panier abonnements historique des commandes

Compte

compléter le solde ajouter un code promo programme d'affiliation

Aide

assistance FAQ information avis blog actualités

Développeurs

public API reseller API
Thème sombre

mrpopularAPI

mrpopularAPI

Public API

Clé API

Connectez-vous pour obtenir votre clé API.

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

Documentation de l'API


Lien


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


Demandes


POST / GET / JSON


Réponses


JSON

Autorisation


username


password

key = clé API de la page de documentation de votre compte (à la place de username et password)

Apprendre le solde


action = balance

currency = EUR


{"balance":123.456}

Vérifier le statut de la commande


action = status

order = (numéro de commande)


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

order = 142058,142059 (plusieurs numéros séparés par des virgules, jusqu'à 100 par requête ; la réponse liste chaque numéro dans le champ orders)


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

Annuler une commande


action = cancel

order = numéro de commande


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

Disponible pour une partie des services (en v3 presque tous), tant que la commande est en cours : la partie non livrée est remboursée. Si l'annulation n'est pas disponible pour le service, la réponse est errorcode 13 ; commandes terminées ou pas encore lancées : errorcode 14.

Réapprovisionnement (refill)


action = refill

order = numéro de commande


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

Services avec refill uniquement, comme le bouton de l'historique des commandes. status : requested lancé, in_progress en cours, wait_24h une fois par jour, expired délai dépassé, queued en file pour l'opérateur. Sans refill : errorcode 16.

Champ supplémentaire du service


action = options

service = ID du service


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

option_type : none (pas de champ), text (texte libre dans option), select, geo, rating, topic (un id de options dans option ; pour topic la valeur 0 = votre propre sujet en texte dans comment). Les mêmes option_type, option_label et comment_label sont renvoyés par action=service.

Contestation d'une exécution


action = dispute

order = numéro de commande (position) de l'historique des commandes

execution = id de l'exécution depuis action=executions

reason = motif, 5 caractères ou plus : ce qui ne va pas sur la capture (mauvaise publication, mauvais texte, action non montrée)


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

Uniquement pour les commandes réalisées par de vrais exécutants et uniquement pour les exécutions acceptées de moins de 30 jours. La contestation est examinée par l'arbitrage, généralement sous 24 heures ; le résultat apparaît dans action=executions, champ dispute.status : pending (en cours), confirmed (défaut confirmé : l'exécution est retirée et sera refaite), rejected (l'exécution correspond à la tâche), neutral (sans changement). Limite : vous pouvez contester des exécutions jusqu'à 20 % de vos commandes payées sur 90 jours ; chaque contestation réserve le prix unitaire de la commande, au minimum 5 RUB ; confirmed libère la réserve, rejected et neutral la consomment. Le reste de la limite est dans dispute_budget.

errorcode 21 la commande n'est pas réalisée par de vrais exécutants (pas de contestation), errorcode 23 wrong EXECUTION (absente de cette commande), 24 exécution non acceptée, 25 délai de contestation dépassé, 26 déjà contestée, 27 REASON de moins de 5 caractères, 28 limite atteinte (dispute_budget dans la réponse).

Obtenir la liste de services


action = service


{"service":{"1":{"social_network":"Facebook","service":"page likes","quality":"medium quality","id":"1","price":0.0149,"currency":"EUR","min":"100"},...}}

Statuts de commande


0 : en cours d'exécution, sans statistiques


1 : en cours d'exécution, il y a des statistiques


2 : exécutée


3 : erreur


4 : en file d’attente


5 : retournée

Nouvelle commande


action = order

service = (ID de service)

quantity = quantité

option = champ supplémentaire du service : un id de action=options (sujet des commentaires, note de l'avis, géo, option de sondage) ou du texte libre (pseudo de l'auteur du commentaire, requête de recherche) ; le type et le libellé du champ sont donnés par option_type et option_label

comment = textes des commentaires ou avis (un par ligne), ou le brief pour un avis IA, ou votre propre sujet pour les commentaires thématiques (avec option=0) ; comment_label indique ce que le champ attend

link = lien

lang = langue de l'exécutant pour une partie des services : any, ru ou en (par défaut n'importe laquelle)

gender = sexe de l'auteur de l'avis pour une partie des services : any, m, f (par défaut n'importe lequel)

day_limit = nombre maximal d'exécutions par jour pour une partie des services, 0 = sans limite


{"order":"142058"}

Erreurs


{"errorcode":1} USERNAME ou PASSWORD n’est pas envoyé


{"errorcode":2} ACTION n’est pas envoyée


{"errorcode":3} La devise sélectionnée n'est pas disponible


{"errorcode":4} Numéro de commande n'est pas envoyé


{"errorcode":5} Numéro de commande invalide


{"errorcode":6} SERVICE n'est pas envoyé


{"errorcode":7} Quantité n'est pas envoyée


{"errorcode":8} Référence n’est pas envoyée


{"errorcode":9} Pas assez de fonds en solde


{"errorcode":10} Quantité est inférieure au minimum

Exemple de code php


            class Api
            {
              //paramètres
              public $api_url = 'https://mrpopular.net/api/v2.php'; // référence pour API
              public $username = ''; //votre username
              public $password = ''; //votre password
              public $currency = 'EUR';

                public function order($data) { // ajouter une commande
                    $post = array_merge(array(
                      'username' => $this->username, 
                      'password' => $this->password,
                      'action' => 'order'
                    ), $data);
                    return json_decode($this->connect($post));
                }

                public function status($order) { // obtenir le statut de commande
                    return json_decode($this->connect(array(
                        'username' => $this->username, 
                        'password' => $this->password,
                        'action' => 'status',
                        'order' => $order
                    )));
                }

                public function service() { // obtenir la liste de services
                    return json_decode($this->connect(array(
                        'username' => $this->username, 
                        'password' => $this->password,
                        'action' => 'service',
                    )));
                }

                public function balance() { // obtenir le solde
                    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;
                }
            }

            //lançons API
            $api = new Api();

            //vérifier le solde
            /*$balance = $api->balance();
            print_r($balance);*/

            //nouvelle commande
            /*$order = $api->order(array(
              'service' => 462, 
              'quantity' => $qnty, 
              'link' => $src
            ));
            print_r($order);*/

            //statut de commande
            /*$status = $api->status(12232);
            print_r($status);*/

            //liste de services
            /*$service = $api->service();
            print_r($service);*/
          

Exécutions de la commande (captures)


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 l'exécution sert à action=dispute ; dispute : état de la contestation ou null ; dispute_budget : limite de contestations du compte.


Uniquement pour les commandes réalisées par de vrais exécutants. "links" contient les URL indiquées par les exécutants dans leurs rapports (tâches de backlinks).