How do I setup my Tiingo API key in pandas?

739 Views Asked by At

I am trying to learn ML models for predicting stock prices and initially, I tried using DataReader

import pandas_datareader as web
df = web.DataReader('AAPL', data_source='yahoo', start='2016-01-01', end='2021-08-01')

But I get a RemoteDataError and kept hitting a dead end trying to figure it out so I tried using tiingo

https://tiingo-python.readthedocs.io/en/latest/readme.html

I read through the documentation and tried passing a dictionary with 'api_key' as a key into my tiingo client, ie.

from tiingo import TiingoClient
client = TiingoClient()
config = {}
config['session'] = True
config['api_key'] = 'my_api_key'
client = TiingoClient(config)

The documentation says I can now use TiingoClient to make API calls, however,

RuntimeError: Tiingo API Key not provided. Please provide via environment variable or config argument.

It is quite challenging learning the ML models and its syntax but what compounds the difficulty for me is what some data-scientests consider to be trivial as they don't typically deal with gathering or scraping data. Maybe my question is trivial but I've spent about an hour trying to figure out how to import data properly for stock prices and the only method that worked for me so far is

df = web.get_data_yahoo('stock symbol')

but I would like to grasp the other ways of importing stock prices via Tiingo and DataReader so if anyone can provide explanations/tips/suggestions I'd greatly appreciate it.

EDIT: for my tiingo account I did not buy any subscription plan for using their data as I was under the impression I can access data for free with my api-key

2

There are 2 best solutions below

0
On

Remove this line: TiingoClient()

0
On

This is what I use, but its identical to what you are using it seems.

config = {}
config['session'] = True
config['api_key'] = "key here"
client = TiingoClient(config)