API Reference

Integrate Solana Volume Bot into your applications. Automate volume generation for SPL tokens across Pump.fun, Raydium, Jupiter, and all major Solana DEXs with our powerful REST API.

Getting Started

Base URL

https://api.solanavolumebot.org/v1

Content Type

All requests and responses use JSON format:

Content-Type: application/json

Response Format

All API responses follow this structure:

{
  "success": true,
  "data": { ... },
  "message": "Operation completed successfully"
}

Authentication

All API requests require authentication using an API key. Include your API key in the Authorization header of every request:

Authorization: Bearer YOUR_API_KEY_HERE

Getting Your API Key: Connect your Solana wallet on the main page and navigate to your dashboard. Your API key will be generated automatically and displayed in the API section.

Example Request

curl -X POST https://api.solanavolumebot.org/v1/campaigns \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"token_address": "..."}'

Rate Limits

120
Requests per minute
5,000
Requests per hour
100,000
Requests per day

Rate limit information is included in response headers:

X-RateLimit-Limit: 120
X-RateLimit-Remaining: 115
X-RateLimit-Reset: 1642089600

API Endpoints

POST/campaigns
Create Campaign
Start a new volume generation campaign for your SPL token on Solana DEXs including Pump.fun, Raydium, Jupiter, Orca, and Meteora.

Request Body

{
  "token_address": "string",        // SPL token contract address
  "volume_target": 500,             // Target volume in SOL (10-1000)
  "makers_count": 250,              // Number of wallets (25-10000)
  "duration": 60,                   // Duration in minutes (5-720)
  "min_sol": 0.1,                   // Min SOL per transaction
  "max_sol": 2.0,                   // Max SOL per transaction
  "buy_upper_amount": 75,           // Buy upper % (50-100)
  "buy_lower_amount": 25,           // Buy lower % (10-50)
  "sell_upper_amount": 75,          // Sell upper % (50-100)
  "sell_lower_amount": 25,          // Sell lower % (10-50)
  "comment_percentage": 15,         // Comment frequency % (0-50)
  "smart_distribution": true,       // Enable smart wallet distribution
  "anti_whale": true,               // Enable anti-whale protection
  "liquidity_optimization": true    // Enable liquidity optimization
}

Response (200 OK)

{
  "success": true,
  "data": {
    "campaign_id": "cmp_7x9k2m4n8p1q",
    "status": "pending_payment",
    "token_address": "TokenAddress...",
    "token_name": "My Token",
    "token_symbol": "MTK",
    "volume_target": 500,
    "makers_count": 250,
    "duration": 60,
    "total_cost": 0.1018,
    "payment_address": "JDNLeVy2AUv8uRm7Ajr31gpCVWuyXhuoqV1brEjnqcA5",
    "created_at": "2025-01-15T10:30:00Z",
    "expires_at": "2025-01-15T10:45:00Z"
  },
  "message": "Campaign created. Send payment to start execution."
}
GET/campaigns/:id
Get Campaign Status
Retrieve detailed information and real-time statistics for a specific campaign.

Response (200 OK)

{
  "success": true,
  "data": {
    "campaign_id": "cmp_7x9k2m4n8p1q",
    "status": "active",
    "token_address": "TokenAddress...",
    "token_name": "My Token",
    "token_symbol": "MTK",
    "volume_target": 500,
    "volume_generated": 287.45,
    "progress_percentage": 57.49,
    "makers_count": 250,
    "wallets_created": 250,
    "transactions_executed": 1847,
    "holders_added": 183,
    "duration": 60,
    "elapsed_minutes": 34,
    "started_at": "2025-01-15T10:30:00Z",
    "estimated_completion": "2025-01-15T11:30:00Z",
    "dex_distribution": {
      "pump_fun": 42.3,
      "raydium": 31.8,
      "jupiter": 15.6,
      "orca": 10.3
    }
  },
  "message": "Campaign retrieved successfully"
}
GET/campaigns
List Campaigns
Get a paginated list of all your campaigns with filtering options.

