robinhood on rails

A web dashboard for the free trading platform Robinhood using Ruby on Rails and a private API

151
53
Ruby

Robinhood on Rails

Robinhood on Rails is a simple web-based dashboard for the free stock trading phone app Robinhood. Users can buy, sell, and research stocks, all for no charge. You’re presented with your autorefreshing portfolio after logging in: (more screenshots here.)

image

DISCLAIMER

I am not affiliated with Robinhood or its associates. I am in no way responsible for any losses incurred through using this code or application. This app relies on the private API as found here (special thanks to sanko for providing documentation). It isn’t recommended to use this since the API is private and can change unexpectedly at any time, and is not officially supported. Using any kind of unpublished API for investing is risky, and you should thoroughly review any code involving any kind of money or investment published on the web to ensure the creator isn’t doing something malicious. It’s your money, after all. Your safest bet is to use the sanctioned phone app. Having said that, creating this app has been a lot of fun and I use it a lot more than I use the phone app.

Updates and features

Latest updates

6/30/2020

  • Made it easier to log in with 2FA enabled
  • Fixed login bug with challenge authentication

4/27/2020

  • Fixed another login bug

5/31/2019

  • Added support for new challenge login authentication

4/3/2019

  • Fixed login bug

2/2/2019

  • Started cryptocurrency watchlist support
  • Added rough API explorer portal
  • Updated token to Oauth2

10/23/2017

  • Bug fix for correcting the buying power for instant accounts

7/20/2017

  • Bug fix for displaying correct numbers in the “Return” column when the return is > $1000

5/23/2017

  • Added support for splits

5/18/2017

  • Added additional order support
    • Market order
    • Limit order
    • Stop loss order
    • Stop limit order
  • Added details to order history page
  • Various refactor improvements and bugfixes

5/5/2017

5/3/2017

  • Added historical (week, year, all) porfolio price charts

Current features

  • Realtime, auto-refreshing portfolio dashboard
    • Custom “folder” labels (stock organizing dividers)
  • Watchlist
    • Add and remove stocks
    • Custom “folders” labels (stock organizing dividers)
  • Reorganizing/ordering stocks via drag 'n drop automatically syncs with Robinhood phone app
  • Price charts for stocks and portfolio history
  • Fundamentals tooltips
  • Stocktwits integration
  • Orders
    • Supports market, limit, stop loss, and stop limit orders for buying and selling
    • Cancel pending orders
  • Transfers
    • Basic deposit and withdraw from existing ACH accounts
    • View history
  • Dividends
  • Notifications
    • View and dismiss
  • Cryptocurrency
    • Search and view prices for cryptocurrencies
    • Watchlist management
  • Security
    • 2FA support
    • Challenge authentication support

Future features

  • Estimates
  • Settings
  • Custom stock alerts
  • Future dividends
  • Volume charts
  • Improving performance of Orders page
  • Automated, complex trading rules

Usage

You have the choice of a basic installation or Docker (see instructions below).

Basic installation

This is a basic Rails project. You can install Ruby on Rails (and RVM) by visiting the RVM install page. If you already have ruby on rails set up, simply clone this project. Then run the basic steps to run the project like you would any other rails project:

  • rvm install 2.3.5
  • rvm use 2.3.5
  • bundle update
  • bundle install
  • bundle exec rake db:create db:migrate
  • bundle exec rails server
  • navigate to http://localhost:3000/ in whatever webrowser you use (I use chrome, for instance), and you should see a login screen:
    image
  • Enter your log in info, and you’ll be presented with your Robinhood dashboard.

Install with Docker

This repository comes with a Dockerfile to easily set up a server with minimal configuration. To build the image, run:

$ git clone https://github.com/bcwik9/robinhood-on-rails.git
$ cd robinhood-on-rails
$ docker build --tag robinhood-on-rails .

Then you can run the server:

$ docker run -dt -p 3000:3000 robinhood-on-rails

This will run the server on your host-machine’s port 3000.

Who am I

I am not affiliated with Robinhood or any of its associates. This is just a project I find fun. More info at bencwik.com

Influences and references

Thanks to Jeffrey Smith for his designs which I based a lot of the front end work off of.
Thanks to sanko for their work documenting Robinhood’s API.
Last but not least thanks to Robinhood for their app!