How do those subvert rate limiting / blacklisting?
How do those subvert rate limiting / blacklisting?
By using Redis and MySQL, I minimized the number of calls the app has to make directly to the Robinhood API. For things like the next earnings date, which changes typically once per 90 days or so, I have Redis store the result of that endpoint from Robinhood for some number of days, probably not 90, but not 1. For things like the current price of a stock, Redis might store that for a minute or two, so that my app can "spam" for the latest prices (maybe I have a refresh button in the app) without triggering a 401 or 403 from the Robinhood API.
TLDR: Since rate limiting prevents my app from pulling all the data it needs at one time - it has to throttle requests - I don't want to have to wait a couple of minutes each time the app is started because it needs to download data from Robinhood, much of which probably hasn't changed since the last time I started the app.
I hate to break it to you, but tickers and CUSIPs do change.
The world of 'corporate actions' turns out to be a catchbasin requiring human intervention.