javascript: function makeHttpObject() { try { return new XMLHttpRequest(); } catch (error) {} try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (error) {} try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (error) {} throw new Error('Could not create HTTP request object!'); } var id = 'YOUR_ID_HERE'; var token = 'YOUR_TOKEN_HERE'; var numberWithCommas = (x) => { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.') + ' VNĐ'; }; var getProfit = new Promise(function (resolve, reject) { var request = makeHttpObject(); request.open( 'GET', `https://trade-api.vndirect.com.vn/accounts/v3/${id}/portfolio` ); request.setRequestHeader('x-auth-token', token); request.send(null); request.onreadystatechange = function () { if (request.readyState == 4) { var data = JSON.parse(request.responseText); resolve(data); } }; }); getProfit.then((data) => { let text = `Gain/Loss: ${numberWithCommas(data.profit)} - Percent: ${ Math.round(data.ratio * 10000) / 100 }%\n---\n`; data.stocks.forEach((s) => { text += `${s.symbol} || Current: ${ s.currentPrice / 1000 } || G/L: ${numberWithCommas(s.gainLoss)} || ${ Math.round(s.gainLossRatio * 10000) / 100 }%\n`; }); alert(text); });