Documentation/JavaScript API
📜

JavaScript API

Node.js and browser support with modern ES6+ syntax, promises, and async/await

📦 Installation

npm install @rick-29/binary-options-tools

Or with Yarn:

yarn add @rick-29/binary-options-tools

Requires Node.js 14.0 or higher

🚀 Quick Start

Node.js (CommonJS)

quickstart.js
const { PocketOption } = require('@rick-29/binary-options-tools');

async function main() {
  // Initialize connection
  const api = new PocketOption('your-session-id');
  await new Promise(resolve => setTimeout(resolve, 5000));
  
  // Get balance
  const balance = await api.balance();
  console.log(`Balance: $${balance}`);
  
  // Place a trade
  const { tradeId, tradeData } = await api.buy({
    asset: 'EURUSD_otc',
    amount: 1.0,
    time: 60,
    action: 'call'
  });
  console.log(`Trade ID: ${tradeId}`);
  
  // Wait and check result
  await new Promise(resolve => setTimeout(resolve, 65000));
  const won = await api.checkWin(tradeId);
  console.log(`Won: ${won}`);
}

main().catch(console.error);

ES6 Modules

index.mjs
import { PocketOption } from '@rick-29/binary-options-tools';

const api = new PocketOption('your-session-id');

// Wait for connection
await new Promise(resolve => setTimeout(resolve, 5000));

// Get balance
const balance = await api.balance();
console.log(`Balance: $${balance}`);

// Place trade
const { tradeId } = await api.buy({
  asset: 'EURUSD_otc',
  amount: 1.0,
  time: 60
});

🔧 Key Methods

Trading

api.buy(options)

Place a CALL trade

Returns: Promise<{ tradeId: number, tradeData: object }>
api.sell(options)

Place a PUT trade

Returns: Promise<{ tradeId: number, tradeData: object }>
api.checkWin(tradeId)

Check if trade won

Returns: Promise<boolean>

Account

api.balance()

Get account balance

Returns: Promise<number>
api.profile()

Get profile information

Returns: Promise<object>

Market Data

api.getCandles(asset, period, count)

Get historical candle data

Returns: Promise<Array>
api.getPayout(asset)

Get payout percentage

Returns: Promise<number>
api.subscribeSymbol(asset, callback)

Subscribe to real-time price updates

Returns: void

⚠️ Error Handling

try {
  const balance = await api.balance();
  console.log(`Balance: $${balance}`);
} catch (error) {
  if (error.code === 'UNAUTHORIZED') {
    console.error('Invalid SSID');
  } else if (error.code === 'CONNECTION_ERROR') {
    console.error('Failed to connect');
  } else {
    console.error('Error:', error.message);
  }
}

🔷 TypeScript Support

The library includes TypeScript definitions for enhanced type safety:

import { PocketOption, TradeOptions, TradeResult } from '@rick-29/binary-options-tools';

const api: PocketOption = new PocketOption('your-ssid');

const options: TradeOptions = {
  asset: 'EURUSD_otc',
  amount: 1.0,
  time: 60,
  action: 'call'
};

const result: TradeResult = await api.buy(options);
const balance: number = await api.balance();