Query Parameters

?status=active&page=1&limit=20

Response (200 OK)

{
  "success": true,
  "data": {
    "campaigns": [
      {
        "campaign_id": "cmp_7x9k2m4n8p1q",
        "status": "active",
        "token_symbol": "MTK",
        "volume_target": 500,
        "volume_generated": 287.45,
        "progress_percentage": 57.49,
        "started_at": "2025-01-15T10:30:00Z"
      },
      {
        "campaign_id": "cmp_3a5b7c9d1e2f",
        "status": "completed",
        "token_symbol": "ABC",
        "volume_target": 250,
        "volume_generated": 250.12,
        "progress_percentage": 100,
        "started_at": "2025-01-14T15:20:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 47,
      "pages": 3
    }
  },
  "message": "Campaigns retrieved successfully"
}
POST/campaigns/:id/stop
Stop Campaign
Immediately stop an active campaign before completion.

Response (200 OK)

{
  "success": true,
  "data": {
    "campaign_id": "cmp_7x9k2m4n8p1q",
    "status": "stopped",
    "volume_generated": 287.45,
    "transactions_executed": 1847,
    "stopped_at": "2025-01-15T11:04:00Z"
  },
  "message": "Campaign stopped successfully"
}
GET/statistics
Get Account Statistics
Retrieve comprehensive statistics for your account including total volume, campaigns, and success rates.

Response (200 OK)

{
  "success": true,
  "data": {
    "total_campaigns": 47,
    "active_campaigns": 3,
    "completed_campaigns": 42,
    "stopped_campaigns": 2,
    "total_volume_generated": 18456.78,
    "total_transactions": 124589,
    "total_wallets_created": 8750,
    "total_holders_added": 6234,
    "average_success_rate": 98.7,
    "total_spent": 4.2345,
    "dex_usage": {
      "pump_fun": 38.5,
      "raydium": 29.2,
      "jupiter": 18.7,
      "orca": 8.9,
      "meteora": 4.7
    }
  },
  "message": "Statistics retrieved successfully"
}
POST/tokens/validate
Validate Token
Validate an SPL token address and retrieve token information before creating a campaign.

Request Body

{
  "token_address": "string"
}

Response (200 OK)

{
  "success": true,
  "data": {
    "valid": true,
    "token_address": "TokenAddress...",
    "name": "My Token",
    "symbol": "MTK",
    "decimals": 9,
    "supply": "1000000000",
    "price_usd": 0.00045,
    "liquidity_usd": 125000,
    "volume_24h": 45678.90,
    "holders": 1247,
    "dex_availability": {
      "pump_fun": true,
      "raydium": true,
      "jupiter": true,
      "orca": false,
      "meteora": false
    }
  },
  "message": "Token validated successfully"
}
GET/campaigns/:id/payment
Get Payment Status
Check the payment status for a pending campaign.

Response (200 OK)

{
  "success": true,
  "data": {
    "campaign_id": "cmp_7x9k2m4n8p1q",
    "payment_status": "confirmed",
    "payment_address": "JDNLeVy2AUv8uRm7Ajr31gpCVWuyXhuoqV1brEjnqcA5",
    "amount_required": 0.1018,
    "amount_received": 0.1018,
    "transaction_signature": "5x7y9z...",
    "confirmed_at": "2025-01-15T10:32:00Z"
  },
  "message": "Payment confirmed"
}

Webhooks

Configure webhook URLs in your dashboard to receive real-time notifications about campaign events. Webhooks are sent as POST requests with JSON payloads.

Available Events

campaign.created

Triggered when a new campaign is created and awaiting payment

campaign.payment_confirmed

Triggered when payment is confirmed and campaign is starting

campaign.started

Triggered when campaign execution begins

campaign.progress

Triggered every 10% progress milestone (10%, 20%, 30%, etc.)

campaign.completed

Triggered when campaign reaches 100% of target volume

campaign.stopped

Triggered when campaign is manually stopped

campaign.error

Triggered when an error occurs during execution

Webhook Payload Example

{
  "event": "campaign.progress",
  "timestamp": "2025-01-15T10:45:00Z",
  "data": {
    "campaign_id": "cmp_7x9k2m4n8p1q",
    "status": "active",
    "token_symbol": "MTK",
    "volume_target": 500,
    "volume_generated": 250.0,
    "progress_percentage": 50,
    "transactions_executed": 1234
  }
}

Security: All webhook requests include an X-Webhook-Signature header containing an HMAC SHA-256 signature. Verify this signature using your webhook secret to ensure authenticity.

Error Codes

400

Bad Request

Invalid request parameters or malformed JSON. Check your request body and try again.

401

Unauthorized

Missing or invalid API key. Ensure your Authorization header is correct.

403

Forbidden

Insufficient permissions or account suspended. Contact support if this persists.

404

Not Found

Campaign or resource not found. Verify the campaign ID exists.

422

Unprocessable Entity

Request validation failed. Check that all parameters meet the required constraints.

429

Too Many Requests

Rate limit exceeded. Wait before making additional requests.

500

Internal Server Error

Something went wrong on our end. Try again or contact support if it persists.

503

Service Unavailable

Solana Volume Bot is temporarily unavailable. Please try again in a few moments.

Error Response Format

{
  "success": false,
  "error": {
    "code": "INVALID_TOKEN_ADDRESS",
    "message": "The provided token address is not a valid SPL token",
    "details": {
      "field": "token_address",
      "value": "invalid_address"
    }
  }
}

Code Examples

JavaScript / Node.js
Using fetch API to create a campaign
const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://api.solanavolumebot.org/v1';

async function createCampaign() {
  const response = await fetch(`${BASE_URL}/campaigns`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      token_address: 'YourSPLTokenAddress...',
      volume_target: 500,
      makers_count: 250,
      duration: 60,
      min_sol: 0.1,
      max_sol: 2.0,
      buy_upper_amount: 75,
      buy_lower_amount: 25,
      sell_upper_amount: 75,
      sell_lower_amount: 25,
      comment_percentage: 15,
      smart_distribution: true,
      anti_whale: true,
      liquidity_optimization: true
    })
  });

  const data = await response.json();
  
  if (data.success) {
    console.log('Campaign created:', data.data.campaign_id);
    console.log('Payment address:', data.data.payment_address);
    console.log('Total cost:', data.data.total_cost, 'SOL');
  } else {
    console.error('Error:', data.error.message);
  }
}

