Home Python Docs JavaScript Docs Rust Docs Examples API Reference Bot Services
POST

Connect to Broker

Establishes a secure connection to the binary options broker platform.

Request Parameters

Parameter Type Required Description
username string Account username or email
password string Account password
demo boolean - Use demo account (default: true)
timeout integer - Connection timeout in seconds (default: 30)

Response Schema

{
  "success": true,
  "message": "Connection established successfully",
  "data": {
    "session_id": "abc123def456",
    "account_type": "demo",
    "server_time": "2025-06-05T10:30:00Z",
    "connection_id": "conn_789xyz"
  },
  "timestamp": "2025-06-05T10:30:00Z"
}

Status Codes

200 Connection successful
401 Invalid credentials
408 Connection timeout
503 Service unavailable
# Python Example
from binary_options_tools import BinaryOptionsAPI

api = BinaryOptionsAPI()

# Connect to demo account
try:
    result = await api.connect(
        username="your_username",
        password="your_password",
        demo=True,
        timeout=30
    )
    
    if result.success:
        print(f"Connected! Session ID: {result.data.session_id}")
        print(f"Account type: {result.data.account_type}")
    else:
        print(f"Connection failed: {result.message}")
        
except Exception as e:
    print(f"Error: {e}")
// JavaScript Example
const { BinaryOptionsAPI } = require('binary-options-tools');

const api = new BinaryOptionsAPI();

// Connect to demo account
try {
    const result = await api.connect({
        username: 'your_username',
        password: 'your_password',
        demo: true,
        timeout: 30000
    });
    
    if (result.success) {
        console.log(`Connected! Session ID: ${result.data.sessionId}`);
        console.log(`Account type: ${result.data.accountType}`);
    } else {
        console.log(`Connection failed: ${result.message}`);
    }
} catch (error) {
    console.error(`Error: ${error.message}`);
}
// Rust Example
use binary_options_tools::{BinaryOptionsAPI, ConnectionConfig};

#[tokio::main]
async fn main() -> Result<(), Box> {
    let api = BinaryOptionsAPI::new();
    
    // Connect to demo account
    let config = ConnectionConfig {
        username: "your_username".to_string(),
        password: "your_password".to_string(),
        demo: true,
        timeout: 30,
    };
    
    match api.connect(config).await {
        Ok(result) => {
            if result.success {
                println!("Connected! Session ID: {}", result.data.session_id);
                println!("Account type: {}", result.data.account_type);
            } else {
                println!("Connection failed: {}", result.message);
            }
        }
        Err(e) => println!("Error: {}", e),
    }
    
    Ok(())
}
POST

Place Trade

Places a new binary options trade with specified parameters.

Request Parameters

Parameter Type Required Description
asset string Trading asset symbol (e.g., "EURUSD", "BTCUSD")
amount number Trade amount in account currency
direction string Trade direction: "call" or "put"
expiry_time integer Expiry time in seconds (60, 120, 300, etc.)
trade_type string - Trade type: "binary" or "turbo" (default: "binary")

Response Schema

{
  "success": true,
  "message": "Trade placed successfully",
  "data": {
    "trade_id": "trade_123456789",
    "asset": "EURUSD",
    "amount": 10.00,
    "direction": "call",
    "entry_price": 1.0850,
    "expiry_time": 60,
    "expected_payout": 18.50,
    "payout_percentage": 85,
    "status": "active",
    "created_at": "2025-06-05T10:30:00Z"
  },
  "timestamp": "2025-06-05T10:30:00Z"
}

Status Codes

201 Trade created successfully
400 Invalid parameters
402 Insufficient funds
403 Market closed
# Python Example
# Place a $10 CALL trade on EUR/USD for 1 minute
try:
    result = await api.place_trade(
        asset="EURUSD",
        amount=10.0,
        direction="call",
        expiry_time=60,
        trade_type="binary"
    )
    
    if result.success:
        trade = result.data
        print(f"Trade placed successfully!")
        print(f"Trade ID: {trade.trade_id}")
        print(f"Entry price: {trade.entry_price}")
        print(f"Expected payout: ${trade.expected_payout}")
        print(f"Payout percentage: {trade.payout_percentage}%")
    else:
        print(f"Trade failed: {result.message}")
        
except Exception as e:
    print(f"Error placing trade: {e}")
// JavaScript Example
// Place a $10 CALL trade on EUR/USD for 1 minute
try {
    const result = await api.placeTrade({
        asset: 'EURUSD',
        amount: 10.0,
        direction: 'call',
        expiryTime: 60,
        tradeType: 'binary'
    });
    
    if (result.success) {
        const trade = result.data;
        console.log('Trade placed successfully!');
        console.log(`Trade ID: ${trade.tradeId}`);
        console.log(`Entry price: ${trade.entryPrice}`);
        console.log(`Expected payout: $${trade.expectedPayout}`);
        console.log(`Payout percentage: ${trade.payoutPercentage}%`);
    } else {
        console.log(`Trade failed: ${result.message}`);
    }
} catch (error) {
    console.error(`Error placing trade: ${error.message}`);
}
// Rust Example
use binary_options_tools::TradeRequest;

