API v2 Documentation

BROPANEL API v2

Mag-order at pamahalaan ang mga serbisyo mula sa sarili mong app, bot o panel. Sinusunod ng API ang standard na SMM panel API v2 format, kaya gumagana ang mga existing client sa pagpapalit lang ng URL at key.

POST
CONTENT TYPE: application/x-www-form-urlencoded · RESPONSE: JSON
Ang iyong API key ay ang iyong access token. Mag-log in para makita ito.
POSTaction = services

Listahan ng mga serbisyo

Lahat ng serbisyong maaari mong i-order, kasama ang iyong rate kada 1000.

ParameterUri & Mga PatakaranPaglalarawan
keystring requiredAng iyong access token (ang parehong token na ginagamit mo sa pag-log in).
actionstring requiredItakda sa "services".
Response (JSON)
[
  {
    "service": 3289,
    "name": "Instagram Likes[Real Humans][Fast][Non Drop][100% Real - Most Very Good Accounts]",
    "type": "Default",
    "category": "Instagram High Quality Likes",
    "rate": "2.82",
    "min": "10",
    "max": "2000",
    "refill": false,
    "cancel": true
  },
  {
    "service": 2500,
    "name": "Facebook Custom Comment BRAZIL[0-12HRs][100/Daily]",
    "type": "Custom Comments",
    "category": "Facebook BRAZIL",
    "rate": "23.16",
    "min": "1",
    "max": "300",
    "refill": false,
    "cancel": true
  }
]
POSTaction = balance

Balance

Ang iyong kasalukuyang balance.

ParameterUri & Mga PatakaranPaglalarawan
keystring requiredAng iyong access token (ang parehong token na ginagamit mo sa pag-log in).
actionstring requiredItakda sa "balance".
Response (JSON)
{
  "balance": "100.84292",
  "currency": "USD"
}
POSTaction = add

Magdagdag ng order

Nakadepende ang mga parameter sa serbisyo type na ibinabalik ng listahan ng serbisyo. Kailangan din ng bawat request ang key and action=add.

Default

Karamihan ng serbisyo (followers, likes, views, traffic...).

ParameterUri & Mga PatakaranPaglalarawan
serviceinteger requiredService ID mula sa listahan ng serbisyo.
linkstring requiredPampublikong link sa page, post o website.
quantityinteger requiredDapat nasa pagitan ng serbisyo min and max.
runsinteger optionalDrip-feed: ilang beses ide-deliver ang dami.
intervalinteger optionalDrip-feed: ilang minuto sa pagitan ng bawat run.
Custom Comments

Mga comment service kung saan ikaw ang sumusulat ng mga comment.

ParameterUri & Mga PatakaranPaglalarawan
serviceinteger requiredService ID.
linkstring requiredLink ng post.
commentsstring requiredIsang comment bawat linya (pinaghihiwalay ng \n). Dami = bilang ng mga linya.
Mentions

Mga mention service.

ParameterUri & Mga PatakaranPaglalarawan
serviceinteger requiredService ID.
linkstring requiredLink ng post.
quantityinteger requiredDami.
usernamesstring requiredMga username na ime-mention, isa bawat linya.
Package

Mga fixed package — hindi kailangan ng dami.

ParameterUri & Mga PatakaranPaglalarawan
serviceinteger requiredService ID.
linkstring requiredLink.
Subscriptions

Awtomatikong delivery sa mga bagong post ng isang profile.

ParameterUri & Mga PatakaranPaglalarawan
serviceinteger requiredService ID.
usernamestring requiredUsername ng profile.
mininteger requiredMinimum na dami bawat post.
maxinteger requiredMaximum na dami bawat post.
postsinteger optionalGanito lang karaming bagong post. Alisin (o 0 kasama ang old_posts) para sa walang limitasyong bagong post.
old_postsinteger optionalI-deliver din sa ganitong dami ng mga dati nang post.
delayinteger requiredIlang minutong maghihintay pagkatapos mai-publish ang post: 0, 5, 10, 15, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 360, 420, 480, 540, 600.
expirystring optionalPetsa ng expiry, format d/m/Y.
Response (JSON)
{
  "order": 23501
}
POSTaction = status

