API Documentation v1.0

API Reference

Integrate Solana Volume Bot into your platform with our comprehensive REST API. Complete documentation with code examples, authentication guides, and technical specifications.

Getting Started

The Solana Volume Bot API allows you to programmatically create and manage volume generation campaigns for Solana tokens. Our REST API uses standard HTTP methods and returns JSON responses.

API Access Required

API access is available for enterprise customers and integration partners. To request API credentials, please contact our team:

api@solanavolumebot.app

Base URL

https://api.solanavolumebot.app/v1

Quick Start Example

JavaScriptNode.js / Browser
const response = await fetch('https://api.solanavolumebot.app/v1/campaigns', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    tokenAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
    makers: 100,
    duration: 60,
    solPerMakerMin: 0.2,
    solPerMakerMax: 0.4,
    commentPercentage: 30
  })
});

const campaign = await response.json();
console.log('Campaign created:', campaign.id);

Authentication

The API uses Bearer token authentication. Include your API key in the Authorization header of every request.

Authentication Header

Authorization: Bearer YOUR_API_KEY

Example Request

cURL
curl -X GET https://api.solanavolumebot.app/v1/campaigns \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
Python
import requests

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

response = requests.get(
    'https://api.solanavolumebot.app/v1/campaigns',
    headers=headers
)

campaigns = response.json()

Security Warning

Never expose your API key in client-side code or public repositories. Always make API calls from your backend server.

API Endpoints

Complete reference for all available API endpoints with detailed request and response examples.

POST/v1/campaigns

Create a new volume generation campaign for a Solana token.

Request Body

{
  "tokenAddress": "string",        // Required: Solana token address
  "makers": number,                // Required: 100-10000
  "duration": number,              // Required: 1-1440 minutes
  "solPerMakerMin": number,        // Required: Min 0.1 SOL
  "solPerMakerMax": number,        // Required: Min 0.2 SOL
  "commentPercentage": number,     // Required: 0-100
  "webhookUrl": "string"           // Optional: Callback URL
}

Example Request

JavaScript
const campaign = await fetch('https://api.solanavolumebot.app/v1/campaigns', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    tokenAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
    makers: 150,
    duration: 120,
    solPerMakerMin: 0.2,
    solPerMakerMax: 0.5,
    commentPercentage: 40,
    webhookUrl: 'https://yourapp.com/webhook'
  })
}).then(res => res.json());

Response (201 Created)

{
  "id": "camp_1a2b3c4d5e6f",
  "status": "pending",
  "tokenAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "tokenName": "USD Coin",
  "tokenSymbol": "USDC",
  "makers": 150,
  "duration": 120,
  "solPerMakerMin": 0.2,
  "solPerMakerMax": 0.5,
  "commentPercentage": 40,
  "totalVolume": 52.5,
  "serviceFee": 0.7875,
  "estimatedComments": 60,
  "createdAt": "2025-01-15T10:30:00Z",
  "startTime": null,
  "endTime": null
}
GET/v1/campaigns/:id

Retrieve detailed information about a specific campaign.

Example Request

cURL
curl -X GET https://api.solanavolumebot.app/v1/campaigns/camp_1a2b3c4d5e6f \
  -H "Authorization: Bearer YOUR_API_KEY"

Response (200 OK)

{
  "id": "camp_1a2b3c4d5e6f",
  "status": "active",
  "tokenAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "tokenName": "USD Coin",
  "tokenSymbol": "USDC",
  "makers": 150,
  "duration": 120,
  "progress": {
    "completedMakers": 45,
    "totalVolume": 15.75,
    "commentsPosted": 18,
    "elapsedMinutes": 36
  },
  "createdAt": "2025-01-15T10:30:00Z",
  "startTime": "2025-01-15T10:35:00Z",
  "estimatedEndTime": "2025-01-15T12:35:00Z"
}
GET/v1/campaigns

List all campaigns with optional filtering and pagination.

Query Parameters

status - Filter by status (pending, active, completed, cancelled)
limit - Number of results (default: 20, max: 100)
offset - Pagination offset (default: 0)
sort - Sort order (created_desc, created_asc)

Example Request

Python
import requests

params = {
    'status': 'active',
    'limit': 10,
    'offset': 0
}

response = requests.get(
    'https://api.solanavolumebot.app/v1/campaigns',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    params=params
)

