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
JavaScript
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 '';
}