Skip to main content

Build portfolio & analytics apps

Build portfolio trackers, performance dashboards, or risk analysis tools. Access live portfolio snapshots, historical performance, and instrument-level data.

Why eToro?

  • Live portfolio snapshots with real-time PnL, equity, and margin data
  • Granular historical performance for backtesting and analytics
  • Instrument-level data across equities and crypto
  • Market Data API for pricing, OHLC candles, and exchange metadata
  • Watchlists API for building custom screeners and alerts

How it works

Your App
Portfolio API
Market Data API
Dashboard

Code example

portfolio_tracker.js
const BASE = "https://public-api.etoro.com/api/v1";
const headers = {
  "x-api-key": process.env.ETORO_API_KEY,
  "x-user-key": process.env.ETORO_USER_KEY,
  "x-request-id": crypto.randomUUID(),
};

// Get portfolio snapshot
const portfolio = await fetch(
  `${BASE}/demo-trading/portfolio`,
  { headers }
).then(r => r.json());

const { equity, pnl, positions } = portfolio.data;
console.log(`Equity: $${equity} | PnL: $${pnl}`);

// Get instrument details for each position
for (const pos of positions) {
  const instrument = await fetch(
    `${BASE}/market-data/instruments/${pos.instrumentId}`,
    { headers }
  ).then(r => r.json());

  console.log(`${instrument.data.name}: ${pos.pnl}`);
}

// Get OHLC candles for charting
const candles = await fetch(
  `${BASE}/market-data/instruments/1001/candles?period=1d&count=30`,
  { headers }
).then(r => r.json());

console.log(`Last 30 days: ${candles.data.length} candles`);

Relevant APIs

Trading (Real)11
Trading (Demo)10
Market Data8
Users Info6

Ready to start?

We use cookies to improve your experience. By using this site, you agree to our use of cookies. Privacy Policy (opens in new tab)