px
pypx

fredapi

v0.5.2

Python API for Federal Reserve Economic Data (FRED) from St. Louis Fed

12 KBpy3-none-any1 deps Possibly Unmaintained
$ uv add fredapi

fredapi: Python API for FRED (Federal Reserve Economic Data)

fredapi is a Python API for the FRED_ data provided by the Federal Reserve Bank of St. Louis. fredapi provides a wrapper in python to the FRED web service_, and also provides several conveninent methods for parsing and analyzing point-in-time data (i.e. historic data revisions) from ALFRED_

fredapi makes use of pandas and returns data to you in a pandas Series or DataFrame

Installation

pip install fredapi

Basic Usage

First you need an API key, you can apply for one_ for free on the FRED website. Once you have your API key, you can set it in one of three ways:

  • set it to the evironment variable FRED\_API\_KEY
  • save it to a file and use the 'api\_key\_file' parameter
  • pass it directly as the 'api\_key' parameter
from fredapi import Fred
fred = Fred(api_key='insert api key here')
data = fred.get_series('SP500')

Working with data revisions

Many economic data series contain frequent revisions. fredapi provides several convenient methods for handling data revisions and answering the quesion of what-data-was-known-when.

In ALFRED_ there is the concept of a vintage date. Basically every observation can have three dates associated with it: date, realtime\_start and realtime\_end.

  • date: the date the value is for
  • realtime\_start: the first date the value is valid
  • realitime\_end: the last date the value is valid

For instance, there has been three observations (data points) for the GDP of 2014 Q1:

<observation realtime_start="2014-04-30" realtime_end="2014-05-28" date="2014-01-01" value="17149.6"/>
<observation realtime_start="2014-05-29" realtime_end="2014-06-24" date="2014-01-01" value="17101.3"/>
<observation realtime_start="2014-06-25" realtime_end="2014-07-29" date="2014-01-01" value="17016.0"/>

This means the GDP value for Q1 2014 has been released three times. First release was on 4/30/2014 for a value of 17149.6, and then there have been two revisions on 5/29/2014 and 6/25/2014 for revised values of 17101.3 and 17016.0, respectively.

Get first data release only (i.e. ignore revisions)

data = fred.get_series_first_release('GDP')

Get latest data

Note that this is the same as simply calling get_series()

data = fred.get_series_latest_release('GDP')

Get latest data known on a given date

fred.get_series_as_of_date('GDP', '6/1/2014')

Get all data release dates

This returns a DataFrame with all the data from ALFRED

df = fred.get_series_all_releases('GDP')
df.tail()

Get all vintage dates

vintage_dates = fred.get_series_vintage_dates('GDP')

Search for data series

You can always search for data series on the FRED website. But sometimes it can be more convenient to search programmatically. fredapi provides a search() method that does a fulltext search and returns a DataFrame of results.

fred.search('potential gdp')

You can also search by release id and category id with various options

df1 = fred.search_by_release(11)
df2 = fred.search_by_category(101, limit=10, order_by='popularity', sort_order='desc')

Dependencies

More Examples

Details

Version
0.5.2
Maintainer
Mortada Mehyar

Maintainers

  • Mortada Mehyar