Connect to Broker
Establishes a secure connection to the binary options broker platform.
Request Parameters
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
# 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(())
}
Place Trade
Places a new binary options trade with specified parameters.
Request Parameters
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
# 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 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),
}
Real-time Price Stream
WebSocket connection for real-time price updates and market data.
Connection Parameters
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;
}
}
}