Status ng order

Status ng isang order.

ParameterUri & Mga PatakaranPaglalarawan
keystring requiredAng iyong access token (ang parehong token na ginagamit mo sa pag-log in).
actionstring requiredItakda sa "status".
orderinteger requiredOrder ID.

Posible status values: Pending, In progress, Processing, Completed, Partial, Canceled.

Response (JSON)
{
  "charge": "0.27819",
  "start_count": "3572",
  "status": "Partial",
  "remains": "157",
  "currency": "USD"
}
POSTaction = status

Maramihang status

Status ng hanggang 100 order sa isang request.

ParameterUri & Mga PatakaranPaglalarawan
keystring requiredAng iyong access token (ang parehong token na ginagamit mo sa pag-log in).
actionstring requiredItakda sa "status".
ordersstring requiredMga order ID na pinaghihiwalay ng kuwit, hanggang 100.
Response (JSON)
{
  "1": {
    "charge": "0.27819",
    "start_count": "3572",
    "status": "Partial",
    "remains": "157",
    "currency": "USD"
  },
  "10": {
    "error": "Incorrect order ID"
  },
  "100": {
    "charge": "1.44219",
    "start_count": "234",
    "status": "In progress",
    "remains": "10",
    "currency": "USD"
  }
}
POSTaction = refill

Gumawa ng refill

Mag-request ng refill para sa order ng serbisyong may refill.

ParameterUri & Mga PatakaranPaglalarawan
keystring requiredAng iyong access token (ang parehong token na ginagamit mo sa pag-log in).
actionstring requiredItakda sa "refill".
orderinteger requiredOrder ID.
Response (JSON)
{
  "refill": "1"
}
POSTaction = refill

Maramihang refill

Mag-request ng refill para sa hanggang 100 order.

ParameterUri & Mga PatakaranPaglalarawan
keystring requiredAng iyong access token (ang parehong token na ginagamit mo sa pag-log in).
actionstring requiredItakda sa "refill".
ordersstring requiredMga order ID na pinaghihiwalay ng kuwit, hanggang 100.
Response (JSON)
[
  { "order": 1, "refill": 1 },
  { "order": 2, "refill": 2 },
  { "order": 3, "refill": { "error": "Incorrect order ID" } }
]
POSTaction = refill_status

Status ng refill

Status ng isang refill.

ParameterUri & Mga PatakaranPaglalarawan
keystring requiredAng iyong access token (ang parehong token na ginagamit mo sa pag-log in).
actionstring requiredItakda sa "refill_status".
refillinteger requiredRefill ID.
Response (JSON)
{
  "status": "Completed"
}
POSTaction = refill_status

Status ng maramihang refill

Status ng hanggang 100 refill.

ParameterUri & Mga PatakaranPaglalarawan
keystring requiredAng iyong access token (ang parehong token na ginagamit mo sa pag-log in).
actionstring requiredItakda sa "refill_status".
refillsstring requiredMga refill ID na pinaghihiwalay ng kuwit, hanggang 100.
Response (JSON)
[
  { "refill": 1, "status": "Completed" },
  { "refill": 2, "status": "Rejected" },
  { "refill": 3, "status": { "error": "Refill not found" } }
]
POSTaction = cancel

I-cancel ang mga order

I-cancel ang hanggang 100 order na hindi pa nagsisimula.

ParameterUri & Mga PatakaranPaglalarawan
keystring requiredAng iyong access token (ang parehong token na ginagamit mo sa pag-log in).
actionstring requiredItakda sa "cancel".
ordersstring requiredMga order ID na pinaghihiwalay ng kuwit, hanggang 100.
Response (JSON)
[
  { "order": 9, "cancel": { "error": "Incorrect order ID" } },
  { "order": 2, "cancel": 1 }
]

Mga error

Ibinabalik ang mga error bilang JSON na may error field.