data = response.json()
print(f"Found {data['total']} campaigns")

Response (200 OK)

{
  "campaigns": [
    {
      "id": "camp_1a2b3c4d5e6f",
      "status": "active",
      "tokenSymbol": "USDC",
      "makers": 150,
      "totalVolume": 52.5,
      "createdAt": "2025-01-15T10:30:00Z"
    }
  ],
  "total": 1,
  "limit": 10,
  "offset": 0
}
DELETE/v1/campaigns/:id

Cancel a pending or active campaign. Completed work will be charged.

Example Request

JavaScript
const result = await fetch(
  'https://api.solanavolumebot.app/v1/campaigns/camp_1a2b3c4d5e6f',
  {
    method: 'DELETE',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  }
).then(res => res.json());

console.log('Campaign cancelled:', result.status);

Response (200 OK)

{
  "id": "camp_1a2b3c4d5e6f",
  "status": "cancelled",
  "completedWork": {
    "makers": 45,
    "volume": 15.75,
    "chargedFee": 0.236
  },
  "cancelledAt": "2025-01-15T11:15:00Z"
}
GET/v1/stats

Get aggregated statistics for your account.

Example Request

cURL
curl -X GET https://api.solanavolumebot.app/v1/stats \
  -H "Authorization: Bearer YOUR_API_KEY"

Response (200 OK)

{
  "totalCampaigns": 47,
  "activeCampaigns": 3,
  "totalVolume": 2847.5,
  "totalMakers": 12450,
  "totalComments": 3890,
  "averageROI": 185,
  "last30Days": {
    "campaigns": 12,
    "volume": 645.2,
    "makers": 3200
  }
}

Error Handling

The API uses standard HTTP status codes and returns detailed error messages in JSON format.

HTTP Status Codes

200OK - Request succeeded
201Created - Resource created successfully
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
404Not Found - Resource doesn't exist
429Too Many Requests - Rate limit exceeded
500Internal Server Error - Server error

Error Response Format

{
  "error": {
    "code": "invalid_parameter",
    "message": "Makers must be between 100 and 10000",
    "field": "makers",
    "value": 50
  }
}

Common Error Codes

invalid_parameter - Request parameter is invalid
missing_parameter - Required parameter is missing
invalid_token_address - Token address is invalid or not found
insufficient_balance - Account balance too low
rate_limit_exceeded - Too many requests
campaign_not_found - Campaign ID doesn't exist

Rate Limits

API requests are rate limited to ensure fair usage and system stability.

Default Limits

Requests per minute60
Requests per hour1000
Concurrent campaigns10

Rate Limit Headers

Every API response includes rate limit information in the headers:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1705320000

Need Higher Limits?

Enterprise customers can request increased rate limits. Contact api@solanavolumebot.app for custom plans.

Webhooks

Receive real-time notifications about campaign events via webhooks.

Webhook Events

campaign.started - Campaign execution began
campaign.completed - Campaign finished successfully
campaign.cancelled - Campaign was cancelled
campaign.failed - Campaign encountered an error
campaign.progress - Progress update (every 25%)

Webhook Payload

{
  "event": "campaign.completed",
  "timestamp": "2025-01-15T12:35:00Z",
  "data": {
    "id": "camp_1a2b3c4d5e6f",
    "status": "completed",
    "tokenSymbol": "USDC",
    "makers": 150,
    "totalVolume": 52.5,
    "commentsPosted": 60,
    "duration": 120,
    "completedAt": "2025-01-15T12:35:00Z"
  }
}

Webhook Verification

Verify webhook authenticity using the signature header:

Node.js
const crypto = require('crypto');

function verifyWebhook(payload, signature, secret) {
  const hmac = crypto.createHmac('sha256', secret);
  const digest = hmac.update(payload).digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(digest)
  );
}

// In your webhook handler
app.post('/webhook', (req, res) => {
  const signature = req.headers['x-webhook-signature'];
  const isValid = verifyWebhook(
    JSON.stringify(req.body),
    signature,
    process.env.WEBHOOK_SECRET
  );
  
  if (!isValid) {
    return res.status(401).send('Invalid signature');
  }
  
  // Process webhook...
  res.status(200).send('OK');
});

Need Help?

Our team is here to help you integrate and succeed with the Solana Volume Bot API. Get in touch for technical support, API access, or custom solutions.

API Documentation - Solana Volume Bot Integration Guide