Fred Economic Data logo

Fred Economic Data

CommunityPopular
foryourhealth111-pixel
fred-economic-data

Query FRED (Federal Reserve Economic Data) API for 800,000+ economic time series from 100+ sources. Access GDP, unemployment, inflation, interest rates, exchange rates, housing, and regional data. Use for macroeconomic analysis, financial research, policy studies, economic forecasting, and academic research requiring U.S. and international economic indicators.

Overview

Publisherforyourhealth111-pixel
RepositoryVibe-Skills
Skill namefred-economic-data
Stars
3.7K
Forks
326
Bundled files
9
LicenseUnknown
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 9 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by foryourhealth111-pixel on GitHub. Read the source before you install it.

Installation

Install the Fred Economic Data AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/foryourhealth111-pixel/Vibe-Skills/tree/main/bundled/skills/fred-economic-data
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/foryourhealth111-pixel/Vibe-Skills.git /tmp/Vibe-Skills
mkdir -p .claude/skills
cp -r /tmp/Vibe-Skills/bundled/skills/fred-economic-data .claude/skills/fred-economic-data
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Fred Economic Data in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Fred Economic Data on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Fred Economic Data is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

FRED Economic Data Access

Overview

Access comprehensive economic data through FRED (Federal Reserve Economic Data), a database maintained by the Federal Reserve Bank of St. Louis containing over 800,000 economic time series from over 100 sources.

Key capabilities:

  • Query economic time series data (GDP, unemployment, inflation, interest rates)
  • Search and discover series by keywords, tags, and categories
  • Access historical data and vintage (revision) data via ALFRED
  • Retrieve release schedules and data publication dates
  • Map regional economic data with GeoFRED
  • Apply data transformations (percent change, log, etc.)

API Key Setup

Required: All FRED API requests require an API key.

  1. Create an account at https://fredaccount.stlouisfed.org
  2. Log in and request an API key through the account portal
  3. Set as environment variable:
bash
export FRED_API_KEY="your_32_character_key_here"

Or in Python:

python
import os
os.environ["FRED_API_KEY"] = "your_key_here"

Quick Start

Using the FREDQuery Class

python
from scripts.fred_query import FREDQuery

# Initialize with API key
fred = FREDQuery(api_key="YOUR_KEY")  # or uses FRED_API_KEY env var

# Get GDP data
gdp = fred.get_series("GDP")
print(f"Latest GDP: {gdp['observations'][-1]}")

# Get unemployment rate observations
unemployment = fred.get_observations("UNRATE", limit=12)
for obs in unemployment["observations"]:
    print(f"{obs['date']}: {obs['value']}%")

# Search for inflation series
inflation_series = fred.search_series("consumer price index")
for s in inflation_series["seriess"][:5]:
    print(f"{s['id']}: {s['title']}")

Direct API Calls

python
import requests
import os

API_KEY = os.environ.get("FRED_API_KEY")
BASE_URL = "https://api.stlouisfed.org/fred"

# Get series observations
response = requests.get(
    f"{BASE_URL}/series/observations",
    params={
        "api_key": API_KEY,
        "series_id": "GDP",
        "file_type": "json"
    }
)
data = response.json()

Popular Economic Series

Series IDDescriptionFrequency
GDPGross Domestic ProductQuarterly
GDPC1Real Gross Domestic ProductQuarterly
UNRATEUnemployment RateMonthly
CPIAUCSLConsumer Price Index (All Urban)Monthly
FEDFUNDSFederal Funds Effective RateMonthly
DGS1010-Year Treasury Constant MaturityDaily
HOUSTHousing StartsMonthly
PAYEMSTotal Nonfarm PayrollsMonthly
INDPROIndustrial Production IndexMonthly
M2SLM2 Money StockMonthly
UMCSENTConsumer SentimentMonthly
SP500S&P 500Daily

API Endpoint Categories

Series Endpoints

