API Reference

Complete API documentation with endpoints, parameters, and response examples

v3.6
Current Version
REST
API Type
JSON
Data Format

Base URL

https://api.nebulasolai.xyz/v1

All API endpoints are relative to this base URL.

🔐 Authentication

Include your API key in the Authorization header for all requests.

cURL
JavaScript
Python
curl -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     https://api.nebulasolai.xyz/v1/tokens/analyze
const response = await fetch('https://api.nebulasolai.xyz/v1/tokens/analyze', {
    headers: {
        'Authorization': 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json'
    }
});
import requests

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

response = requests.get('https://api.nebulasolai.xyz/v1/tokens/analyze', headers=headers)

Analyze Token

POST /tokens/analyze

Get comprehensive analysis for any token including price, liquidity, holders, security checks, and risk assessment.

Request Body

Parameter Type Required Description
address string Required Token contract address
network string Optional Blockchain network (default: solana)
includeHolders boolean Optional Include top holders data
includeHistory boolean Optional Include 24h price history

Example Request

cURL
JavaScript
Python
curl -X POST https://api.nebulasolai.xyz/v1/tokens/analyze \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "address": "So11111111111111111111111111111111111111112",
       "network": "solana",
       "includeHolders": true
     }'
const response = await fetch('https://api.nebulasolai.xyz/v1/tokens/analyze', {
    method: 'POST',
    headers: {
        'Authorization': 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        address: 'So11111111111111111111111111111111111111112',
        network: 'solana',
        includeHolders: true
    })
});

const data = await response.json();
console.log(data);
import requests

url = 'https://api.nebulasolai.xyz/v1/tokens/analyze'
headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
}
data = {
    'address': 'So11111111111111111111111111111111111111112',
    'network': 'solana',
    'includeHolders': True
}

response = requests.post(url, headers=headers, json=data)
print(response.json())

Response

200 OK
{
    "success": true,
    "data": {
        "address": "So11111111111111111111111111111111111111112",
        "symbol": "SOL",
        "name": "Wrapped Solana",
        "price": 98.45,
        "priceChange24h": 5.2,
        "priceChangePercent24h": 5.58,
        "marketCap": 45000000000,
        "volume24h": 2500000000,
        "liquidity": 850000000,
        "holders": 1245000,
        "riskScore": 15,
        "riskLevel": "LOW",
        "securityChecks": {
            "mintable": false,
            "freezable": false,
            "renounced": true,
            "liquidityLocked": true,
            "verified": true
        },
        "topHolders": [
            {
                "address": "5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1",
                "balance": 1234567.89,
                "percentage": 2.5
            }
        ],
        "timestamp": "2026-01-12T10:30:00Z"
    }
}

Get Token Price

GET /tokens/{address}/price

Get current price and 24h change for a specific token.

Path Parameters

Parameter Type Description
address string Token contract address

Example Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://api.nebulasolai.xyz/v1/tokens/So11111111111111111111111111111111111111112/price

Response

{
    "success": true,
    "data": {
        "address": "So11111111111111111111111111111111111111112",
        "symbol": "SOL",
        "price": 98.45,
        "priceChange24h": 5.2,
        "priceChangePercent24h": 5.58,
        "volume24h": 2500000000,
        "timestamp": "2026-01-12T10:30:00Z"
    }
}

Get Wallet Portfolio

GET /wallets/{address}/portfolio

Get complete portfolio for a wallet including all tokens, total value, and PnL.

Path Parameters

Parameter Type Description
address string Wallet address

Example Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://api.nebulasolai.xyz/v1/wallets/5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1/portfolio

Response

{
    "success": true,
    "data": {
        "address": "5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1",
        "totalValue": 125000.50,
        "totalValueChange24h": 5240.25,
        "totalValueChangePercent24h": 4.38,
        "tokens": [
            {
                "address": "So11111111111111111111111111111111111111112",
                "symbol": "SOL",
                "name": "Wrapped Solana",
                "balance": 1000,
                "price": 98.45,
                "value": 98450,
                "change24h": 4.5
            },
            {
                "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "symbol": "USDC",
                "name": "USD Coin",
                "balance": 25000,
                "price": 1.00,
                "value": 25000,
                "change24h": 0.0
            }
        ],
        "tokenCount": 2,
        "timestamp": "2026-01-12T10:30:00Z"
    }
}

