API Documentation
Integrate BSC Volume Bot into your platform with our powerful RESTful API. Automate BNB Chain volume generation, manage campaigns across PancakeSwap and other DEXs, and access real-time analytics programmatically.
Request API Access
To get started with the BSC Volume Bot API, you need to request API membership. Our team will review your application and provide you with API credentials within 24-48 hours.
Contact us at:
api@bscvolumebot.comPlease include your use case, expected volume, and company information in your request.
Getting Started
Base URL
Authentication
All API requests require authentication using an API key. Include your API key in the request header:
Security Best Practices
- Never expose your API key in client-side code or public repositories
- Store API keys in environment variables
- Rotate your API keys regularly
- Use different API keys for development and production environments
Rate Limits
API requests are limited to 100 requests per minute per API key. Rate limit information is included in response headers. BSC's fast block times enable real-time campaign monitoring.
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 95 X-RateLimit-Reset: 1642345678
Response Format
All API responses are returned in JSON format with appropriate HTTP status codes.
Success Response (200 OK)
{
"success": true,
"data": { ... },
"timestamp": "2024-01-15T10:30:00Z"
}Error Response (4xx/5xx)
{
"success": false,
"error": {
"code": "INVALID_TOKEN_ADDRESS",
"message": "The provided token address is invalid",
"details": "Address must be a valid BEP-20 contract"
},
"timestamp": "2024-01-15T10:30:00Z"
}API Endpoints
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| tokenAddress | string | Yes | BEP-20 token contract address |
| volumeTarget | number | Yes | Target volume in BNB (min: 0.1, max: 10000) |
| walletMakers | number | Yes | Number of unique wallets (min: 10, max: 5000) |
| duration | number | Yes | Campaign duration in minutes (min: 5, max: 1440) |
| dex | string | Yes | Target DEX: pancakeswap, biswap, apeswap, babyswap |
| features | object | No | Advanced features configuration |
Request Body
{
"tokenAddress": "0x...",
"volumeTarget": 100.5,
"walletMakers": 500,
"duration": 60,
"dex": "pancakeswap",
"features": {
"smartWalletDistribution": true,
"antiWhaleProtection": true,
"liquidityOptimization": true,
"randomizeTimings": true,
"multiDexRouting": false
}
}Response (201 Created)
{
"success": true,
"data": {
"campaignId": "bsc_camp_abc123",
"status": "pending",
"estimatedCost": "0.5234 BNB",
"network": "bsc",
"tokenAddress": "0x...",
"volumeTarget": 100.5,
"walletMakers": 500,
"duration": 60,
"dex": "pancakeswap",
"estimatedStartTime": "2024-01-15T10:32:00Z",
"estimatedCompletionTime": "2024-01-15T11:32:00Z",
"createdAt": "2024-01-15T10:30:00Z"
},
"timestamp": "2024-01-15T10:30:00Z"
}Path Parameters
id (string, required) - Campaign ID
Response (200 OK)
{
"success": true,
"data": {
"campaignId": "bsc_camp_abc123",
"status": "running",
"network": "bsc",
"dex": "pancakeswap",
"tokenAddress": "0x...",
"tokenSymbol": "TOKEN",
"tokenName": "My Token",
"progress": {
"volumeGenerated": 45.2,
"volumeTarget": 100.5,
"walletsCreated": 250,
"walletsTarget": 500,
"transactionsExecuted": 1250,
"percentComplete": 45,
"currentGasPrice": "5 gwei",
"averageTransactionSize": "0.036 BNB",
"estimatedTimeRemaining": "33 minutes"
},
"costs": {
"volumeCost": "0.2617 BNB",
"gasCost": "0.0125 BNB",
"totalCost": "0.2742 BNB"
},
"startedAt": "2024-01-15T10:35:00Z",
"estimatedCompletion": "2024-01-15T11:35:00Z",
"createdAt": "2024-01-15T10:30:00Z"
},
"timestamp": "2024-01-15T10:58:00Z"
}Query Parameters
| Parameter | Type | Description |
|---|---|---|
| status | string | Filter by status: pending, running, completed, failed, cancelled |
| dex | string | Filter by DEX: pancakeswap, biswap, apeswap, babyswap |
| limit | number | Number of results per page (default: 10, max: 100) |
| offset | number | Pagination offset (default: 0) |
| sortBy | string | Sort field: createdAt, volumeTarget, status (default: createdAt) |
| sortOrder | string | Sort order: asc, desc (default: desc) |
Response (200 OK)
{
"success": true,
"data": {
"campaigns": [
{
"campaignId": "bsc_camp_abc123",
"status": "running",
"tokenAddress": "0x...",
"volumeTarget": 100.5,
"volumeGenerated": 45.2,
"dex": "pancakeswap",
"createdAt": "2024-01-15T10:30:00Z"
},
// ... more campaigns
],
"pagination": {
"total": 25,
"limit": 10,
"offset": 0,
"hasMore": true
},
"network": "bsc"
},
"timestamp": "2024-01-15T11:00:00Z"
}Request Body
{
"duration": 90, // Extend duration (can only increase)
"volumeTarget": 150.0 // Increase volume target (can only increase)
}Response (200 OK)
{
"success": true,
"data": {
"campaignId": "bsc_camp_abc123",
"status": "running",
"volumeTarget": 150.0,
"duration": 90,
"additionalCost": "0.2617 BNB",
"updatedAt": "2024-01-15T11:00:00Z"
},
"timestamp": "2024-01-15T11:00:00Z"
}Response (200 OK)
{
"success": true,
"data": {
"campaignId": "bsc_camp_abc123",
"status": "cancelled",
"volumeGenerated": 45.2,
"transactionsExecuted": 1250,
"walletsCreated": 250,
"refundAmount": "0.2617 BNB",
"refundTransactionHash": "0x...",
"network": "bsc",
"cancelledAt": "2024-01-15T11:00:00Z"
},
"timestamp": "2024-01-15T11:00:00Z"
}Query Parameters
timeframe (string, optional) - Time granularity: minute, hour, day (default: hour)
metrics (string, optional) - Comma-separated metrics to include
Response (200 OK)
{
"success": true,
"data": {
"campaignId": "bsc_camp_abc123",
"volumeByHour": [
{ "hour": "2024-01-15T10:00:00Z", "volume": 15.2, "transactions": 380 },
{ "hour": "2024-01-15T11:00:00Z", "volume": 30.0, "transactions": 870 }
],
"transactionSizes": {
"min": "0.001 BNB",
"max": "0.15 BNB",
"average": "0.036 BNB",
"median": "0.032 BNB"
},
"walletDistribution": {
"unique": 250,
"active": 245,
"averageTransactionsPerWallet": 5.0
},
"priceImpact": {
"average": 0.023,
"max": 0.089,
"min": 0.001
},
"gasMetrics": {
"averageGasPrice": "5 gwei",
"totalGasCost": "0.0125 BNB",
"averageGasPerTransaction": "150000"
},
"dexDistribution": {
"pancakeswap": 0.65,
"biswap": 0.20,
"apeswap": 0.15
},
"performance": {
"successRate": 0.998,
"failedTransactions": 5,
"averageConfirmationTime": "3.2 seconds"
}
},
"timestamp": "2024-01-15T11:30:00Z"
}Response (200 OK)
{
"success": true,
"data": {
"accountId": "acc_xyz789",
"email": "user@example.com",
"tier": "professional",
"balance": "5.2345 BNB",
"usage": {
"totalCampaigns": 127,
"activeCampaigns": 3,
"totalVolumeGenerated": "12,450.67 BNB",
"apiCallsThisMonth": 8542,
"apiCallsLimit": 100000
},
"limits": {
"maxConcurrentCampaigns": 10,
"maxVolumePerCampaign": "10000 BNB",
"maxWalletsPerCampaign": 5000
},
"createdAt": "2023-06-15T08:00:00Z"
},
"timestamp": "2024-01-15T11:30:00Z"
}Error Codes
The API uses standard HTTP status codes and returns detailed error information in the response body.
| Code | Error | Description |
|---|---|---|
| 400 | INVALID_REQUEST | Request parameters are invalid or missing |
| 401 | UNAUTHORIZED | API key is missing or invalid |
| 403 | FORBIDDEN | API key doesn't have permission for this action |
| 404 | NOT_FOUND | Campaign or resource not found |
| 429 | RATE_LIMIT_EXCEEDED | Too many requests, please slow down |
| 500 | INTERNAL_ERROR | Server error, please try again later |
| 503 | SERVICE_UNAVAILABLE | Service temporarily unavailable |
Common Error Codes
INVALID_TOKEN_ADDRESS
The provided token address is not a valid BEP-20 contract
INSUFFICIENT_BALANCE
Your account balance is insufficient for this campaign
CAMPAIGN_LIMIT_REACHED
Maximum number of concurrent campaigns reached
INVALID_DEX
The specified DEX is not supported
Webhooks
Configure webhooks to receive real-time notifications about BSC campaign events. Webhook payloads are sent as POST requests to your specified URL with each BSC block confirmation.
Configuring Webhooks
Configure webhooks via the API or dashboard. Each webhook requires a URL and event subscriptions.
POST /webhooks
{
"url": "https://your-domain.com/webhook",
"events": ["campaign.started", "campaign.completed", "campaign.failed"],
"secret": "your_webhook_secret"
}Available Events
- campaign.started - Campaign has started executing on BSC
- campaign.completed - Campaign finished successfully
- campaign.failed - Campaign encountered an error
- campaign.progress - Progress update (every 10%)
- campaign.paused - Campaign was paused
- campaign.resumed - Campaign was resumed
- transaction.confirmed - Individual transaction confirmed on BSC
- transaction.failed - Transaction failed on BSC
Webhook Payload Example
{
"event": "campaign.completed",
"campaignId": "bsc_camp_abc123",
"network": "bsc",
"timestamp": "2024-01-15T11:35:00Z",
"data": {
"volumeGenerated": 100.5,
"transactionsExecuted": 2500,
"walletsCreated": 500,
"totalGasCost": "0.025 BNB",
"dex": "pancakeswap",
"duration": 60,
"successRate": 0.998
},
"signature": "sha256_hmac_signature"
}Webhook Security
All webhook payloads include an HMAC signature in the X-Webhook-Signature header. Verify this signature to ensure the webhook came from BSC Volume Bot.
// Node.js example
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const hmac = crypto.createHmac('sha256', secret);
const digest = hmac.update(JSON.stringify(payload)).digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(digest)
);
}Code Examples
// Create and monitor a campaign
const API_KEY = process.env.BSC_VOLUME_BOT_API_KEY;
const BASE_URL = 'https://api.bscvolumebot.com/v1';
async function createCampaign() {
try {
const response = await fetch(`${BASE_URL}/campaigns`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
tokenAddress: '0x...',
volumeTarget: 100.5,
walletMakers: 500,
duration: 60,
dex: 'pancakeswap',
features: {
smartWalletDistribution: true,
antiWhaleProtection: true,
liquidityOptimization: true
}
})
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error: ${error.error.message}`);
}
const { data } = await response.json();
console.log('Campaign created:', data.campaignId);
// Monitor campaign progress
return monitorCampaign(data.campaignId);
} catch (error) {
console.error('Failed to create campaign:', error);
throw error;
}
}
async function monitorCampaign(campaignId) {
const checkStatus = async () => {
const response = await fetch(`${BASE_URL}/campaigns/${campaignId}`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const { data } = await response.json();
console.log(`Progress: ${data.progress.percentComplete}%`);
console.log(`Volume: ${data.progress.volumeGenerated}/${data.progress.volumeTarget} BNB`);
if (data.status === 'completed') {
console.log('Campaign completed successfully!');
return data;
} else if (data.status === 'failed') {
throw new Error('Campaign failed');
}
// Check again in 30 seconds
await new Promise(resolve => setTimeout(resolve, 30000));
return checkStatus();
};
return checkStatus();
}
// Usage
createCampaign()
.then(result => console.log('Final result:', result))
.catch(error => console.error('Error:', error));import os
import time
import requests
from typing import Dict, Any
API_KEY = os.getenv('BSC_VOLUME_BOT_API_KEY')
BASE_URL = 'https://api.bscvolumebot.com/v1'
class BSCVolumeBotAPI:
def __init__(self, api_key: str):
self.api_key = api_key
self.headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
def create_campaign(self, config: Dict[str, Any]) -> Dict[str, Any]:
"""Create a new volume campaign"""
response = requests.post(
f'{BASE_URL}/campaigns',
headers=self.headers,
json=config
)
response.raise_for_status()
return response.json()['data']
def get_campaign(self, campaign_id: str) -> Dict[str, Any]:
"""Get campaign status and details"""
response = requests.get(
f'{BASE_URL}/campaigns/{campaign_id}',
headers=self.headers
)
response.raise_for_status()
return response.json()['data']
def monitor_campaign(self, campaign_id: str, interval: int = 30):
"""Monitor campaign until completion"""
while True:
campaign = self.get_campaign(campaign_id)
status = campaign['status']
progress = campaign['progress']
print(f"Status: {status}")
print(f"Progress: {progress['percentComplete']}%")
print(f"Volume: {progress['volumeGenerated']}/{progress['volumeTarget']} BNB")
print(f"Transactions: {progress['transactionsExecuted']}")
print("-" * 50)
if status == 'completed':
print("Campaign completed successfully!")
return campaign
elif status == 'failed':
raise Exception("Campaign failed")
time.sleep(interval)
def get_analytics(self, campaign_id: str) -> Dict[str, Any]:
"""Get detailed campaign analytics"""
response = requests.get(
f'{BASE_URL}/analytics/{campaign_id}',
headers=self.headers
)
response.raise_for_status()
return response.json()['data']
# Usage example
if __name__ == '__main__':
api = BSCVolumeBotAPI(API_KEY)
# Create campaign
campaign_config = {
'tokenAddress': '0x...',
'volumeTarget': 100.5,
'walletMakers': 500,
'duration': 60,
'dex': 'pancakeswap',
'features': {
'smartWalletDistribution': True,
'antiWhaleProtection': True,
'liquidityOptimization': True
}
}
try:
campaign = api.create_campaign(campaign_config)
print(f"Campaign created: {campaign['campaignId']}")
# Monitor progress
result = api.monitor_campaign(campaign['campaignId'])
# Get analytics
analytics = api.get_analytics(campaign['campaignId'])
print(f"Success rate: {analytics['performance']['successRate'] * 100}%")
except requests.exceptions.HTTPError as e:
print(f"API Error: {e.response.json()}")package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
"time"
)
const BaseURL = "https://api.bscvolumebot.com/v1"
type Client struct {
APIKey string
HTTPClient *http.Client
}
type CampaignConfig struct {
TokenAddress string `json:"tokenAddress"`
VolumeTarget float64 `json:"volumeTarget"`
WalletMakers int `json:"walletMakers"`
Duration int `json:"duration"`
Dex string `json:"dex"`
}
type Campaign struct {
CampaignID string `json:"campaignId"`
Status string `json:"status"`
Progress Progress `json:"progress"`
}
type Progress struct {
VolumeGenerated float64 `json:"volumeGenerated"`
VolumeTarget float64 `json:"volumeTarget"`
PercentComplete int `json:"percentComplete"`
TransactionsExecuted int `json:"transactionsExecuted"`
}
func NewClient(apiKey string) *Client {
return &Client{
APIKey: apiKey,
HTTPClient: &http.Client{Timeout: 30 * time.Second},
}
}
func (c *Client) CreateCampaign(config CampaignConfig) (*Campaign, error) {
body, _ := json.Marshal(config)
req, _ := http.NewRequest("POST", BaseURL+"/campaigns", bytes.NewBuffer(body))
req.Header.Set("Authorization", "Bearer "+c.APIKey)
req.Header.Set("Content-Type", "application/json")
resp, err := c.HTTPClient.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var result struct {
Data Campaign `json:"data"`
}
json.NewDecoder(resp.Body).Decode(&result)
return &result.Data, nil
}
func (c *Client) GetCampaign(campaignID string) (*Campaign, error) {
req, _ := http.NewRequest("GET", BaseURL+"/campaigns/"+campaignID, nil)
req.Header.Set("Authorization", "Bearer "+c.APIKey)
resp, err := c.HTTPClient.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var result struct {
Data Campaign `json:"data"`
}
json.NewDecoder(resp.Body).Decode(&result)
return &result.Data, nil
}
func main() {
client := NewClient(os.Getenv("BSC_VOLUME_BOT_API_KEY"))
config := CampaignConfig{
TokenAddress: "0x...",
VolumeTarget: 100.5,
WalletMakers: 500,
Duration: 60,
Dex: "pancakeswap",
}
campaign, err := client.CreateCampaign(config)
if err != nil {
panic(err)
}
fmt.Printf("Campaign created: %s\n", campaign.CampaignID)
}Create Campaign
curl -X POST https://api.bscvolumebot.com/v1/campaigns \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tokenAddress": "0x...",
"volumeTarget": 100.5,
"walletMakers": 500,
"duration": 60,
"dex": "pancakeswap"
}'Get Campaign Status
curl -X GET https://api.bscvolumebot.com/v1/campaigns/bsc_camp_abc123 \ -H "Authorization: Bearer YOUR_API_KEY"
Get Analytics
curl -X GET https://api.bscvolumebot.com/v1/analytics/bsc_camp_abc123 \ -H "Authorization: Bearer YOUR_API_KEY"
Official SDK Libraries
We provide official SDK libraries to make integration even easier. These libraries handle authentication, error handling, and provide type-safe interfaces.
Node.js / TypeScript
Full TypeScript support with auto-completion
Python
Async/await support with type hints
Go
Idiomatic Go with full type safety
PHP
PSR-compliant with modern PHP features
Ready to Integrate?
Start building with BSC Volume Bot API today. Contact our team for API access and developer support for BNB Chain integration.
Request API Access:
api@bscvolumebot.com