Get economic data series metadata and observations.

Key endpoints:

  • fred/series - Get series metadata
  • fred/series/observations - Get data values (most commonly used)
  • fred/series/search - Search for series by keywords
  • fred/series/updates - Get recently updated series
python
# Get observations with transformations
obs = fred.get_observations(
    series_id="GDP",
    units="pch",  # percent change
    frequency="q",  # quarterly
    observation_start="2020-01-01"
)

# Search with filters
results = fred.search_series(
    "unemployment",
    filter_variable="frequency",
    filter_value="Monthly"
)

Reference: See references/series.md for all 10 series endpoints

Categories Endpoints

Navigate the hierarchical organization of economic data.

Key endpoints:

  • fred/category - Get a category
  • fred/category/children - Get subcategories
  • fred/category/series - Get series in a category
python
# Get root categories (category_id=0)
root = fred.get_category()

# Get Money Banking & Finance category and its series
category = fred.get_category(32991)
series = fred.get_category_series(32991)

Reference: See references/categories.md for all 6 category endpoints

Releases Endpoints

Access data release schedules and publication information.

Key endpoints:

  • fred/releases - Get all releases
  • fred/releases/dates - Get upcoming release dates
  • fred/release/series - Get series in a release
python
# Get upcoming release dates
upcoming = fred.get_release_dates()

# Get GDP release info
gdp_release = fred.get_release(53)

Reference: See references/releases.md for all 9 release endpoints

Tags Endpoints

Discover and filter series using FRED tags.

python
# Find series with multiple tags
series = fred.get_series_by_tags(["gdp", "quarterly", "usa"])

# Get related tags
related = fred.get_related_tags("inflation")

Reference: See references/tags.md for all 3 tag endpoints

Sources Endpoints

Get information about data sources (BLS, BEA, Census, etc.).

python
# Get all sources
sources = fred.get_sources()

# Get Federal Reserve releases
fed_releases = fred.get_source_releases(source_id=1)

Reference: See references/sources.md for all 3 source endpoints

GeoFRED Endpoints

Access geographic/regional economic data for mapping.

python
# Get state unemployment data
regional = fred.get_regional_data(
    series_group="1220",  # Unemployment rate
    region_type="state",
    date="2023-01-01",
    units="Percent",
    season="NSA"
)

# Get GeoJSON shapes
shapes = fred.get_shapes("state")

Reference: See references/geofred.md for all 4 GeoFRED endpoints

Data Transformations

Apply transformations when fetching observations:

ValueDescription
linLevels (no transformation)
chgChange from previous period
ch1Change from year ago
pchPercent change from previous period
pc1Percent change from year ago
pcaCompounded annual rate of change
cchContinuously compounded rate of change
ccaContinuously compounded annual rate of change
logNatural log
python
# Get GDP percent change from year ago
gdp_growth = fred.get_observations("GDP", units="pc1")

Frequency Aggregation

Aggregate data to different frequencies:

CodeFrequency
dDaily
wWeekly
mMonthly
qQuarterly
aAnnual

Aggregation methods: avg (average), sum, eop (end of period)

python
# Convert daily to monthly average
monthly = fred.get_observations(
    "DGS10",
    frequency="m",
    aggregation_method="avg"
)

Real-Time (Vintage) Data

Access historical vintages of data via ALFRED:

python
# Get GDP as it was reported on a specific date
vintage_gdp = fred.get_observations(
    "GDP",
    realtime_start="2020-01-01",
    realtime_end="2020-01-01"
)

# Get all vintage dates for a series
vintages = fred.get_vintage_dates("GDP")

Common Patterns

Pattern 1: Economic Dashboard

