NAV Navbar
Logo
javascript

Introduction

Welcome to the Fred Library/Api documentation for those who are using this with the node-fred library. You must obtain an API key through this website

Authentication

To authorize, use this code:

You must have an API to run all requests.

import Fred from 'node-fred'

const fred = new Fred(API_KEY);

Make sure to replace API_KEY with your API key.

Categories

Get A Category

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.categories.getCategory(125)
  .then((res) => {
    console.log('Category', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "categories": [
        {
            "id": 125,
            "name": "Trade Balance",
            "parent_id": 13
        }
    ]
}

Gets a category

HTTP Request

GET https://api.stlouisfed.org/fred/category/children

Query Parameters

Parameter Default Required Type Description
category_id 0 true Integer The id for a category.

Get Child Categories

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

// Category ID => U.S. Trade & International Transactions

fred.categories.getChildCategories(13)
  .then((res) => {
    console.log('Child Categories', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "categories": [
        {
            "id": 16,
            "name": "Exports",
            "parent_id": 13
        },
        {
            "id": 17,
            "name": "Imports",
            "parent_id": 13
        },
        {
            "id": 3000,
            "name": "Income Payments & Receipts",
            "parent_id": 13
        },
        {
            "id": 125,
            "name": "Trade Balance",
            "parent_id": 13
        },
        {
            "id": 127,
            "name": "U.S. International Finance",
            "parent_id": 13
        }
    ]
}

Gets the child categories for a specified parent category.

HTTP Request

GET https://api.stlouisfed.org/fred/category/children

Query Parameters

Parameter Default Required Type Description
category_id 0 true Integer The id for a category.
realtime_start Today’s Date false Date The start of the real-time period.
realtime_end 9999-12-31 (latest available) false Date The end of the real-time period.
import Fred from 'node-fred';

const fred = new Fred(API_KEY);

/*
Category ID 32073 has the parent-child category hierarchy:

Categories > Regional Data > Federal Reserve Districts > St. Louis > States in District

This category uses a related category to link to category ID 154 'Missouri' with hierarchy:

Categories > Regional Data > States > Missouri
*/

fred.categories.getRelatedCategories(32073)
  .then((res) => {
    console.log('Related Categories', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "categories": [
        {
            "id": 149,
            "name": "Arkansas",
            "parent_id": 27281
        },
        {
            "id": 150,
            "name": "Illinois",
            "parent_id": 27281
        },
        {
            "id": 151,
            "name": "Indiana",
            "parent_id": 27281
        },
        {
            "id": 152,
            "name": "Kentucky",
            "parent_id": 27281
        },
        {
            "id": 153,
            "name": "Mississippi",
            "parent_id": 27281
        },
        {
            "id": 154,
            "name": "Missouri",
            "parent_id": 27281
        },
        {
            "id": 193,
            "name": "Tennessee",
            "parent_id": 27281
        }
    ]
}

Get the related categories for a category. A related category is a one-way relation between 2 categories that is not part of a parent-child category hierarchy. Most categories do not have related categories

HTTP Request

GET https://api.stlouisfed.org/fred/category/related

Query Parameters

Parameter Default Required Type Description
category_id 0 true Integer The id for a category.
realtime_start Today’s Date false Date The start of the real-time period.
realtime_end 9999-12-31 (latest available) false Date The end of the real-time period.
import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.categories.getCategoryRelatedTags(125, {
  "tag_names": "services;quarterly"
})
  .then((res) => {
    console.log('Related Tags', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-13",
    "realtime_end": "2013-08-13",
    "order_by": "series_count",
    "sort_order": "desc",
    "count": 7,
    "offset": 0,
    "limit": 1000,
    "tags": [
        {
            "name": "balance",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 65,
            "series_count": 4
        },
        {
            "name": "bea",
            "group_id": "src",
            "notes": "U.S. Department of Commerce: Bureau of Economic Analysis",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 87,
            "series_count": 4
        },
        {
            "name": "nation",
            "group_id": "geot",
            "notes": "Country Level",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 4
        },
        {
            "name": "usa",
            "group_id": "geo",
            "notes": "United States of America",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 4
        },
        {
            "name": "goods",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 73,
            "series_count": 2
        },
        {
            "name": "nsa",
            "group_id": "seas",
            "notes": "Not seasonally adjusted",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 96,
            "series_count": 2
        },
        {
            "name": "sa",
            "group_id": "seas",
            "notes": "Seasonally adjusted",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 94,
            "series_count": 2
        }
    ]
}

Get the related FRED tags for one or more FRED tags within a category. FRED tags are attributes assigned to series. For this request, related FRED tags are the tags assigned to series that match all tags in the tag_names parameter, no tags in the exclude_tag_names parameter, and the category set by the category_id parameter.

HTTP Request

GET https://api.stlouisfed.org/fred/category/related_tags

Query Parameters

Parameter Default Required Type Description Restrictions
category_id 0 true Integer The id for a category. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end 9999-12-31 (latest available) false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.

Get Series Within Category

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.categories.getCategorySeries(125)
  .then((res) => {
    console.log('Series for Category', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-13",
    "realtime_end": "2013-08-13",
    "order_by": "series_id",
    "sort_order": "asc",
    "count": 24,
    "offset": 0,
    "limit": 1000,
    "series": [
        {
            "id": "BOPBCA",
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "title": "Balance on Current Account",
            "observation_start": "1960-01-01",
            "observation_end": "2013-01-01",
            "frequency": "Quarterly",
            "frequency_short": "Q",
            "units": "Billions of Dollars",
            "units_short": "Bil. of $",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-07-09 08:46:45-05",
            "popularity": 64
        },
        {
            "id": "BOPBCAA",
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "title": "Balance on Current Account",
            "observation_start": "1960-01-01",
            "observation_end": "2012-01-01",
            "frequency": "Annual",
            "frequency_short": "A",
            "units": "Billions of Dollars",
            "units_short": "Bil. of $",
            "seasonal_adjustment": "Not Seasonally Adjusted",
            "seasonal_adjustment_short": "NSA",
            "last_updated": "2013-07-09 08:46:21-05",
            "popularity": 43
        },
        {
            "id": "BOPBCAN",
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "title": "Balance on Current Account",
            "observation_start": "1960-01-01",
            "observation_end": "2013-01-01",
            "frequency": "Quarterly",
            "frequency_short": "Q",
            "units": "Billions of Dollars",
            "units_short": "Bil. of $",
            "seasonal_adjustment": "Not Seasonally Adjusted",
            "seasonal_adjustment_short": "NSA",
            "last_updated": "2013-07-09 08:46:50-05",
            "popularity": 37
        },
        {
            "id": "BOPBGS",
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "title": "Balance on Goods and Services",
            "observation_start": "1960-01-01",
            "observation_end": "2013-01-01",
            "frequency": "Quarterly",
            "frequency_short": "Q",
            "units": "Billions of Dollars",
            "units_short": "Bil. of $",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-07-09 08:46:25-05",
            "popularity": 38
        }
    ]
}

Get the series in a category.

HTTP Request

GET https://api.stlouisfed.org/fred/category/series

Query Parameters

Parameter Default Required Type Description Restrictions
category_id 0 true Integer The id for a category. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_id’, ‘title’, ‘units’, ‘frequency’, ‘seasonal_adjustment’, ‘realtime_start’, ‘realtime_end’, ‘last_updated’, ‘observation_start’, ‘observation_end’, ‘popularity’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
filter_variable No filter false String The attribute to filter results by. On of the following strings: ‘frequency’, ‘units’, ‘seasonal_adjustment’.
filter_value No filter false String The value of the filter_variable attribute to filter results by. None
tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
exclude_tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match none of. Parameter exclude_tag_names requires that parameter tag_names also be set to limit the number of matching series.

Get Tags for a Category

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.categories.getCategoryTags(125)
  .then((res) => {
    console.log('Tags', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-13",
    "realtime_end": "2013-08-13",
    "order_by": "series_count",
    "sort_order": "desc",
    "count": 21,
    "offset": 0,
    "limit": 1000,
    "tags": [
        {
            "name": "bea",
            "group_id": "src",
            "notes": "U.S. Department of Commerce: Bureau of Economic Analysis",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 87,
            "series_count": 24
        },
        {
            "name": "nation",
            "group_id": "geot",
            "notes": "Country Level",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 24
        },
        {
            "name": "usa",
            "group_id": "geo",
            "notes": "United States of America",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 24
        }
    ]
}

Get the FRED tags for a category. Optionally, filter results by tag name, tag group, or search. Series are assigned tags and categories.

HTTP Request

GET https://api.stlouisfed.org/fred/category/tags

Query Parameters

Parameter Default Required Type Description Restrictions
category_id 0 true Integer The id for a category. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
tag_names No Filter false Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
tag_group_id No Filter false String A tag group id to filter tags by type. One of the following: ‘freq’, ‘gen’, ‘geo’, ‘geot’, ‘rls’, ‘seas’, ‘src’.
search_text No Filter false String The words to find matching tags with. None

Release

Get Release

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.releases.getRelease(53)
  .then((res) => {
    console.log('Release', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "releases": [
        {
            "id": 53,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "Gross Domestic Product",
            "press_release": true,
            "link": "http://www.bea.gov/national/index.htm"
        }
    ]
}

Get a release of economic data.

HTTP Request

GET https://api.stlouisfed.org/fred/release

Query Parameters

Parameter Default Required Type Description Restrictions
release_id None true Integer The id for a release. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None

Get Release With Dates

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.releases.getReleaseWithDates(82)
  .then((res) => {
    console.log('Release With Dates', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "1776-07-04",
    "realtime_end": "9999-12-31",
    "order_by": "release_date",
    "sort_order": "asc",
    "count": 17,
    "offset": 0,
    "limit": 10000,
    "release_dates": [
        {
            "release_id": 82,
            "date": "1997-02-10"
        },
        {
            "release_id": 82,
            "date": "1998-02-10"
        },
        {
            "release_id": 82,
            "date": "1999-02-04"
        },
        {
            "release_id": 82,
            "date": "2000-02-10"
        },
        {
            "release_id": 82,
            "date": "2001-01-16"
        },
        {
            "release_id": 82,
            "date": "2002-02-06"
        },
        {
            "release_id": 82,
            "date": "2003-02-07"
        },
        {
            "release_id": 82,
            "date": "2004-02-09"
        },
        {
            "release_id": 82,
            "date": "2005-02-17"
        },
        {
            "release_id": 82,
            "date": "2006-02-13"
        },
        {
            "release_id": 82,
            "date": "2007-02-16"
        },
        {
            "release_id": 82,
            "date": "2008-02-11"
        },
        {
            "release_id": 82,
            "date": "2009-03-03"
        },
        {
            "release_id": 82,
            "date": "2010-02-11"
        },
        {
            "release_id": 82,
            "date": "2011-02-23"
        },
        {
            "release_id": 82,
            "date": "2012-10-24"
        },
        {
            "release_id": 82,
            "date": "2013-04-10"
        }
    ]
}

Get a release of economic data.

HTTP Request

GET https://api.stlouisfed.org/fred/release/dates

Query Parameters

Parameter Default Required Type Description Restrictions
release_id None true Integer The id for a release. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
sort_order asc false String Sort results is ascending or descending release date order. One of the following strings: ‘asc’, ‘desc’.
include_release_dates_with_no_data ‘false’ false String Determines whether release dates with no data available are returned. One of the following strings: ‘true’, ‘false’.

Get Series For Release

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.releases.getSeriesForRelease(51)
  .then((res) => {
    console.log('Series for Release', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-13",
    "realtime_end": "2013-08-13",
    "order_by": "series_id",
    "sort_order": "asc",
    "count": 39,
    "offset": 0,
    "limit": 1000,
    "seriess": [
        {
            "id": "BOMTVLM133S",
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "title": "U.S. Imports of Services - Travel",
            "observation_start": "1992-01-01",
            "observation_end": "2013-06-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Million of Dollars",
            "units_short": "Mil. of $",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-08-06 07:46:06-05",
            "popularity": 0
        },
        {
            "id": "BOMVGMM133S",
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "title": "U.S. Imports of Services - U.S. Government Misc. Services",
            "observation_start": "1992-01-01",
            "observation_end": "2013-06-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Millions of Dollars",
            "units_short": "Mil. of $",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-08-06 07:46:06-05",
            "popularity": 0
        },
        {
            "id": "BOMVJMM133S",
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "title": "U.S. Imports of Services - Direct Defense Expenditures",
            "observation_start": "1992-01-01",
            "observation_end": "2013-06-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Millions of Dollars",
            "units_short": "Mil. of $",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-08-06 07:46:06-05",
            "popularity": 17
        }
    ]
}

Get release dates for a release of economic data.

HTTP Request

GET https://api.stlouisfed.org/fred/release/series

Query Parameters

Parameter Default Required Type Description Restrictions
release_id None true Integer The id for a release. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_id false String Order results by values of the specified attribute. One of the following strings: ‘series_id’, ‘title’, ‘units’, ‘frequency’, ‘seasonal_adjustment’, ‘realtime_start’, ‘realtime_end’, ‘last_updated’, ‘observation_start’, ‘observation_end’, ‘popularity’.
sort_order asc false String Sort results is ascending or descending release date order. One of the following strings: ‘asc’, ‘desc’.
filter_variable No filter false String The attribute to filter results by. On of the following strings: ‘frequency’, ‘units’, ‘seasonal_adjustment’.
filter_value No filter false String The value of the filter_variable attribute to filter results by. None
tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
exclude_tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match none of. Parameter exclude_tag_names requires that parameter tag_names also be set to limit the number of matching series.

Get Sources For Release

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.releases.getSourcesForRelease(51)
  .then((res) => {
    console.log('Sources for Release', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "sources": [
        {
            "id": 18,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "U.S. Department of Commerce: Bureau of Economic Analysis",
            "link": "http://www.bea.gov/"
        },
        {
            "id": 19,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "U.S. Department of Commerce: Census Bureau",
            "link": "http://www.census.gov/"
        }
    ]
}

Get the sources for a release of economic data.

HTTP Request

GET https://api.stlouisfed.org/fred/release/sources

Query Parameters

Parameter Default Required Type Description Restrictions
release_id None true Integer The id for a release. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None

Get Tags For Release

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.releases.getTagsForRelease(86)
  .then((res) => {
    console.log('Tags for Release', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "series_count",
    "sort_order": "desc",
    "count": 13,
    "offset": 0,
    "limit": 1000,
    "tags": [
        {
            "name": "commercial paper",
            "group_id": "gen",
            "notes": "",
            "created": "2012-03-19 10:40:59-05",
            "popularity": 55,
            "series_count": 18
        },
        {
            "name": "frb",
            "group_id": "src",
            "notes": "Board of Governors of the Federal Reserve System",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 90,
            "series_count": 18
        },
        {
            "name": "nation",
            "group_id": "geot",
            "notes": "Country Level",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 18
        },
        {
            "name": "usa",
            "group_id": "geo",
            "notes": "United States of America",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 18
        },
        {
            "name": "weekly",
            "group_id": "freq",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 82,
            "series_count": 18
        },
        {
            "name": "nsa",
            "group_id": "seas",
            "notes": "Not seasonally adjusted",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 96,
            "series_count": 9
        },
        {
            "name": "sa",
            "group_id": "seas",
            "notes": "Seasonally adjusted",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 94,
            "series_count": 9
        },
        {
            "name": "financial",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 70,
            "series_count": 6
        },
        {
            "name": "nonfinancial",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 63,
            "series_count": 6
        },
        {
            "name": "domestic",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 69,
            "series_count": 4
        },
        {
            "name": "foreign",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 58,
            "series_count": 4
        },
        {
            "name": "asset-backed",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 43,
            "series_count": 2
        },
        {
            "name": "companies",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 49,
            "series_count": 1
        }
    ]
}

Get the FRED tags for a release. Optionally, filter results by tag name, tag group, or search. Series are assigned tags and releases. Indirectly through series, it is possible to get the tags for a release.

HTTP Request

GET https://api.stlouisfed.org/fred/release/tags

Query Parameters

Parameter Default Required Type Description Restrictions
release_id None true Integer The id for a release. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending release date order. One of the following strings: ‘asc’, ‘desc’.
tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
tag_group_id No Filter false String A tag group id to filter tags by type. One of the following: ‘freq’, ‘gen’, ‘geo’, ‘geot’, ‘rls’, ‘seas’, ‘src’.
search_text No Filter false String The words to find matching tags with. None
import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.releases.getRelatedTagsForRelease(86)
  .then((res) => {
    console.log('Related Tags for Release', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "series_count",
    "sort_order": "desc",
    "count": 7,
    "offset": 0,
    "limit": 1000,
    "tags": [
        {
            "name": "commercial paper",
            "group_id": "gen",
            "notes": "",
            "created": "2012-03-19 10:40:59-05",
            "popularity": 55,
            "series_count": 2
        },
        {
            "name": "frb",
            "group_id": "src",
            "notes": "Board of Governors of the Federal Reserve System",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 90,
            "series_count": 2
        },
        {
            "name": "nation",
            "group_id": "geot",
            "notes": "Country Level",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 2
        },
        {
            "name": "usa",
            "group_id": "geo",
            "notes": "United States of America",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 2
        },
        {
            "name": "weekly",
            "group_id": "freq",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 82,
            "series_count": 2
        },
        {
            "name": "financial",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 70,
            "series_count": 1
        },
        {
            "name": "nonfinancial",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 63,
            "series_count": 1
        }
    ]
}

Get the related FRED tags for one or more FRED tags within a release. Optionally, filter results by tag group or search.

HTTP Request

GET https://api.stlouisfed.org/fred/release/related_tags

Query Parameters

Parameter Default Required Type Description Restrictions
release_id None true Integer The id for a release. None
tag_names No filter true Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending release date order. One of the following strings: ‘asc’, ‘desc’.
exclude_tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match none of. Parameter exclude_tag_names requires that parameter tag_names also be set to limit the number of matching series.
tag_group_id No Filter false String A tag group id to filter tags by type. One of the following: ‘freq’, ‘gen’, ‘geo’, ‘geot’, ‘rls’, ‘seas’, ‘src’.
search_text No Filter false String The words to find matching tags with. None

Get Tables Trees For Release

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.releases.getTableTreesForRelease(86)
  .then((res) => {
    console.log('Table Trees for Release', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{  
  {
  "name": "Personal consumption expenditures",
  "element_id": 12886,
  "release_id": "53",
  "elements": {
    "12887": {
      "element_id": 12887,
      "release_id": 53,
      "series_id": "DGDSRL1A225NBEA",
      "parent_id": 12886,
      "line": "3",
      "type": "series",
      "name": "Goods",
      "level": "1",
      "children": [
        {
          "element_id": 12888,
          "release_id": 53,
          "series_id": "DDURRL1A225NBEA",
          "parent_id": 12887,
          "line": "4",
          "type": "series",
          "name": "Durable goods",
          "level": "2",
          "children": [

          ]
        },
        {
          "element_id": 12889,
          "release_id": 53,
          "series_id": "DNDGRL1A225NBEA",
          "parent_id": 12887,
          "line": "5",
          "type": "series",
          "name": "Nondurable goods",
          "level": "2",
          "children": [

          ]
        }
      ]
    },
    "12888": {
      "element_id": 12888,
      "release_id": 53,
      "series_id": "DDURRL1A225NBEA",
      "parent_id": 12887,
      "line": "4",
      "type": "series",
      "name": "Durable goods",
      "level": "2",
      "children": [

      ]
    },
    "12889": {
      "element_id": 12889,
      "release_id": 53,
      "series_id": "DNDGRL1A225NBEA",
      "parent_id": 12887,
      "line": "5",
      "type": "series",
      "name": "Nondurable goods",
      "level": "2",
      "children": [

      ]
    },
    "12890": {
      "element_id": 12890,
      "release_id": 53,
      "series_id": "DSERRL1A225NBEA",
      "parent_id": 12886,
      "line": "6",
      "type": "series",
      "name": "Services",
      "level": "1",
      "children": [

      ]
    }
  }
}

Get release table trees for a given release. You can go directly to the tree structure by passing the appropriate element_id. You may also use a drill-down approach to start at the root (top most) element by leaving the element_id off.

HTTP Request

GET https://api.stlouisfed.org/fred/release/tables

Query Parameters

Parameter Default Required Type Description Restrictions
release_id None true Integer The id for a release. None
element_id The root element for a release false Integer The release table element id you would like to retrieve. When the parameter is not passed, the root(top most) element for the release is given.
include_observation_values ‘false’ false String A flag to indicate that observations need to be returned. Observation value and date will only be returned for a series type element. One of the following strings: ‘true’, ‘false’.
observation_date 9999-12-31 (latest available) false Date The observation date to be included with the returned release table. YYYY-MM-DD formatted string

Releases

Get Releases

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.releases.getReleases()
  .then((res) => {
    console.log('Releases', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-13",
    "realtime_end": "2013-08-13",
    "order_by": "release_id",
    "sort_order": "asc",
    "count": 158,
    "offset": 0,
    "limit": 1000,
    "releases": [
        {
            "id": 9,
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "name": "Advance Monthly Sales for Retail and Food Services",
            "press_release": true,
            "link": "http://www.census.gov/retail/"
        },
        {
            "id": 10,
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "name": "Consumer Price Index",
            "press_release": true,
            "link": "http://www.bls.gov/cpi/"
        },
        {
            "id": 11,
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "name": "Employment Cost Index",
            "press_release": true,
            "link": "http://www.bls.gov/ncs/ect/"
        },
        {
            "id": 13,
            "realtime_start": "2013-08-13",
            "realtime_end": "2013-08-13",
            "name": "G.17 Industrial Production and Capacity Utilization",
            "press_release": true,
            "link": "http://www.federalreserve.gov/releases/g17/"
        },
...
    ]
}

Get all releases of economic data.

HTTP Request

GET https://api.stlouisfed.org/fred/releases

Query Parameters

Parameter Default Required Type Description Restrictions
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by release_id false String Order results by values of the specified attribute. One of the following strings: ‘release_id’, ‘name’, ‘press_release’, ‘realtime_start’, ‘realtime_end’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.

Get Release Dates for All Releases

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.releases.getAllReleasesWithDates()
  .then((res) => {
    console.log('Releases', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-01-01",
    "realtime_end": "9999-12-31",
    "order_by": "release_date",
    "sort_order": "desc",
    "count": 1129,
    "offset": 0,
    "limit": 1000,
    "release_dates": [
        {
            "release_id": 9,
            "release_name": "Advance Monthly Sales for Retail and Food Services",
            "date": "2013-08-13"
        },
        {
            "release_id": 262,
            "release_name": "Failures and Assistance Transactions",
            "date": "2013-08-13"
        },
        {
            "release_id": 25,
            "release_name": "Manufacturing and Trade Inventories and Sales",
            "date": "2013-08-13"
        },
        {
            "release_id": 92,
            "release_name": "Selected Real Retail Sales Series",
            "date": "2013-08-13"
        },
        {
            "release_id": 188,
            "release_name": "U.S. Import and Export Price Indexes",
            "date": "2013-08-13"
        },
        {
            "release_id": 183,
            "release_name": "Gasoline and Diesel Fuel Update",
            "date": "2013-08-12"
        },
...
    ]
}

Get release dates for all releases of economic data.

HTTP Request

GET https://api.stlouisfed.org/fred/releases/dates

Query Parameters

Parameter Default Required Type Description Restrictions
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by release_date false String Order results by values of the specified attribute. One of the following strings: ‘release_date’, ‘release_id’, ‘release_name’.
sort_order desc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
include_release_dates_with_no_data ‘false’ false String Determines whether release dates with no data available are returned. One of the following strings: ‘true’, ‘false’.

Series

Get Series

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getSeries('GNPCA')
  .then((res) => {
    console.log('Series', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "series": [
        {
            "id": "GNPCA",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Real Gross National Product",
            "observation_start": "1929-01-01",
            "observation_end": "2012-01-01",
            "frequency": "Annual",
            "frequency_short": "A",
            "units": "Billions of Chained 2009 Dollars",
            "units_short": "Bil. of Chn. 2009 $",
            "seasonal_adjustment": "Not Seasonally Adjusted",
            "seasonal_adjustment_short": "NSA",
            "last_updated": "2013-07-31 09:26:16-05",
            "popularity": 39,
            "notes": "BEA Account Code: A001RX1"
        }
    ]
}

Get an economic data series.

HTTP Request

GET https://api.stlouisfed.org/fred/series

Query Parameters

Parameter Default Required Type Description Restrictions
series_id None true String The id for a series. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None

Get Categories For Series

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getCategoriesForSeries('EXJPUS')
  .then((res) => {
    console.log('Categories For Series', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "categories": [
        {
            "id": 95,
            "name": "Monthly Rates",
            "parent_id": 15
        },
        {
            "id": 275,
            "name": "Japan",
            "parent_id": 158
        }
    ]
}

Get the categories for an economic data series.

HTTP Request

GET https://api.stlouisfed.org/fred/series/categories

Query Parameters

Parameter Default Required Type Description Restrictions
series_id None true Integer The id for a series. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None

Get Observations For Series

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getObservationsForSeries('GNPCA')
  .then((res) => {
    console.log('Observations For Series', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "observation_start": "1776-07-04",
    "observation_end": "9999-12-31",
    "units": "lin",
    "output_type": 1,
    "file_type": "json",
    "order_by": "observation_date",
    "sort_order": "asc",
    "count": 84,
    "offset": 0,
    "limit": 100000,
    "observations": [
        {
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "date": "1929-01-01",
            "value": "1065.9"
        },
        {
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "date": "1930-01-01",
            "value": "975.5"
        },
        {
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "date": "1931-01-01",
            "value": "912.1"
        },
    ...
    ]
}

Get the observations or data values for an economic data series.

HTTP Request

GET https://api.stlouisfed.org/fred/series/observations

Query Parameters

Parameter Default Required Type Description Restrictions
series_id None true Integer The id for a series. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 100000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
observation_start 1776-07-04 false Date The start of the observation period. YYYY-MM-DD formatted string
observation_end 9999-12-31 false Date The start of the observation period. YYYY-MM-DD formatted string
units lin false String A key that indicates a data value transformation. One of the following values: ‘lin’, ‘chg’, ‘ch1’, ‘pch’, ‘pc1’, ‘pca’, ‘cch’, ‘cca’, ‘log’
frequency None false String An optional parameter that indicates a lower frequency to aggregate values to. One of the following values: ‘d’, ‘w’, ‘bw’, ‘m’, ‘q’, ‘sa’, ‘a’, ‘wef’, ‘weth’, ‘wew’, ‘wetu’, ‘wem’, ‘wesu’, ‘wesa’, ‘bwew’, ‘bwem’
aggregation_method avg false String A key that indicates the aggregation method used for frequency aggregation. One of the following values: ‘avg’, ‘sum’, ‘eop’. This parameter has no affect if the frequency parameter is not set.
output_type 1 false Integer An integer that indicates an output type. One of the following values: ‘1’, ‘2’, ‘3’, ‘4’
vintage_dates None false String A comma separated string of YYYY-MM-DD formatted dates in history (e.g. 2000-01-01,2005-02-24). Vintage dates are used to download data as it existed on these specified dates in history. Vintage dates can be specified instead of a real-time period using realtime_start and realtime_end. See Description

Get Release For Series

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getReleaseForSeries('IRA')
  .then((res) => {
    console.log('Release For Series', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "releases": [
        {
            "id": 21,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "H.6 Money Stock Measures",
            "press_release": true,
            "link": "http://www.federalreserve.gov/releases/h6/"
        }
    ]
}

Get the release for an economic data series.

HTTP Request

GET https://api.stlouisfed.org/fred/series/release

Query Parameters

Parameter Default Required Type Description Restrictions
series_id None true String The id for a series. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None

Search for Series

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getSeriesThatMatchesSearch('monetary+service+index')
  .then((res) => {
    console.log('Series That Match Search', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "search_rank",
    "sort_order": "desc",
    "count": 25,
    "offset": 0,
    "limit": 1000,
    "series": [
        {
            "id": "MSIM2",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Monetary Services Index: M2 (preferred)",
            "observation_start": "1967-01-01",
            "observation_end": "2013-06-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Billions of Dollars",
            "units_short": "Bil. of $",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-07-12 11:01:06-05",
            "popularity": 52,
            "notes": "The MSI measure the flow of monetary services received each period by households and firms from their holdings of monetary assets (levels of the indexes are sometimes referred to as Divisia monetary aggregates). \r\nPreferred benchmark rate equals 100 basis points plus the largest rate in the set of rates. \r\nAlternative benchmark rate equals the larger of the preferred benchmark rate and the Baa corporate bond yield.\r\nMore information about the new MSI can be found at \r\nhttp://research.stlouisfed.org/msi/index.html."
        },
        {
            "id": "MSIM1P",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Monetary Services Index: M1 (preferred)",
            "observation_start": "1967-01-01",
            "observation_end": "2013-06-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Billions of Dollars",
            "units_short": "Bil. of $",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-07-12 11:01:03-05",
            "popularity": 40,
            "notes": "The MSI measure the flow of monetary services received each period by households and firms from their holdings of monetary assets (levels of the indexes are sometimes referred to as Divisia monetary aggregates)."
        },
        {
            "id": "MSIALLP",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Monetary Services Index: ALL Assets (preferred)",
            "observation_start": "1967-01-01",
            "observation_end": "2013-06-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Billions of Dollars",
            "units_short": "Bil. of $",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-07-12 11:01:03-05",
            "popularity": 38,
            "notes": "The MSI measure the flow of monetary services received each period by households and firms from their holdings of monetary assets (levels of the indexes are sometimes referred to as Divisia monetary aggregates).\r\nPreferred benchmark rate equals 100 basis points plus the largest rate in the set of rates. \r\nAlternative benchmark rate equals the larger of the preferred benchmark rate and the Baa corporate bond yield."
        }
    ...
    ]
}

Get economic data series that match search text.

HTTP Request

GET https://api.stlouisfed.org/fred/series/search

Query Parameters

Parameter Default Required Type Description Restrictions
search_text “” true String The words to match against economic data series. None
search_type full_text false String Determines the type of search to perform. One of the following strings: ‘full_text’, ‘series_id’.
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by If the value of search_type is ‘full_text’ then the default value of order_by is ‘search_rank’. If the value of search_type is ‘series_id’ then the default value of order_by is ‘series_id’. false String Order results by values of the specified attribute. One of the following strings: ‘search_rank’, ‘series_id’, ‘title’, ‘units’, ‘frequency’, ‘seasonal_adjustment’, ‘realtime_start’, ‘realtime_end’, ‘last_updated’, ‘observation_start’, ‘observation_end’, ‘popularity’.
sort_order If order_by is equal to ‘search_rank’ or ‘popularity’, then the default value of sort_order is ‘desc’. Otherwise, the default sort order is ‘asc’. false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
filter_variable No filter false String The attribute to filter results by. On of the following strings: ‘frequency’, ‘units’, ‘seasonal_adjustment’.
filter_value No filter false String None
tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
exclude_tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match none of. Parameter exclude_tag_names requires that parameter tag_names also be set to limit the number of matching series.
import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getTagsForSeriesSearch('monetary+service+index')
  .then((res) => {
    console.log('Tags For Series That Match Search', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "series_count",
    "sort_order": "desc",
    "count": 18,
    "offset": 0,
    "limit": 1000,
    "tags": [
        {
            "name": "academic data",
            "group_id": "gen",
            "notes": "Time series data created mainly by academia to address growing demand in understanding specific concerns in the economy that are not well modeled by ordinary statistical agencies.",
            "created": "2012-08-29 10:22:19-05",
            "popularity": 62,
            "series_count": 25
        },
        {
            "name": "anderson & jones",
            "group_id": "src",
            "notes": "Richard Anderson and Barry Jones",
            "created": "2013-06-21 10:22:49-05",
            "popularity": 46,
            "series_count": 25
        },
        {
            "name": "divisia",
            "group_id": "gen",
            "notes": "Monetary Services Indexes",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 46,
            "series_count": 25
        }
    ...
    ]
}

Get the FRED tags for a series search. Optionally, filter results by tag name, tag group, or tag search.

HTTP Request

GET https://api.stlouisfed.org/fred/series/search/tags

Query Parameters

Parameter Default Required Type Description Restrictions
series_search_text “” true String The words to match against economic data series. None
search_type full_text false String Determines the type of search to perform. One of the following strings: ‘full_text’, ‘series_id’.
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
tag_group_id No Filter false String A tag group id to filter tags by type. One of the following: ‘freq’, ‘gen’, ‘geo’, ‘geot’, ‘rls’, ‘seas’, ‘src’.
tag_search_text No Filter false String The words to find matching tags with. None
import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getRelatedTagsForSeriesSearch('morgage+rate')
  .then((res) => {
    console.log('Related Tags For Series That Match Search', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "series_count",
    "sort_order": "desc",
    "count": 10,
    "offset": 0,
    "limit": 1000,
    "tags": [
        {
            "name": "conventional",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 63,
            "series_count": 3
        },
        {
            "name": "h15",
            "group_id": "rls",
            "notes": "H.15 Selected Interest Rates",
            "created": "2012-08-16 15:21:17-05",
            "popularity": 84,
            "series_count": 3
        },
        {
            "name": "interest rate",
            "group_id": "gen",
            "notes": "",
            "created": "2012-05-29 10:14:19-05",
            "popularity": 87,
            "series_count": 3
        }
    ...
    ]
}

Get the related FRED tags for one or more FRED tags matching a series search. Optionally, filter results by tag group or tag search.

HTTP Request

GET https://api.stlouisfed.org/fred/series/search/related_tags

Query Parameters

Parameter Default Required Type Description Restrictions
series_search_text “” true String The words to match against economic data series. None
search_type full_text false String Determines the type of search to perform. One of the following strings: ‘full_text’, ‘series_id’.
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
exclude_tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match none of. Parameter exclude_tag_names requires that parameter tag_names also be set to limit the number of matching series.
tag_group_id No Filter false String A tag group id to filter tags by type. One of the following: ‘freq’, ‘gen’, ‘geo’, ‘geot’, ‘rls’, ‘seas’, ‘src’.
tag_search_text No Filter false String The words to find matching tags with. None

Get Tags for Series

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getTagsForSeries('STLFSI')
  .then((res) => {
    console.log('Tags For Series', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "series_count",
    "sort_order": "desc",
    "count": 8,
    "offset": 0,
    "limit": 1000,
    "tags": [
        {
            "name": "nation",
            "group_id": "geot",
            "notes": "Country Level",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 105200
        },
        {
            "name": "nsa",
            "group_id": "seas",
            "notes": "Not seasonally adjusted",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 96,
            "series_count": 100468
        },
        {
            "name": "usa",
            "group_id": "geo",
            "notes": "United States of America",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 59469
        }
    ...
    ]
}

Get the FRED tags for a series.

HTTP Request

GET https://api.stlouisfed.org/fred/series/tags

Query Parameters

Parameter Default Required Type Description Restrictions
series_id None true Integer The id for a series. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.

Get Latest Updated Series

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getUpdatedSeries()
  .then((res) => {
    console.log('Latest Updated Series', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "filter_variable": "geography",
    "filter_value": "all",
    "order_by": "last_updated",
    "sort_order": "desc",
    "count": 143535,
    "offset": 0,
    "limit": 100,
    "seriess": [
        {
            "id": "PPIITM",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Producer Price Index: Intermediate Materials: Supplies & Components",
            "observation_start": "1947-04-01",
            "observation_end": "2013-07-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Index 1982=100",
            "units_short": "Index 1982=100",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-08-14 08:36:05-05",
            "popularity": 52
        },
        {
            "id": "PPILFE",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Producer Price Index: Finished Goods Less Food & Energy",
            "observation_start": "1974-01-01",
            "observation_end": "2013-07-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Index 1982=100",
            "units_short": "Index 1982=100",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-08-14 08:36:05-05",
            "popularity": 51
        },
        {
            "id": "PPIFGS",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Producer Price Index: Finished Goods",
            "observation_start": "1947-04-01",
            "observation_end": "2013-07-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Index 1982=100",
            "units_short": "Index 1982=100",
            "seasonal_adjustment": "Seasonally Adjusted",
            "seasonal_adjustment_short": "SA",
            "last_updated": "2013-08-14 08:36:04-05",
            "popularity": 62
        }
    ...
    ]
}

Get economic data series sorted by when observations were updated on the FRED® server (attribute last_updated). Results are limited to series updated within the last two weeks.

HTTP Request

GET https://api.stlouisfed.org/fred/series/updates

Query Parameters

Parameter Default Required Type Description Restrictions
series_id None true Integer The id for a series. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
filter_value all false String Limit results by geographic type of economic data series; namely ‘macro’, ‘regional’, and ‘all’. ‘macro’ limits results to macroeconomic data series. In general, these are series for entire countries that are not subregions of the United States. ‘regional’ limits results to series for parts of the US; namely, series for US states, counties, and Metropolitan Statistical Areas (MSA). ‘all’ does not filter results. One of the values: ‘macro’, ‘regional’, ‘all’

Get Dates When Series Was Revised

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.series.getVintageDatesSeries('GNPCA')
  .then((res) => {
    console.log('Dates When Series Was Revised', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "1776-07-04",
    "realtime_end": "9999-12-31",
    "order_by": "vintage_date",
    "sort_order": "asc",
    "count": 162,
    "offset": 0,
    "limit": 10000,
    "vintage_dates": [
        "1958-12-21",
        "1959-02-19",
        "1959-07-19",
        "1960-02-16",
        "1960-07-22",
        "1961-02-19",
        "1961-07-19",
        "1962-02-24",
        "1962-07-20",
        "1963-02-20",
        "1963-07-22"
    ...
    ]
}

Get the dates in history when a series’ data values were revised or new data values were released. Vintage dates are the release dates for a series excluding release dates when the data for the series did not change.

HTTP Request

GET https://api.stlouisfed.org/fred/series/vintagedates

Query Parameters

Parameter Default Required Type Description Restrictions
series_id None true Integer The id for a series. None
realtime_start 1776-07-04 (earliest available) false Date The start of the real-time period. None
realtime_end 9999-12-31 (latest available) false Date The end of the real-time period. None
limit 10000 false Integer The maximum number of results to return Must be an integer between 1 and 10000
offset 0 false Integer A non negative integer A non negative integer
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.

Source

Get A Source

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.sources.getSource(1)
  .then((res) => {
    console.log('Source', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "sources": [
        {
            "id": 1,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "Board of Governors of the Federal Reserve System",
            "link": "http://www.federalreserve.gov/"
        }
    ]
}

Get a source of economic data.

HTTP Request

GET https://api.stlouisfed.org/fred/source

Query Parameters

Parameter Default Required Type Description Restrictions
source_id None true String The id for a source. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None

Get Releases For Source

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.sources.getReleasesForSource(1)
  .then((res) => {
    console.log('Releases For Source', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "release_id",
    "sort_order": "asc",
    "count": 26,
    "offset": 0,
    "limit": 1000,
    "releases": [
        {
            "id": 13,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "G.17 Industrial Production and Capacity Utilization",
            "press_release": true,
            "link": "http://www.federalreserve.gov/releases/g17/"
        },
        {
            "id": 14,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "G.19 Consumer Credit",
            "press_release": true,
            "link": "http://www.federalreserve.gov/releases/g19/"
        },
        {
            "id": 15,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "G.5 Foreign Exchange Rates",
            "press_release": true,
            "link": "http://www.federalreserve.gov/releases/g5/"
        }
    ...
    ]
}

Get the releases for a source.

HTTP Request

GET https://api.stlouisfed.org/fred/source/release

Query Parameters

Parameter Default Required Type Description Restrictions
source_id None true String The id for a source. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by release_id false String Order results by values of the specified attribute. One of the following strings: ‘release_id’, ‘name’, ‘press_release’, ‘realtime_start’, ‘realtime_end’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.

Sources

Get All Sources

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.sources.getAllSources()
  .then((res) => {
    console.log('Sources', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "source_id",
    "sort_order": "asc",
    "count": 58,
    "offset": 0,
    "limit": 1000,
    "sources": [
        {
            "id": 1,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "Board of Governors of the Federal Reserve System",
            "link": "http://www.federalreserve.gov/"
        },
        {
            "id": 3,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "Federal Reserve Bank of Philadelphia",
            "link": "http://www.philadelphiafed.org/"
        },
        {
            "id": 4,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "Federal Reserve Bank of St. Louis",
            "link": "http://www.stlouisfed.org/"
        },
        {
            "id": 6,
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "name": "Federal Financial Institutions Examination Council",
            "link": "http://www.ffiec.gov/"
        }
    ...
    ]
}

Get all sources of economic data.

HTTP Request

GET https://api.stlouisfed.org/fred/sources

Query Parameters

Parameter Default Required Type Description Restrictions
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by source_id false String Order results by values of the specified attribute. One of the following strings: ‘source_id’, ‘name’, ‘realtime_start’, ‘realtime_end’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.

Tags

Get All Tags

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.tags.getAllTags()
  .then((res) => {
    console.log('Tags', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "series_count",
    "sort_order": "desc",
    "count": 4794,
    "offset": 0,
    "limit": 1000,
    "tags": [
        {
            "name": "nation",
            "group_id": "geot",
            "notes": "Country Level",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 105200
        },
        {
            "name": "nsa",
            "group_id": "seas",
            "notes": "Not seasonally adjusted",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 96,
            "series_count": 100468
        },
        {
            "name": "oecd",
            "group_id": "src",
            "notes": "Organisation for Economic Co-operation and Development",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 76,
            "series_count": 61488
        }
    ...
    ]
}

Get FRED tags. Optionally, filter results by tag name, tag group, or search.

HTTP Request

GET https://api.stlouisfed.org/fred/tags

Query Parameters

Parameter Default Required Type Description Restrictions
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
search_text “” false String The words to find matching tags with. None
tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
tag_group_id No Filter false String A tag group id to filter tags by type. One of the following: ‘freq’, ‘gen’, ‘geo’, ‘geot’, ‘rls’, ‘seas’, ‘src’.

Get All Series Matching Tags

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.tags.getAllSeriesMatchingTags('slovenia;food;oecd')
  .then((res) => {
    console.log('Series Matching Tags', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "series_id",
    "sort_order": "asc",
    "count": 18,
    "offset": 0,
    "limit": 1000,
    "seriess": [
        {
            "id": "CPGDFD02SIA657N",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Consumer Price Index: Total Food Excluding Restaurants for Slovenia",
            "observation_start": "1996-01-01",
            "observation_end": "2012-01-01",
            "frequency": "Annual",
            "frequency_short": "A",
            "units": "Growth Rate Previous Period",
            "units_short": "Growth Rate Previous Period",
            "seasonal_adjustment": "Not Seasonally Adjusted",
            "seasonal_adjustment_short": "NSA",
            "last_updated": "2013-07-24 02:07:00-05",
            "popularity": 0,
            "notes": "OECD descriptor ID: CPGDFD02\nOECD unit ID: GP\nOECD country ID: SVN\n\nAll OECD data should be cited as follows: OECD, \"Main Economic Indicators - complete database\", Main Economic Indicators (database),http://dx.doi.org/10.1787/data-00052-en (Accessed on date)\nCopyright OECD. Reprinted with permission."
        },
        {
            "id": "CPGDFD02SIA659N",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Consumer Price Index: Total Food Excluding Restaurants for Slovenia",
            "observation_start": "1996-01-01",
            "observation_end": "2000-01-01",
            "frequency": "Annual",
            "frequency_short": "A",
            "units": "Growth Rate Same Period Previous Year",
            "units_short": "Growth Rate Same Period Previous Yr.",
            "seasonal_adjustment": "Not Seasonally Adjusted",
            "seasonal_adjustment_short": "NSA",
            "last_updated": "2013-08-12 00:14:01-05",
            "popularity": 0,
            "notes": "OECD descriptor ID: CPGDFD02\nOECD unit ID: GY\nOECD country ID: SVN\n\nAll OECD data should be cited as follows: OECD, \"Main Economic Indicators - complete database\", Main Economic Indicators (database),http://dx.doi.org/10.1787/data-00052-en (Accessed on date)\nCopyright OECD. Reprinted with permission."
        },
        {
            "id": "CPGDFD02SIM657N",
            "realtime_start": "2013-08-14",
            "realtime_end": "2013-08-14",
            "title": "Consumer Price Index: Total Food Excluding Restaurants for Slovenia",
            "observation_start": "1996-01-01",
            "observation_end": "2013-05-01",
            "frequency": "Monthly",
            "frequency_short": "M",
            "units": "Growth Rate Previous Period",
            "units_short": "Growth Rate Previous Period",
            "seasonal_adjustment": "Not Seasonally Adjusted",
            "seasonal_adjustment_short": "NSA",
            "last_updated": "2013-07-24 17:24:28-05",
            "popularity": 0,
            "notes": "OECD descriptor ID: CPGDFD02\nOECD unit ID: GP\nOECD country ID: SVN\n\nAll OECD data should be cited as follows: OECD, \"Main Economic Indicators - complete database\", Main Economic Indicators (database),http://dx.doi.org/10.1787/data-00052-en (Accessed on date)\nCopyright OECD. Reprinted with permission."
        }
    ...
    ]
}

Get the series matching all tags in the tag_names parameter and no tags in the exclude_tag_names parameter.

HTTP Request

GET https://api.stlouisfed.org/fred/tags/series

Query Parameters

Parameter Default Required Type Description Restrictions
tag_names None true Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_id false String Order results by values of the specified attribute. One of the following strings: ‘series_id’, ‘title’, ‘units’, ‘frequency’, ‘seasonal_adjustment’, ‘realtime_start’, ‘realtime_end’, ‘last_updated’, ‘observation_start’, ‘observation_end’, ‘popularity’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
search_text “” false String The words to find matching tags with. None
exclude_tag_names No filter false Semicolon delimited string A semicolon delimited list of tag names that series match none of. None

Related Tags

import Fred from 'node-fred';

const fred = new Fred(API_KEY);

fred.tags.getAllRelatedTags('monetary+aggregates;weekly')
  .then((res) => {
    console.log('Related Tags', res);
  })
  .catch((err) => {
    console.error('Error', err);
  })

The above command returns JSON structured like this:

{
    "realtime_start": "2013-08-14",
    "realtime_end": "2013-08-14",
    "order_by": "series_count",
    "sort_order": "desc",
    "count": 13,
    "offset": 0,
    "limit": 1000,
    "tags": [
        {
            "name": "nation",
            "group_id": "geot",
            "notes": "Country Level",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 12
        },
        {
            "name": "usa",
            "group_id": "geo",
            "notes": "United States of America",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 100,
            "series_count": 12
        },
        {
            "name": "frb",
            "group_id": "src",
            "notes": "Board of Governors of the Federal Reserve System",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 90,
            "series_count": 10
        },
        {
            "name": "nsa",
            "group_id": "seas",
            "notes": "Not seasonally adjusted",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 96,
            "series_count": 6
        },
        {
            "name": "sa",
            "group_id": "seas",
            "notes": "Seasonally adjusted",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 94,
            "series_count": 6
        },
        {
            "name": "m1",
            "group_id": "gen",
            "notes": "M1 Money Stock",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 71,
            "series_count": 4
        },
        {
            "name": "m2",
            "group_id": "gen",
            "notes": "M2 Money Stock",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 75,
            "series_count": 4
        },
        {
            "name": "currency",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 74,
            "series_count": 2
        },
        {
            "name": "discontinued",
            "group_id": "gen",
            "notes": "",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 68,
            "series_count": 2
        },
        {
            "name": "frb stl",
            "group_id": "src",
            "notes": "Federal Reserve Bank of St. Louis (source)",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 81,
            "series_count": 2
        },
        {
            "name": "h6",
            "group_id": "rls",
            "notes": "H.6 Money Stock Measures",
            "created": "2012-08-16 15:21:17-05",
            "popularity": 41,
            "series_count": 2
        },
        {
            "name": "m3",
            "group_id": "gen",
            "notes": "M3 Money Stock",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 50,
            "series_count": 2
        },
        {
            "name": "mzm",
            "group_id": "gen",
            "notes": "MZM Money Stock",
            "created": "2012-02-27 10:18:19-06",
            "popularity": 61,
            "series_count": 2
        }
    ]
}

Get the related FRED tags for one or more FRED tags. Optionally, filter results by tag group or search.

FRED tags are attributes assigned to series. Related FRED tags are the tags assigned to series that match all tags in the tag_names parameter and no tags in the exclude_tag_names parameter.

HTTP Request

GET https://api.stlouisfed.org/fred/related_tags

Query Parameters

Parameter Default Required Type Description Restrictions
tag_names None true Semicolon delimited string A semicolon delimited list of tag names that series match all of. None
realtime_start Today’s Date false Date The start of the real-time period. None
realtime_end Today’s Date false Date The end of the real-time period. None
limit 1000 false Integer The maximum number of results to return Must be an integer between 1 and 1000
offset 0 false Integer A non negative integer A non negative integer
order_by series_count false String Order results by values of the specified attribute. One of the following strings: ‘series_count’, ‘popularity’, ‘created’, ‘name’, ‘group_id’.
sort_order asc false String Sort results is ascending or descending order for attribute values specified by order_by. One of the following strings: ‘asc’, ‘desc’.
tag_group_id No Filter false String A tag group id to filter tags by type. One of the following: ‘freq’, ‘gen’, ‘geo’, ‘geot’, ‘rls’, ‘seas’, ‘src’.
search_text No Filter false String The words to find matching tags with. None

Errors

The Fred API uses the following error codes:

Error Code Meaning
400 Bad Request – Your request sucks
401 Unauthorized – Your API key is wrong
403 Forbidden – The kitten requested is hidden for administrators only
404 Not Found – The specified kitten could not be found
405 Method Not Allowed – You tried to access a kitten with an invalid method
406 Not Acceptable – You requested a format that isn’t json
410 Gone – The kitten requested has been removed from our servers
418 I’m a teapot
429 Too Many Requests – You’re requesting too many kittens! Slow down!
500 Internal Server Error – We had a problem with our server. Try again later.
503 Service Unavailable – We’re temporarily offline for maintenance. Please try again later.