File size: 855 Bytes
0ee2df7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""
FRED (Federal Reserve Economic Data) -- free instant-signup API key.
"""
import httpx
from supabase_client import require_tool_keys


def run(params: dict) -> dict:
    creds = require_tool_keys("fred")
    api_key = creds["api_key"]

    series_id = params.get("series_id")
    if not series_id:
        raise ValueError("series_id is required")

    resp = httpx.get(
        "https://api.stlouisfed.org/fred/series/observations",
        params={"series_id": series_id, "api_key": api_key, "file_type": "json"},
        timeout=15.0,
    )
    resp.raise_for_status()
    data = resp.json()

    observations = [
        {"date": o["date"], "value": o["value"]}
        for o in data.get("observations", [])
        if o.get("value") not in (None, ".")
    ]
    return {"series_id": series_id, "count": len(observations), "results": observations}