python
def get_economic_snapshot(fred):
    """Get current values of key indicators."""
    indicators = ["GDP", "UNRATE", "CPIAUCSL", "FEDFUNDS", "DGS10"]
    snapshot = {}

    for series_id in indicators:
        obs = fred.get_observations(series_id, limit=1, sort_order="desc")
        if obs.get("observations"):
            latest = obs["observations"][0]
            snapshot[series_id] = {
                "value": latest["value"],
                "date": latest["date"]
            }

    return snapshot

Pattern 2: Time Series Comparison

python
def compare_series(fred, series_ids, start_date):
    """Compare multiple series over time."""
    import pandas as pd

    data = {}
    for sid in series_ids:
        obs = fred.get_observations(
            sid,
            observation_start=start_date,
            units="pc1"  # Normalize as percent change
        )
        data[sid] = {
            o["date"]: float(o["value"])
            for o in obs["observations"]
            if o["value"] != "."
        }

    return pd.DataFrame(data)

Pattern 3: Release Calendar

python
def get_upcoming_releases(fred, days=7):
    """Get data releases in next N days."""
    from datetime import datetime, timedelta

    end_date = datetime.now() + timedelta(days=days)

    releases = fred.get_release_dates(
        realtime_start=datetime.now().strftime("%Y-%m-%d"),
        realtime_end=end_date.strftime("%Y-%m-%d"),
        include_release_dates_with_no_data="true"
    )

    return releases

Pattern 4: Regional Analysis

python
def map_state_unemployment(fred, date):
    """Get unemployment by state for mapping."""
    data = fred.get_regional_data(
        series_group="1220",
        region_type="state",
        date=date,
        units="Percent",
        frequency="a",
        season="NSA"
    )

    # Get GeoJSON for mapping
    shapes = fred.get_shapes("state")

    return data, shapes

Error Handling

python
result = fred.get_observations("INVALID_SERIES")

if "error" in result:
    print(f"Error {result['error']['code']}: {result['error']['message']}")
elif not result.get("observations"):
    print("No data available")
else:
    # Process data
    for obs in result["observations"]:
        if obs["value"] != ".":  # Handle missing values
            print(f"{obs['date']}: {obs['value']}")

Rate Limits

  • API implements rate limiting
  • HTTP 429 returned when exceeded
  • Use caching for frequently accessed data
  • The FREDQuery class includes automatic retry with backoff

Reference Documentation

For detailed endpoint documentation:

  • Series endpoints - See references/series.md
  • Categories endpoints - See references/categories.md
  • Releases endpoints - See references/releases.md
  • Tags endpoints - See references/tags.md
  • Sources endpoints - See references/sources.md
  • GeoFRED endpoints - See references/geofred.md
  • API basics - See references/api_basics.md

Scripts

scripts/fred_query.py

Main query module with FREDQuery class providing:

  • Unified interface to all FRED endpoints
  • Automatic rate limiting and caching
  • Error handling and retry logic
  • Type hints and documentation

scripts/fred_examples.py

Comprehensive examples demonstrating:

  • Economic indicator retrieval
  • Time series analysis
  • Release calendar monitoring
  • Regional data mapping
  • Data transformation and aggregation

Run examples:

bash
uv run python scripts/fred_examples.py

Additional Resources

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Fred Economic Data AI skill do?

Query FRED (Federal Reserve Economic Data) API for 800,000+ economic time series from 100+ sources. Access GDP, unemployment, inflation, interest rates, exchange rates, housing, and regional data. Use for macroeconomic analysis, financial research, policy studies, economic forecasting, and academic research requiring U.S. and international economic indicators.

Why use Fred Economic Data on TypingMind?

Because you install it once and use it with any model. Fred Economic Data is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Fred Economic Data in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/foryourhealth111-pixel/Vibe-Skills/tree/main/bundled/skills/fred-economic-data. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Fred Economic Data?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Fred Economic Data?

As many as you like. As long as a model supports skills, you can use Fred Economic Data with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Fred Economic Data AI skill free?

Yes. It is published on GitHub by foryourhealth111-pixel under the Unknown license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