A third-party Julia library to pull data from Federal Reserve Economic Data (FRED).
|Does this thing work?|
FredData is not affiliated in any way with Federal Reserve Bank of St. Louis and is not officially maintained or otherwise supported by Federal Reserve Bank of St. Louis.
FredData is free software and is issued under the MIT license.
Download the package with
Make the FRED API key that you just registered accessible to FredData in one of several ways. Ideally, we store your key such that it persists across sessions. In subsequent sections, we'll assume that you have stored your key in one of these ways such that it can be detected automatically. This will allow the use of the zero-argument constructor.
julia> open(joinpath(homedir(), ".freddatarc"), "w") do f write(f, "0123456789abcdef0123456789abcdef") end
Populate the environment variable
FRED_API_KEY such that it remains across sessions.
# on macOS/Linux shell> echo "export FRED_API_KEY=0123456789abcdef0123456789abcdef" >> ~/.bashrc # on Windows 7+ shell> setx FRED_API_KEY 0123456789abcdef0123456789abcdef
Another option, though less user-friendly, is to provide your API key to the constructor every time you wish to use the package.
Fredconstructor with your API key directly.
julia> f = Fred("0123456789abcdef0123456789abcdef") FRED API Connection url: https://api.stlouisfed.org/fred/ key: 0123456789abcdef0123456789abcdef
Query observations and metadata.
julia> using FredData julia> f = Fred() API key loaded. FRED API Connection url: http://api.stlouisfed.org/fred/ key: 0123456789abcdef0123456789abcdef julia> a = get_data(f, "GDPC1") FredSeries id: GDPC1 title: Real Gross Domestic Product units: Billions of Chained 2009 Dollars seas_adj (native): Seasonally Adjusted Annual Rate freq (native): Quarterly realtime_start: 2015-12-11 realtime_end: 2015-12-11 last_updated: 2015-11-24T08:01:09 notes: BEA Account Code: A191RX1 Real gross domestic product is the inflation adjusted value of the goods and services produced by labor and property located in the United States. For more information see the Guide to the National Income and Product Accounts of the United States (NIPA) - (http://www.bea.gov/national/pdf/nipaguid.pdf) trans_short: lin df: 275x4 DataFrame with columns [:realtime_start,:realtime_end,:date,:value]
Add optional arguments. All optional arguments specified by the FRED API are supported.
using FredData f = Fred() data = get_data(f, "GDPC1"; vintage_dates="2008-09-15") data = get_data(f, "GDPC1"; frequency="a", units="chg")
For a full list of optional arguments, see
Fred type represents a connection to the FRED API.
Get and set fields.
get_api_key(f::Fred): Get the base URL used to connect to the server
get_api_url(f::Fred): Get the base URL used to connect to the server
set_api_url!(f::Fred, url::AbstractString): Set the base URL used to connect to the server
FredSeries type contains the data in a query response.
id(s::FredSeries): Series ID
title(s::FredSeries): Series title
units_short(s::FredSeries): Units (abbr.)
seas_adj_short(s::FredSeries): Seasonal adjustment (abbr.)
seas_adj(s::FredSeries): Seasonal adjustment
freq_short(s::FredSeries): Native frequency (abbr.)
freq(s::FredSeries): Native frequency
realtime_start(s::FredSeries): Date realtime period starts
realtime_end(s::FredSeries): Date realtime period ends
last_updated(s::FredSeries): Date series last updated
notes(s::FredSeries): Series notes
trans_short(s::FredSeries): Transformation of queried data (abbr.)
df(s::FredSeries): The actual data; DataFrame with columns
☐ improve test coverage
☐ support creation of pseudo-vintages
☐ support methods to query other parts of the API, such as releases, tags, and search
☐ improve some API elements to be more idiomatic
27 days ago