UNPKG

nse-stock-india

Version:

A simple Node.js package to fetch stock data from NSE India. with live data , historical data

56 lines (46 loc) 1.74 kB
export const fetchData = async (symbol, cookie) => { try { const response = await fetch(`https://www.nseindia.com/api/quote-equity?symbol=${symbol}`, { method: 'GET', headers: { 'Accept': 'application/json', 'Cookie': cookie }, }); if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return await response.json(); } catch (error) { console.error(`Failed to fetch data for symbol "${symbol}":`, error.message); return null; } }; export const fetchHistoricalData = async (symbol, from, to, series, cookie) => { try { const seriesParam = encodeURIComponent(JSON.stringify(series)); const response = await fetch(`https://www.nseindia.com/api/historical/cm/equity?symbol=${symbol}&series=${seriesParam}&from=${from}&to=${to}`, { method: 'GET', headers: { 'Accept': 'application/json', 'Cookie': cookie }, }); if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return await response.json(); } catch (error) { console.error(`Failed to fetch data for symbol "${symbol}":`, error.message); return null; } }; export const extractCookies = (cookieStr) => { const nsitMatch = cookieStr.match(/nsit=([^;]+)/); const nseappidMatch = cookieStr.match(/nseappid=([^;]+)/); // console.log(nseappidMatch[1]) if (nsitMatch && nseappidMatch) { return `${nsitMatch[0]}; ${nseappidMatch[0]}`; } return ''; }