Einloggen Anmeldung

Shop

Home Aufgaben-Marktplatz werkzeuge Korb abonnements Bestellverlauf

Konto

Guthaben aufladen Promo-Code aktivieren Partnerprogramm

Hilfe

Support-Service FAQ Information Bewertungen Blog news

Entwickler

public API reseller API
Dunkles Design

mrpopularAPI

mrpopularAPI

Reseller API

API-Schlüssel

Melden Sie sich an, um Ihren API-Schlüssel zu erhalten.

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

Zur Aktivierung der Reseller-API schreiben Sie an den Support. Ihr Guthaben muss mindestens 100 Dollar betragen.

API-Dokumentation

URL

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

Anfrage

POST / GET / JSON

Antwort

JSON

Autorisierung

username

password

key = API-Schlüssel von der Dokumentationsseite im Konto (statt username und password)

Guthaben abrufen

action = balance

{"balance":123.456}

Bestellstatus

action = status

order = (Order id)

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

order = 142058,142059 (mehrere Nummern durch Komma getrennt, bis zu 100 pro Anfrage; die Antwort listet jede Nummer im Feld orders)


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

Bestellung stornieren


action = cancel

order = Bestellnummer


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

Für einen Teil der Dienste verfügbar (in v3 fast alle), solange die Bestellung läuft: der nicht gelieferte Teil wird erstattet. Ist die Stornierung für den Dienst nicht verfügbar, lautet die Antwort errorcode 13; abgeschlossene oder noch nicht gestartete Bestellungen: errorcode 14.

Nachfüllung (Refill)


action = refill

order = Bestellnummer


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

Nur Dienste mit Refill, wie der Button in der Bestellhistorie. status: requested gestartet, in_progress läuft bereits, wait_24h einmal täglich, expired Frist abgelaufen, queued in der Warteschlange des Operators. Ohne Refill: errorcode 16.

Zusatzfeld des Dienstes


action = options

service = Dienst-ID


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

option_type: none (kein Feld), text (freier Text in option), select, geo, rating, topic (in option kommt eine id aus options; bei topic bedeutet 0 das eigene Thema als Text in comment). Dieselben option_type, option_label und comment_label liefert action=service.

Anfechtung einer Ausführung


action = dispute

order = Bestellnummer (Position) aus der Bestellhistorie

execution = Ausführungs-id aus action=executions

reason = Grund, mindestens 5 Zeichen: was auf dem Screenshot falsch ist (falscher Beitrag, falscher Text, Aktion nicht gezeigt)


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

Nur für Bestellungen, die von echten Ausführenden erfüllt werden, und nur für angenommene Ausführungen, die nicht älter als 30 Tage sind. Die Anfechtung prüft die Schlichtung, meist innerhalb eines Tages; das Ergebnis steht in action=executions, Feld dispute.status: pending (in Prüfung), confirmed (Mangel bestätigt: die Ausführung wird entfernt und wiederholt), rejected (die Ausführung entspricht der Aufgabe), neutral (keine Änderung). Limit: Sie können Ausführungen im Wert von bis zu 20% Ihrer bezahlten Bestellungen der letzten 90 Tage anfechten; jede Anfechtung reserviert den Einzelpreis der Bestellung, mindestens 5 RUB; confirmed gibt die Reserve frei, rejected und neutral verbrauchen sie. Das verbleibende Limit steht in dispute_budget.

errorcode 21 die Bestellung wird nicht von echten Ausführenden erfüllt (keine Anfechtung), errorcode 23 wrong EXECUTION (nicht in dieser Bestellung), 24 Ausführung nicht angenommen, 25 Anfechtungsfrist abgelaufen, 26 bereits angefochten, 27 REASON kürzer als 5 Zeichen, 28 Limit erreicht (dispute_budget in der Antwort).

Ausfuehrungen der Bestellung (Screenshots)

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 der Ausführung wird für action=dispute gebraucht; dispute: Stand der Anfechtung oder null; dispute_budget: Anfechtungslimit des Kontos.

Nur fuer Bestellungen, die von echten Ausfuehrenden erledigt wurden. "links" enthaelt die Links aus den Berichten der Ausfuehrenden (Backlink-Aufgaben).

Diensteliste

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

Bestellstatus-Codes

0 : Pending / Processing

1 : Processing

2 : Completed

3 : Error

4 : In queue

5 : Returned

Neue Bestellung

action = order

service = (Service ID)

quantity

option = Zusatzfeld des Dienstes: eine id aus action=options (Kommentarthema, Bewertung der Rezension, Geo, Umfrageoption) oder freier Text (Benutzername des Kommentarautors, Suchanfrage); Typ und Beschriftung des Feldes stehen in option_type und option_label

comment = Kommentar- oder Rezensionstexte (einer pro Zeile), oder das Briefing für eine KI-Rezension, oder das eigene Thema für Themenkommentare (mit option=0); comment_label sagt, was das Feld erwartet

link

lang = Sprache des Ausführenden für einen Teil der Dienste: any, ru oder en (Standard: beliebig)

gender = Geschlecht des Rezensionsautors für einen Teil der Dienste: any, m, f (Standard: beliebig)

day_limit = maximale Ausführungen pro Tag für einen Teil der Dienste, 0 = ohne Limit

{"order":"142058"}

Fehler

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

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