PanelBon API v2
Complete API documentation for connecting and using SMM services
Quick start
To use the API, first get your API key from the bot:
- In the bot, press the API Token button
- Your API key will be shown to you
- Use this key in all your API requests
Special discount:
If your API key has a discount, it will be applied automatically!
Base URL
BASE
https://www.panelbon.com/app/api/v2
All requests must be sent to this URL.
Authentication
Put your API key in the `key` parameter:
key=YOUR_API_KEY&action=services
Security:
Never expose your API key publicly.
Get services list
To get the list of all active services:
POST
/api/v2
Parameters
| Parameter | Type | Description |
|---|---|---|
keyreq | string | Your API key |
actionreq | string | Constant value: services |
If a discount is defined...
Request
POST /api/v2
key=YOUR_API_KEY&action=services
Response
[
{
"service": 1,
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram",
"rate": "0.90", // Discounted rate
"original_rate": "1.00",
"discount_percent": 10,
"min": "10",
"max": "10000",
"refill": false,
"cancel": true
}
]
Create new order
To create a new order:
POST
/api/v2
Parameters
| Parameter | Type | Description |
|---|---|---|
keyreq | string | Your API key |
actionreq | string | Constant value: add |
servicereq | int | Service ID |
linkreq | string | Link to target |
quantityreq | int | Quantity |
Discount applied automatically.
Request
POST /api/v2
key=YOUR_API_KEY&action=add&service=1&link=https://...&quantity=1000
Response
{
"order": "CR-202411-0001",
"original_price": "1.00",
"discount": "0.10",
"final_price": "0.90"
}
Order status
To check the status of an order:
POST
/api/v2
Parameters
| Parameter | Type | Description |
|---|---|---|
keyreq | string | Your API key |
actionreq | string | Constant: status |
orderreq | string | Order ID |
Possible statuses:
Pending- WaitingIn progress- In progressCompleted- CompletedPartial- PartialCanceled- Canceled
Request
POST /api/v2
key=YOUR_API_KEY&action=status&order=CR-202411-0001
Response
{
"charge": "0.90",
"start_count": "1250",
"status": "In progress",
"remains": "450",
"currency": "USD"
}
Multiple order status
To check the status of multiple orders at once:
POST
/api/v2
Parameters
| Parameter | Type | Description |
|---|---|---|
keyreq | string | Your API key |
actionreq | string | Constant: status |
ordersreq | string | Comma separated list |
Request
POST /api/v2
key=YOUR_API_KEY&action=status&orders=CR-001,CR-002
Response
{
"CR-001": {
"charge": "0.90",
"status": "Completed"
},
"CR-002": {
"error": "Incorrect order ID"
}
}
Account balance
To get your current balance:
POST
/api/v2
Parameters
| Parameter | Type | Description |
|---|---|---|
keyreq | string | Your API key |
actionreq | string | Constant: balance |
Request
POST /api/v2
key=YOUR_API_KEY&action=balance
Response
{
"balance": "100.50",
"currency": "USD"
}
Cancel order
To cancel one or more orders (if allowed):
POST
/api/v2
Parameters
| Parameter | Type | Description |
|---|---|---|
keyreq | string | Your API key |
actionreq | string | Constant: cancel |
ordersreq | string | Comma separated list |
Request
POST /api/v2
key=YOUR_API_KEY&action=cancel&orders=CR-001,CR-002
Response
[
{
"order": "CR-001",
"cancel": 1
},
{
"order": "CR-002",
"cancel": {
"error": "Order cannot be canceled"
}
}
]
Error handling
In case of an error, the response will contain an `error` field:
{
"error": "Invalid API key"
}
Common errors:
| HTTP | Message | Reason |
|---|---|---|
| 401 | Invalid API key | Invalid or disabled key |
| 400 | Invalid parameters | Wrong input |
| 400 | Insufficient balance | Not enough balance |
| 404 | Incorrect service ID | Service not found |
| 502 | server error | Server connection issue |
If your API key becomes disabled, all requests will return HTTP 401.
Code examples
# Python Example
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://www.panelbon.com/app/api/v2"
# get Services
response = requests.post(BASE_URL, data={
"key": API_KEY,
"action": "services"
})
services = response.json()
# make order
response = requests.post(BASE_URL, data={
"key": API_KEY,
"action": "add",
"service": 1,
"link": "https://instagram.com/username",
"quantity": 1000
})
result = response.json()
print(f"Order ID: {result['order']}")
print(f"Final Price: ${result['final_price']}")
// PHP Example
$apiKey = "YOUR_API_KEY";
$baseUrl = "https://www.panelbon.com/app/api/v2";
// get Services
$ch = curl_init($baseUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'key' => $apiKey,
'action' => 'services'
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$services = json_decode($response, true);
curl_close($ch);
// make order
$ch = curl_init($baseUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'key' => $apiKey,
'action' => 'add',
'service' => 1,
'link' => 'https://instagram.com/username',
'quantity' => 1000
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
echo "Order ID: " . $result['order'] . "\n";
echo "Final Price: $" . $result['final_price'];
// Node.js Example
const axios = require('axios');
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://www.panelbon.com/app/api/v2';
// get Services
async function getServices() {
const response = await axios.post(BASE_URL, new URLSearchParams({
key: API_KEY,
action: 'services'
}));
return response.data;
}
// make order
async function createOrder() {
const response = await axios.post(BASE_URL, new URLSearchParams({
key: API_KEY,
action: 'add',
service: '1',
link: 'https://instagram.com/username',
quantity: '1000'
}));
console.log(`Order ID: ${response.data.order}`);
console.log(`Final Price: $${response.data.final_price}`);
return response.data;
}
createOrder();