Get Wallet Transactions

GET /wallets/{address}/transactions

Get transaction history for a wallet with filtering options.

Query Parameters

Parameter Type Default Description
limit integer 50 Number of transactions to return (max: 100)
type string all Transaction type: swap, transfer, all
offset integer 0 Pagination offset

Example Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
     "https://api.nebulasolai.xyz/v1/wallets/5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1/transactions?limit=10&type=swap"

Response

{
    "success": true,
    "data": {
        "transactions": [
            {
                "signature": "5J8W...",
                "type": "swap",
                "timestamp": "2026-01-12T10:25:00Z",
                "tokenIn": {
                    "address": "So11111111111111111111111111111111111111112",
                    "symbol": "SOL",
                    "amount": 10
                },
                "tokenOut": {
                    "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                    "symbol": "USDC",
                    "amount": 984.50
                },
                "dex": "Raydium",
                "success": true
            }
        ],
        "total": 245,
        "limit": 10,
        "offset": 0
    }
}

AI Query

POST /ai/query

Ask AI questions about tokens, wallets, or market trends.

Request Body

Parameter Type Required Description
question string Required Question to ask the AI
context object Optional Additional context (token addresses, etc.)

Example Request

curl -X POST https://api.nebulasolai.xyz/v1/ai/query \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "question": "Is SOL a good investment right now?",
       "context": {
         "includeMarketData": true,
         "includeRiskAnalysis": true
       }
     }'

Response

{
    "success": true,
    "data": {
        "answer": "Based on current market conditions, SOL shows positive indicators...",
        "confidence": 0.85,
        "sources": [
            "Real-time price data",
            "Volume analysis",
            "Market trends"
        ],
        "recommendations": [
            "Monitor volume trends",
            "Set stop-loss at $90"
        ],
        "timestamp": "2026-01-12T10:30:00Z"
    }
}

WebSocket Connection

Connect to real-time data streams via WebSocket.

wss://ws.nebulasolai.xyz/v1

Connection Example

const ws = new WebSocket('wss://ws.nebulasolai.xyz/v1');

ws.onopen = () => {
    // Authenticate
    ws.send(JSON.stringify({
        type: 'auth',
        apiKey: 'YOUR_API_KEY'
    }));
};

ws.onmessage = (event) => {
    const data = JSON.parse(event.data);
    console.log('Received:', data);
};

Subscribe to Updates

Subscribe to real-time price, volume, and transaction updates.

Available Channels

Channel Description Update Frequency
token.price Real-time price updates ~1 second
token.volume Volume changes ~5 seconds
wallet.transactions New transactions Instant
market.trends Market trends ~30 seconds

Subscribe Example

// Subscribe to token price updates
ws.send(JSON.stringify({
    type: 'subscribe',
    channel: 'token.price',
    params: {
        address: 'So11111111111111111111111111111111111111112'
    }
}));

// Handle updates
ws.onmessage = (event) => {
    const data = JSON.parse(event.data);
    if (data.channel === 'token.price') {
        console.log('New price:', data.price);
    }
};

Rate Limits

Plan Requests/Minute Daily Limit WebSocket Connections
Free 60 10,000 1
Pro 300 100,000 5
Enterprise Unlimited Unlimited Unlimited

Rate Limit Headers: Each response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.

Error Codes

Code Status Description
INVALID_API_KEY 401 API key is missing or invalid
RATE_LIMIT_EXCEEDED 429 Too many requests, slow down
INVALID_ADDRESS 400 Invalid wallet or token address format
RESOURCE_NOT_FOUND 404 Requested resource doesn't exist
INTERNAL_ERROR 500 Server error, please retry

Ready to Get Started?

Get your API key and start building with Nebula Analytics