Historical bond ratings (Fitch and Moodys) time series for all US firms

Hi everyone

I need to retrieve the Fitch and Moody's long term issuer credit ratings for all (or substantially all) US firms, as at the end of each month for the period from 2003-01-31 to 2023-12-31.

I'm completely new to APIs and Python, but from what I understand an API will be the best approach to retrieve such a large dataset. (The equivalent S&P data was much easier to obtain as a simple output from CapitalIQ.)

Below is the script I've tried so far: I'm using the S&P500, MidCap400 and SmallCap600 to cover as much of the market as possible, as I don't know if there is a way to retrieve the entire universe of all US firms and I don't have the permissions for the larger Russell indices.

Unfortunately, it also looks like the script is returning only the first rating in the time series, rather than the new rating each time there is a change.

Thank you---any suggestions would be appreciated!


import eikon as ek
import pandas as pd
import numpy as np

df, err = ek.get_data(instruments=['0#.SPX','0#.MID','0#.SPCY'],
fields=['TR.CommonName',
'TR.TickerSymbol',
'TR.IR.RatingTypeDescription',
'TR.FiIssuerFitchLongRating',
'TR.FiIssuerMoodysLongRating',
'TR.IR.RatingDate'],
parameters={'SDate':'-21Y', 'EDate':'0', 'FRQ':'M'}
)
df.columns = df.columns[:-2].tolist() + ['Moody\'s Rating','Fitch Rating']
df.head(50)

Best Answer