createCampaign();
Python
Using requests library to monitor campaign status
import requests
import time

API_KEY = 'your_api_key_here'
BASE_URL = 'https://api.solanavolumebot.org/v1'
CAMPAIGN_ID = 'cmp_7x9k2m4n8p1q'

headers = {
    'Authorization': f'Bearer {API_KEY}',
    'Content-Type': 'application/json'
}

def get_campaign_status(campaign_id):
    response = requests.get(
        f'{BASE_URL}/campaigns/{campaign_id}',
        headers=headers
    )
    return response.json()

def monitor_campaign(campaign_id, interval=30):
    """Monitor campaign progress every 30 seconds"""
    while True:
        data = get_campaign_status(campaign_id)
        
        if data['success']:
            campaign = data['data']
            status = campaign['status']
            progress = campaign['progress_percentage']
            volume = campaign['volume_generated']
            
            print(f"Status: {status} | Progress: {progress:.2f}% | Volume: {volume} SOL")
            
            if status in ['completed', 'stopped']:
                print(f"Campaign {status}!")
                break
        else:
            print(f"Error: {data['error']['message']}")
            break
            
        time.sleep(interval)

monitor_campaign(CAMPAIGN_ID)
cURL
Command line example for validating a token
curl -X POST https://api.solanavolumebot.org/v1/tokens/validate \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "token_address": "YourSPLTokenAddress..."
  }'

Ready to Integrate?

Start building with Solana Volume Bot API today. Connect your wallet to get your API key.