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.
Listahan ng mga serbisyo
Lahat ng serbisyong maaari mong i-order, kasama ang iyong rate kada 1000.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| key | string required | Ang iyong access token (ang parehong token na ginagamit mo sa pag-log in). |
| action | string required | Itakda sa "services". |
[
{
"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
}
]Balance
Ang iyong kasalukuyang balance.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| key | string required | Ang iyong access token (ang parehong token na ginagamit mo sa pag-log in). |
| action | string required | Itakda sa "balance". |
{
"balance": "100.84292",
"currency": "USD"
}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...).
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| service | integer required | Service ID mula sa listahan ng serbisyo. |
| link | string required | Pampublikong link sa page, post o website. |
| quantity | integer required | Dapat nasa pagitan ng serbisyo min and max. |
| runs | integer optional | Drip-feed: ilang beses ide-deliver ang dami. |
| interval | integer optional | Drip-feed: ilang minuto sa pagitan ng bawat run. |
Custom Comments
Mga comment service kung saan ikaw ang sumusulat ng mga comment.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| service | integer required | Service ID. |
| link | string required | Link ng post. |
| comments | string required | Isang comment bawat linya (pinaghihiwalay ng \n). Dami = bilang ng mga linya. |
Mentions
Mga mention service.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| service | integer required | Service ID. |
| link | string required | Link ng post. |
| quantity | integer required | Dami. |
| usernames | string required | Mga username na ime-mention, isa bawat linya. |
Package
Mga fixed package — hindi kailangan ng dami.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| service | integer required | Service ID. |
| link | string required | Link. |
Subscriptions
Awtomatikong delivery sa mga bagong post ng isang profile.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| service | integer required | Service ID. |
| username | string required | Username ng profile. |
| min | integer required | Minimum na dami bawat post. |
| max | integer required | Maximum na dami bawat post. |
| posts | integer optional | Ganito lang karaming bagong post. Alisin (o 0 kasama ang old_posts) para sa walang limitasyong bagong post. |
| old_posts | integer optional | I-deliver din sa ganitong dami ng mga dati nang post. |
| delay | integer required | Ilang 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. |
| expiry | string optional | Petsa ng expiry, format d/m/Y. |
{
"order": 23501
}Status ng order
Status ng isang order.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| key | string required | Ang iyong access token (ang parehong token na ginagamit mo sa pag-log in). |
| action | string required | Itakda sa "status". |
| order | integer required | Order ID. |
Posible status values: Pending, In progress, Processing, Completed, Partial, Canceled.
{
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD"
}Maramihang status
Status ng hanggang 100 order sa isang request.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| key | string required | Ang iyong access token (ang parehong token na ginagamit mo sa pag-log in). |
| action | string required | Itakda sa "status". |
| orders | string required | Mga order ID na pinaghihiwalay ng kuwit, hanggang 100. |
{
"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"
}
}Gumawa ng refill
Mag-request ng refill para sa order ng serbisyong may refill.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| key | string required | Ang iyong access token (ang parehong token na ginagamit mo sa pag-log in). |
| action | string required | Itakda sa "refill". |
| order | integer required | Order ID. |
{
"refill": "1"
}Maramihang refill
Mag-request ng refill para sa hanggang 100 order.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| key | string required | Ang iyong access token (ang parehong token na ginagamit mo sa pag-log in). |
| action | string required | Itakda sa "refill". |
| orders | string required | Mga order ID na pinaghihiwalay ng kuwit, hanggang 100. |
[
{ "order": 1, "refill": 1 },
{ "order": 2, "refill": 2 },
{ "order": 3, "refill": { "error": "Incorrect order ID" } }
]Status ng refill
Status ng isang refill.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| key | string required | Ang iyong access token (ang parehong token na ginagamit mo sa pag-log in). |
| action | string required | Itakda sa "refill_status". |
| refill | integer required | Refill ID. |
{
"status": "Completed"
}Status ng maramihang refill
Status ng hanggang 100 refill.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| key | string required | Ang iyong access token (ang parehong token na ginagamit mo sa pag-log in). |
| action | string required | Itakda sa "refill_status". |
| refills | string required | Mga refill ID na pinaghihiwalay ng kuwit, hanggang 100. |
[
{ "refill": 1, "status": "Completed" },
{ "refill": 2, "status": "Rejected" },
{ "refill": 3, "status": { "error": "Refill not found" } }
]I-cancel ang mga order
I-cancel ang hanggang 100 order na hindi pa nagsisimula.
| Parameter | Uri & Mga Patakaran | Paglalarawan |
|---|---|---|
| key | string required | Ang iyong access token (ang parehong token na ginagamit mo sa pag-log in). |
| action | string required | Itakda sa "cancel". |
| orders | string required | Mga order ID na pinaghihiwalay ng kuwit, hanggang 100. |
[
{ "order": 9, "cancel": { "error": "Incorrect order ID" } },
{ "order": 2, "cancel": 1 }
]Mga error
Ibinabalik ang mga error bilang JSON na may error field.
| Error | Kahulugan | |
|---|---|---|
Invalid API key | Mali ang token o na-regenerate na ito. Kunin ang kasalukuyan mong token mula sa Profile. | |
Incorrect request | Kulang o hindi valid action. | |
Incorrect service ID | Hindi umiiral o naka-disable ang serbisyo. | |
Quantity less than minimal / more than maximal | Suriin min and max sa listahan ng serbisyo. | |
Not enough funds on balance | Mag-top up gamit ang USDT sa Mag-recharge page. | |
Incorrect order ID | Hindi umiiral ang order o pag-aari ito ng ibang account. | |
{
"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
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 -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