Documentação Completa

Sistema profissional de trading analytics com tecnologia avançada de pool de conexões, cache inteligente e monitoramento em tempo real.
Desenvolvido para traders que precisam de dados precisos e performance ultra-otimizada.

🚀 Introdução

A Bullex Analytics API permite gerenciar múltiplas contas de trading simultaneamente com reutilização de SSID e atualizações em tempo real. Nossa API é construída com tecnologia de ponta para oferecer performance e confiabilidade máximas.

Ultra Performance
Pool de conexões inteligente com cache otimizado e reutilização automática de SSID para máxima velocidade.
🔄
Tempo Real
WebSocket persistente com atualizações instantâneas de saldo, trades e dados de mercado.
🛡️
Segurança Avançada
Proteção de credenciais, sessões seguras e validação automática de integridade.

URL Base

https://api.bullex-analytics.com/v1

Autenticação

Todas as requisições requerem autenticação via credenciais Bull-ex. O sistema gerencia automaticamente sessões e renovação de tokens.

🛠️ Endpoints

POST /api/connections

Adiciona uma nova conta Bull-ex ao pool de conexões ativas.

Parâmetros do Body:

Campo Tipo Obrigatório Descrição
email string Sim Email da conta Bull-ex
password string Sim Senha da conta
connection_id string Não ID personalizado (auto-gerado se omitido)
GET /api/status

Verifica o status da conexão, informações da sessão e dados do perfil do usuário conectado.

GET /api/balances

Consulta saldos atuais de todas as contas conectadas com detecção automática de moeda.

GET /api/connections/{id}/history

Obtém histórico completo de trades de uma conexão específica.

Parâmetros de Query:

Parâmetro Tipo Descrição
limit integer Número máximo de trades (padrão: 100, máximo: 1000)
GET /api/pnl/aggregated

Calcula PnL agregado de todas as contas para análise de performance.

Parâmetros de Query:

Parâmetro Tipo Descrição
date string Data no formato YYYY-MM-DD (hoje se omitido)

💻 Exemplos de Código

PHP - Classe Completa

baseUrl = rtrim($baseUrl, '/') . '/api';
        }
    }

    /**
     * Adiciona uma nova conexão Bull-ex
     */
    public function addConnection($email, $password, $connectionId = null) {
        $data = [
            'email' => $email,
            'password' => $password
        ];

        if ($connectionId) {
            $data['connection_id'] = $connectionId;
        }

        return $this->makeRequest('POST', '/connections', $data);
    }

    /**
     * Obtém status de todas as conexões
     */
    public function getStatus() {
        return $this->makeRequest('GET', '/status');
    }

    /**
     * Obtém saldos de todas as contas
     */
    public function getAllBalances() {
        return $this->makeRequest('GET', '/balances');
    }

    /**
     * Obtém PnL agregado
     */
    public function getAggregatedPnL($date = null) {
        $url = '/pnl/aggregated';
        if ($date) {
            $url .= '?date=' . urlencode($date);
        }
        return $this->makeRequest('GET', $url);
    }

    /**
     * Obtém saldo de conexão específica
     */
    public function getConnectionBalance($connectionId) {
        return $this->makeRequest('GET', "/connections/{$connectionId}/balance");
    }

    /**
     * Obtém histórico de conexão específica
     */
    public function getConnectionHistory($connectionId, $limit = 100) {
        return $this->makeRequest('GET', "/connections/{$connectionId}/history?limit={$limit}");
    }

    /**
     * Remove uma conexão
     */
    public function removeConnection($connectionId) {
        return $this->makeRequest('DELETE', "/connections/{$connectionId}");
    }

    /**
     * Faz requisição HTTP
     */
    private function makeRequest($method, $endpoint, $data = null) {
        $url = $this->baseUrl . $endpoint;

        $ch = curl_init();
        curl_setopt_array($ch, [
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => $this->timeout,
            CURLOPT_HTTPHEADER => [
                'Content-Type: application/json',
                'Accept: application/json',
                'User-Agent: BullexAnalytics-PHP/1.0'
            ]
        ]);

        if ($method === 'POST') {
            curl_setopt($ch, CURLOPT_POST, true);
            if ($data) {
                curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
            }
        } elseif ($method === 'DELETE') {
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
        }

        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $error = curl_error($ch);
        curl_close($ch);

        if ($error) {
            throw new Exception("cURL Error: " . $error);
        }

        return [
            'status_code' => $httpCode,
            'data' => json_decode($response, true),
            'raw_response' => $response
        ];
    }
}

// Exemplo de uso
try {
    $api = new BullexAnalyticsAPI();

    // Adicionar conexão
    $result = $api->addConnection('email@dominio.com', '123456');

    if ($result['data']['success']) {
        $connectionId = $result['data']['connection_id'];
        echo "✅ Conexão adicionada: {$connectionId}\n";

        // Aguardar conexão estabelecer
        sleep(3);

        // Obter saldo
        $balance = $api->getConnectionBalance($connectionId);
        echo "💰 Saldo: " . json_encode($balance['data']) . "\n";

        // Obter histórico
        $history = $api->getConnectionHistory($connectionId, 50);
        $tradeCount = count($history['data']['data'] ?? []);
        echo "📊 Histórico: {$tradeCount} trades\n";

        // PnL agregado
        $pnl = $api->getAggregatedPnL();
        $totalPnl = $pnl['data']['data']['total_pnl'] ?? 0;
        echo "📈 PnL Total: R$ {$totalPnl}\n";
    } else {
        echo "❌ Erro: " . ($result['data']['message'] ?? 'Erro desconhecido') . "\n";
    }

} catch (Exception $e) {
    echo "🔥 Exception: " . $e->getMessage() . "\n";
}
?>
📦 Downloads

Baixe os exemplos completos e classes prontas para uso em seus projetos