ErrorKahulugan
Invalid API keyMali ang token o na-regenerate na ito. Kunin ang kasalukuyan mong token mula sa Profile.
Incorrect requestKulang o hindi valid action.
Incorrect service IDHindi umiiral o naka-disable ang serbisyo.
Quantity less than minimal / more than maximalSuriin min and max sa listahan ng serbisyo.
Not enough funds on balanceMag-top up gamit ang USDT sa Mag-recharge page.
Incorrect order IDHindi umiiral ang order o pag-aari ito ng ibang account.
Halimbawa
{
  "error": "Not enough funds on balance"
}

Mga halimbawa ng code

Isang handang gamitin na PHP client. Palitan ang YOUR_ACCESS_TOKEN gamit ang iyong token mula sa Profile.

PHP
<?php
class Api
{
    /** API URL */
    public $api_url = 'https://bropanel2.com/api/v2';

    /** Your access token */
    public $api_key = '';

    /** Add order */
    public function order($data)
    {
        $post = array_merge(['key' => $this->api_key, 'action' => 'add'], $data);
        return json_decode((string)$this->connect($post));
    }

    /** Get order status */
    public function status($order_id)
    {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'status',
            'order' => $order_id
        ]));
    }

    /** Get multiple orders status */
    public function multiStatus($order_ids)
    {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'status',
            'orders' => implode(',', (array)$order_ids)
        ]));
    }

    /** Get services */
    public function services()
    {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'services',
        ]));
    }

    /** Refill order */
    public function refill(int $orderId)
    {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'refill',
            'order' => $orderId,
        ]));
    }

    /** Refill multiple orders */
    public function multiRefill(array $orderIds)
    {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'refill',
            'orders' => implode(',', $orderIds),
        ]), true);
    }

    /** Get refill status */
    public function refillStatus(int $refillId)
    {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'refill_status',
            'refill' => $refillId,
        ]));
    }

    /** Get multiple refill status */
    public function multiRefillStatus(array $refillIds)
    {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'refill_status',
            'refills' => implode(',', $refillIds),
        ]), true);
    }

    /** Cancel orders */
    public function cancel(array $orderIds)
    {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'cancel',
            'orders' => implode(',', $orderIds),
        ]), true);
    }

    /** Get balance */
    public function balance()
    {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'balance',
        ]));
    }

    private 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_HEADER, 0);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
        curl_setopt($ch, CURLOPT_USERAGENT, 'BROPANEL-API-Client/1.0');
        $result = curl_exec($ch);
        if (curl_errno($ch) != 0 && empty($result)) {
            $result = false;
        }
        curl_close($ch);
        return $result;
    }
}

// Examples
$api = new Api();
$api->api_key = 'YOUR_ACCESS_TOKEN';

$services = $api->services(); # Return all services
$balance = $api->balance();   # Return your balance

// Add order
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'runs' => 2, 'interval' => 5]); # Default (drip-feed optional)
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'comments' => "good pic\ngreat photo\n:)\n;)"]); # Custom Comments
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 1000, 'usernames' => "test"]); # Mentions
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test']); # Package
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'runs' => 10, 'interval' => 60]); # Drip-feed

// Subscriptions: new posts only (limited to 0 = unlimited)
$order = $api->order(['service' => 1, 'username' => 'username', 'min' => 100, 'max' => 110, 'posts' => 0, 'delay' => 30, 'expiry' => '11/11/2026']);
// Subscriptions: unlimited new posts + 5 old posts
$order = $api->order(['service' => 1, 'username' => 'username', 'min' => 100, 'max' => 110, 'old_posts' => 5, 'delay' => 30, 'expiry' => '11/11/2026']);

$status = $api->status($order->order);       # status, charge, remains, start count, currency
$statuses = $api->multiStatus([1, 2, 3]);    # same, for several orders

$refill = (array) $api->multiRefill([1, 2]);
$refillIds = array_column($refill, 'refill');
if ($refillIds) {
    $refillStatuses = $api->multiRefillStatus($refillIds);
}
cURL
curl -X POST https://bropanel2.com/api/v2 \
  -d key=YOUR_ACCESS_TOKEN \
  -d action=add \
  -d service=1 \
  -d link=https://example.com/post \
  -d quantity=100