Register for a free API key at fred.stlouisfed.org/docs/api/api_key.html
Look up series IDs by searching the FRED website or calling GET https://api.stlouisfed.org/fred/series/search?search_text={term}&api_key={key}&file_type=json
Fetch observations by calling GET https://api.stlouisfed.org/fred/series/observations with params: series_id, api_key, file_type=json, observation_start, observation_end, units (lin, chg, ch1, pch, pc1, pca, cch, cca, log), and frequency (d, w, bw, m, q, sa, a)
For vintage/revision history use the realtime_start and realtime_end params on the same observations endpoint to retrieve data as it was published on a specific date
To retrieve release metadata, call GET https://api.stlouisfed.org/fred/series/release?series_id={id}&api_key={key}&file_type=json
Batch multiple series into a single request by calling GET https://api.stlouisfed.org/fred/release/series?release_id={id} to get all series in a release, then loop observations calls
Known gotchas
The API returns all observation values as strings including 'missing value' markers (a period '.') — always cast to float after filtering out period values before computing statistics
Seasonal adjustment variants share the same series name but have different IDs (e.g., UNRATE vs UNRATENSA); confirm the SA suffix in the series metadata before using in models
FRED enforces no documented per-second rate limit but will return HTTP 429 if you burst too fast; add a 200ms delay between calls and cache responses aggressively
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp