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

ParameterTypeDescription
keyreqstringYour API key
actionreqstringConstant 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

ParameterTypeDescription
keyreqstringYour API key
actionreqstringConstant value: add
servicereqintService ID
linkreqstringLink to target
quantityreqintQuantity
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

ParameterTypeDescription
keyreqstringYour API key
actionreqstringConstant: status
orderreqstringOrder ID

Possible statuses:

  • Pending - Waiting
  • In progress - In progress
  • Completed - Completed
  • Partial - Partial
  • Canceled - 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

ParameterTypeDescription
keyreqstringYour API key
actionreqstringConstant: status
ordersreqstringComma 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

ParameterTypeDescription
keyreqstringYour API key
actionreqstringConstant: 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

ParameterTypeDescription
keyreqstringYour API key
actionreqstringConstant: cancel
ordersreqstringComma 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:

HTTPMessageReason
401Invalid API keyInvalid or disabled key
400Invalid parametersWrong input
400Insufficient balanceNot enough balance
404Incorrect service IDService not found
502server errorServer 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();