// Place a $10 CALL trade on EUR/USD for 1 minute
let trade_request = TradeRequest {
    asset: "EURUSD".to_string(),
    amount: 10.0,
    direction: "call".to_string(),
    expiry_time: 60,
    trade_type: Some("binary".to_string()),
};

match api.place_trade(trade_request).await {
    Ok(result) => {
        if result.success {
            let trade = result.data;
            println!("Trade placed successfully!");
            println!("Trade ID: {}", trade.trade_id);
            println!("Entry price: {}", trade.entry_price);
            println!("Expected payout: ${:.2}", trade.expected_payout);
            println!("Payout percentage: {}%", trade.payout_percentage);
        } else {
            println!("Trade failed: {}", result.message);
        }
    }
    Err(e) => println!("Error placing trade: {}", e),
}
GET

Get Account Balance

Retrieves current account balance and currency information.

Response Schema

{
  "success": true,
  "message": "Balance retrieved successfully",
  "data": {
    "real_balance": 1250.75,
    "demo_balance": 10000.00,
    "currency": "USD",
    "account_type": "demo",
    "last_updated": "2025-06-05T10:30:00Z"
  },
  "timestamp": "2025-06-05T10:30:00Z"
}
# Python Example
try:
    result = await api.get_balance()
    
    if result.success:
        balance = result.data
        print(f"Real balance: {balance.real_balance} {balance.currency}")
        print(f"Demo balance: {balance.demo_balance} {balance.currency}")
        print(f"Account type: {balance.account_type}")
    else:
        print(f"Failed to get balance: {result.message}")
        
except Exception as e:
    print(f"Error: {e}")
// JavaScript Example
try {
    const result = await api.getBalance();
    
    if (result.success) {
        const balance = result.data;
        console.log(`Real balance: ${balance.realBalance} ${balance.currency}`);
        console.log(`Demo balance: ${balance.demoBalance} ${balance.currency}`);
        console.log(`Account type: ${balance.accountType}`);
    } else {
        console.log(`Failed to get balance: ${result.message}`);
    }
} catch (error) {
    console.error(`Error: ${error.message}`);
}
// Rust Example
match api.get_balance().await {
    Ok(result) => {
        if result.success {
            let balance = result.data;
            println!("Real balance: {:.2} {}", balance.real_balance, balance.currency);
            println!("Demo balance: {:.2} {}", balance.demo_balance, balance.currency);
            println!("Account type: {}", balance.account_type);
        } else {
            println!("Failed to get balance: {}", result.message);
        }
    }
    Err(e) => println!("Error: {}", e),
}
WS

Real-time Price Stream

WebSocket connection for real-time price updates and market data.

Connection Parameters

Parameter Type Required Description
assets array List of asset symbols to stream
update_frequency integer - Update frequency in milliseconds (default: 1000)

WebSocket Events

price_update
{
  "event": "price_update",
  "data": {
    "asset": "EURUSD",
    "bid": 1.0850,
    "ask": 1.0852,
    "timestamp": "2025-06-05T10:30:00.123Z"
  }
}
candle_update
{
  "event": "candle_update",
  "data": {
    "asset": "EURUSD",
    "timeframe": "1m",
    "open": 1.0845,
    "high": 1.0860,
    "low": 1.0840,
    "close": 1.0850,
    "volume": 1234,
    "timestamp": "2025-06-05T10:30:00Z"
  }
}
# Python WebSocket Example
import asyncio

async def price_handler(data):
    print(f"{data['asset']}: {data['bid']} / {data['ask']}")

async def main():
    # Start price stream
    stream = api.start_price_stream(
        assets=["EURUSD", "GBPUSD", "BTCUSD"],
        update_frequency=1000
    )
    
    # Listen for price updates
    async for price_update in stream:
        await price_handler(price_update)

asyncio.run(main())
// JavaScript WebSocket Example
// Start price stream
const stream = api.startPriceStream({
    assets: ['EURUSD', 'GBPUSD', 'BTCUSD'],
    updateFrequency: 1000
});

// Listen for price updates
stream.on('price_update', (data) => {
    console.log(`${data.asset}: ${data.bid} / ${data.ask}`);
});

stream.on('candle_update', (data) => {
    console.log(`${data.asset} candle: O:${data.open} H:${data.high} L:${data.low} C:${data.close}`);
});

stream.on('error', (error) => {
    console.error('Stream error:', error);
});

// Start streaming
await stream.connect();
// Rust WebSocket Example
use futures::StreamExt;

// Start price stream
let mut stream = api.start_price_stream(vec![
    "EURUSD".to_string(),
    "GBPUSD".to_string(),
    "BTCUSD".to_string()
], 1000).await?;

// Listen for price updates
while let Some(price_update) = stream.next().await {
    match price_update {
        Ok(data) => {
            println!("{}: {} / {}", data.asset, data.bid, data.ask);
        }
        Err(e) => {
            eprintln!("Stream error: {}", e);
            break;
        }
    }
}

Need a Custom Trading Bot?

Let our experts build a professional trading bot tailored to your strategy using BinaryOptionsToolsV2.