Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Federal Reserve Economic Data API for US economic indicators
.claude/skills/brycewang-stanford-fred-api/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-17 | ✗→✓ | ▲ Improved | 203% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 176% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 572% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 205% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 264% | 0% |
FRED (Federal Reserve Economic Data) is a database maintained by the Research Division of the Federal Reserve Bank of St. Louis. It contains over 800,000 economic time series from dozens of national and international sources, covering macroeconomic indicators, financial markets, employment, trade, monetary policy, and more.
The FRED API provides programmatic access to this extensive economic data repository. Researchers can retrieve time series observations, search for data series by keyword or category, explore release schedules, and access vintage (real-time) data for historical analysis. The data spans decades and in some cases centuries, making it invaluable for longitudinal economic research.
Economists, financial analysts, policy researchers, data scientists, and academic institutions rely on the FRED API for econometric modeling, macroeconomic forecasting, policy analysis, and teaching. It is one of the most widely used economic data APIs in academic research and is cited in thousands of peer-reviewed publications.
Authentication requires a free API key from the Federal Reserve Bank of St. Louis.
api_key query parameter in all requestsbashcurl "https://api.stlouisfed.org/fred/series?series_id=GDP&api_key=YOUR_KEY&file_type=json"
API keys are free and available to anyone who registers. There is no fee or approval process.
Get metadata about a specific economic data series, including title, frequency, units, seasonal adjustment, and date range.
GET https://api.stlouisfed.org/fred/series| Parameter | Type | Required | Description | |------------|--------|----------|--------------------------------------------| | series_id | string | Yes | FRED series identifier (e.g., GDP) | | api_key | string | Yes | Your FRED API key | | file_type | string | No | Response format: json or xml (default) |
bashcurl "https://api.stlouisfed.org/fred/series?series_id=UNRATE&api_key=YOUR_KEY&file_type=json"
seriess array with id, title, observation_start, observation_end, frequency, units, seasonal_adjustment, notes, and popularity ranking.Fetch actual data points (observations) for a specific economic series over a date range.
GET https://api.stlouisfed.org/fred/series/observations| Parameter | Type | Required | Description | |--------------------|--------|----------|----------------------------------------------------| | series_id | string | Yes | FRED series identifier | | api_key | string | Yes | Your FRED API key | | observation_start | string | No | Start date in YYYY-MM-DD format | | observation_end | string | No | End date in YYYY-MM-DD format | | frequency | string | No | Aggregation: d, w, m, q, a | | aggregation_method | string | No | avg, sum, eop (end of period) | | file_type | string | No | json or xml |
bashcurl "https://api.stlouisfed.org/fred/series/observations?series_id=GDP&observation_start=2020-01-01&api_key=YOUR_KEY&file_type=json"
observations array with date and value for each observation period.Navigate the hierarchical FRED category system to discover available data series organized by topic.
GET https://api.stlouisfed.org/fred/category| Parameter | Type | Required | Description | |-------------|--------|----------|-----------------------------------------------| | category_id | int | Yes | Category ID (0 for root) | | api_key | string | Yes | Your FRED API key | | file_type | string | No | json or xml |
bashcurl "https://api.stlouisfed.org/fred/category/children?category_id=0&api_key=YOUR_KEY&file_type=json"
categories array with id, name, and parent_id for child categories.Retrieve information about data releases, which group related series that are published together.
GET https://api.stlouisfed.org/fred/releases| Parameter | Type | Required | Description | |------------|--------|----------|---------------------------------------| | api_key | string | Yes | Your FRED API key | | file_type | string | No | json or xml |
bashcurl "https://api.stlouisfed.org/fred/releases?api_key=YOUR_KEY&file_type=json"
releases array with id, name, press_release, link, and release notes.The FRED API enforces rate limits that vary by usage. Standard limits allow approximately 120 requests per minute. Exceeding the limit returns HTTP 429 responses. For bulk data retrieval, consider using the FRED Excel add-in or downloading bulk files from https://fred.stlouisfed.org/. Academic users can contact FRED for elevated limits if needed.
Fetch quarterly GDP observations for macroeconomic analysis:
pythonimport requests params = { "series_id": "GDP", "api_key": "YOUR_KEY", "file_type": "json", "observation_start": "2015-01-01" } resp = requests.get("https://api.stlouisfed.org/fred/series/observations", params=params) data = resp.json() for obs in data["observations"]: print(f"{obs['date']}: ${obs['value']}B")
Build a multi-series dataset for econometric analysis:
pythonimport requests series_ids = ["UNRATE", "CPIAUCSL", "FEDFUNDS", "GDP"] api_key = os.environ["FRED_API_KEY"] for sid in series_ids: resp = requests.get("https://api.stlouisfed.org/fred/series/observations", params={ "series_id": sid, "api_key": api_key, "file_type": "json", "observation_start": "2020-01-01", "frequency": "m" }) obs = resp.json()["observations"] print(f"{sid}: {len(obs)} monthly observations retrieved")
Discover available data series on a specific topic:
bashcurl "https://api.stlouisfed.org/fred/series/search?search_text=consumer+price+index&api_key=YOUR_KEY&file_type=json&limit=10"
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 4,934 | 7,462 | +51% | 1 | 1 | 0% | 875 | 2,419 | +176% | 0 | 0 | — |
case-02 | pass→pass | 2,553 | 2,532 | -1% | 1 | 1 | 0% | 344 | 2,310 | +572% | 0 | 0 | — |
case-03 | pass→pass | 4,625 | 2,986 | -35% | 1 | 1 | 0% | 804 | 2,450 | +205% | 0 | 0 | — |
case-04 | pass→pass | 4,458 | 4,575 | +3% | 1 | 1 | 0% | 707 | 2,570 | +264% | 0 | 0 | — |
case-05 | pass→pass | 3,052 | 2,750 | -10% | 1 | 1 | 0% | 542 | 2,336 | +331% | 0 | 0 | — |
case-06 | pass→pass | 2,476 | 2,825 | +14% | 1 | 1 | 0% | 391 | 2,423 | +520% | 0 | 0 | — |
case-07 | pass→pass | 4,060 | 4,329 | +7% | 1 | 1 | 0% | 824 | 2,705 | +228% | 0 | 0 | — |
case-08 | pass→pass | 3,526 | 3,635 | +3% | 1 | 1 | 0% | 576 | 2,495 | +333% | 0 | 0 | — |
case-09 | pass→pass | 3,136 | 2,870 | -8% | 1 | 1 | 0% | 527 | 2,437 | +362% | 0 | 0 | — |
case-10 | pass→pass | 2,824 | 3,223 | +14% | 1 | 1 | 0% | 424 | 2,470 | +483% | 0 | 0 | — |
case-11 | pass→pass | 3,597 | 2,045 | -43% | 1 | 1 | 0% | 605 | 2,251 | +272% | 0 | 0 | — |
case-20 | pass→pass | 2,133 | 2,312 | +8% | 1 | 1 | 0% | 361 | 2,242 | +521% | 0 | 0 | — |
case-12 | pass→pass | 4,401 | 2,846 | -35% | 1 | 1 | 0% | 801 | 2,421 | +202% | 0 | 0 | — |
case-13 | pass→pass | 4,103 | 3,482 | -15% | 1 | 1 | 0% | 700 | 2,549 | +264% | 0 | 0 | — |
case-14 | pass→pass | 4,162 | 3,938 | -5% | 1 | 1 | 0% | 770 | 2,435 | +216% | 0 | 0 | — |
case-15 | pass→pass | 3,232 | 2,551 | -21% | 1 | 1 | 0% | 530 | 2,355 | +344% | 0 | 0 | — |
case-16 | pass→pass | 4,110 | 2,729 | -34% | 1 | 1 | 0% | 627 | 2,338 | +273% | 0 | 0 | — |
case-17 | fail→pass | 6,743 | 9,519 | +41% | 1 | 1 | 0% | 1,130 | 3,425 | +203% | 0 | 0 | — |
case-18 | pass→pass | 7,510 | 5,174 | -31% | 1 | 1 | 0% | 979 | 2,886 | +195% | 0 | 0 | — |
case-19 | pass→pass | 1,917 | 1,749 | -9% | 1 | 1 | 0% | 293 | 2,210 | +654% | 0 | 0 | — |
case-21 | pass→pass | 6,298 | 5,624 | -11% | 1 | 1 | 0% | 1,326 | 3,061 | +131% | 0 | 0 | — |
case-22 | pass→pass | 10,870 | 12,546 | +15% | 1 | 1 | 0% | 2,006 | 4,390 | +119% | 0 | 0 | — |
case-23 | pass→pass | 11,360 | 13,341 | +17% | 1 | 1 | 0% | 1,943 | 4,361 | +124% | 0 | 0 | — |
case-24 | pass→pass | 11,949 | 10,027 | -16% | 1 | 1 | 0% | 2,043 | 3,729 | +83% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of +4 percentage points is the difference between those two pass rates over the 24 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.