Skip to content

jackHedaya/pure-realtime-stock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pure-realtime-stock

NPM Downloads NPM Version

get real-time stock data for free in Node.js

How does it work?

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.

Installation

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

Usage

RealtimeStock()

Creates a new EventEmitter that outputs realtime stock prices.

const RealtimeStock = require("pure-realtime-stock");
const realtime = new RealtimeStock();

.subscribe(stock : string)

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(stock : string)

Unsubscribe from a stock's price movements.

realtime.unsubscribe("ROKU");

// The realtime "priceMoved" event will stop outputting ROKU's price movements.

.getPrice(stock : string)

Gets a stock price.

realtime.getPrice("ROKU").then(price => console.log(`ROKU's current price is ${price}.`));

.getInformation(stock: string)

Gets a stock's information as found on a Robinhood page.

realtime.getInformation("ROKU").then(info => {
 console.log(info);
 realtime.close();
});

.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();
});

.on("priceMoved", callback( { stock : string, price : number } ) )

Listens for price movements of all the subscribed stocks.

realtime.on("priceMoved", ({ stock, price }) => console.log(`${stock} moved... new price is ${price}`);

.on("debug", callback(error : string))

Listens for event messages or non-fatal problems.

realtime.unsubscribe("BLARG123");

realtime.on("debug", (x) => console.log(x));
// Output: BLARG123 is not a subscription.

.on("logs", callback(error : string))

Listens for internal error logs.

realtime.on("logs", (e) => console.log(e));

Contributing

Feel free to send any pull requests this way!

Getting Started

  • $ git clone https://github.com/jackHedaya/pure-realtime-stock
  • $ cd pure-realtime-stock && yarn

Dependencies