Yahoo Finance API via RapidAPI
Published: May 11, 2023 | Last Modified: May 13, 2025
Categories: JavaScript nodejs
This program loads comma-separated stock symbols from a file named symbols.txt
and then queries the Yahoo Finance API using a RapidAPI endpoint. It retrieves prices for every 60 minutes on a max time window.
Prerequisites
Node.js
https://nodejs.org/en/download
RapidAPI API key
https://rapidapi.com/auth/sign-up
Program
const unirest = require('unirest');
const fs = require('fs');
// Function to add a delay
function delay(time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
fs.readFile('symbols.txt', 'utf8', async (err, data) => {
if (err) throw err;
const symbols = data.split(",");
for (let symbol of symbols) {
const req = unirest('GET', 'https://apidojo-yahoo-finance-v1.p.rapidapi.com/stock/v2/get-chart');
req.query({
interval: '60m',
symbol: symbol,
range: 'max',
region: 'US'
});
req.headers({
'X-RapidAPI-Key': '',
'X-RapidAPI-Host': 'apidojo-yahoo-finance-v1.p.rapidapi.com'
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
fs.writeFile(`data/${symbol}.json`, JSON.stringify(res.body, null, 2), err => {
if (err) throw err;
console.log(`Saved data for ${symbol}`);
});
});
// Wait for 10 seconds before the next API call
await delay(10000);
}
});