get real-time stock data for free in Node.js
Hidden Robinhood pages are opened programmatically for each stock. When the price of a stock changes in realtime, the price and symbol is sent over.
Regular
Using npm:
npm install pure-realtime-stock
Using yarn:
yarn add pure-realtime-stock
Ubuntu
- Run installation as root and add
--unsafe-perm=true
flag - Install Puppeteer dependencies using
sh node_modules/pure-realtime-stock/deps.sh
Creates a new EventEmitter that outputs realtime stock prices.
const RealtimeStock = require("pure-realtime-stock");
const realtime = new RealtimeStock();
Subscribe to the price movements of a stock with the symbol.
realtime.subscribe("ROKU");
// The realtime "priceMoved" event will now output ROKU's price movements.
Unsubscribe from a stock's price movements.
realtime.unsubscribe("ROKU");
// The realtime "priceMoved" event will stop outputting ROKU's price movements.
Gets a stock price.
realtime.getPrice("ROKU").then(price => console.log(`ROKU's current price is ${price}.`));
Gets a stock's information as found on a Robinhood page.
realtime.getInformation("ROKU").then(info => {
console.log(info);
realtime.close();
});
Should be ran at the end of your program to close the connection with Robinhood. If close
is not called, the program will not exit.
realtime.getPrice("ROKU").then(price => {
console.log(price);
realtime.close();
});
Listens for price movements of all the subscribed stocks.
realtime.on("priceMoved", ({ stock, price }) => console.log(`${stock} moved... new price is ${price}`);
Listens for event messages or non-fatal problems.
realtime.unsubscribe("BLARG123");
realtime.on("debug", (x) => console.log(x));
// Output: BLARG123 is not a subscription.
Listens for internal error logs.
realtime.on("logs", (e) => console.log(e));
Feel free to send any pull requests this way!
$ git clone https://github.com/jackHedaya/pure-realtime-stock
$ cd pure-realtime-stock && yarn