FOMC Meeting Transcripts & Minutes Scraper
Pricing
Pay per event
FOMC Meeting Transcripts & Minutes Scraper
Scrape the Federal Reserve FOMC archive — transcripts, minutes, Tealbooks, Beige Books, and statements for every meeting since 1936. For recent meetings, returns the rate decision as structured data: target rate band, vote split, dissenters, and the SEP dot plot as numbers.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Share
FOMC Transcripts, Minutes & Policy Decision Scraper
Scrape the Federal Reserve's FOMC archive — transcripts, minutes, Tealbooks, Beige Books, statements, and press conferences for every Federal Open Market Committee meeting since 1936. For recent meetings it also returns the policy decision as structured data: the target rate band, the vote split, and the Summary of Economic Projections dot plot as numbers you can actually compute on.
What This Scraper Collects
- Transcripts — verbatim meeting PDFs, released under the Fed's 5-year embargo
- Minutes — the official meeting summary, out roughly three weeks after each meeting
- Statements — the post-meeting policy statement, parsed into structured fields (more below)
- Projections (SEP) — the Summary of Economic Projections, including the famous dot plot, as structured arrays
- Implementation notes — the operating details: interest on reserves, repo/RRP rates, balance-sheet runoff caps
- Tealbooks A & B — staff economic forecasts prepared before each meeting
- Beige Book — regional conditions from all 12 Reserve Districts
- Agendas and press-conference links — the rest of the paper trail
FOMC Scraper Features
- Covers the full archive — 1936 to the current cycle. Historical transcripts arrive on the 5-year embargo; statements, minutes, and projections are current.
- Parses the policy statement into fields. Target rate band, basis-point change, vote tally, who dissented and what they wanted — no more regexing a PDF.
- Returns the SEP dot plot as numbers. Median and central-tendency ranges for GDP, unemployment, PCE, and core PCE, plus the federal-funds-rate path by year.
- Diffs each statement against the prior meeting, so you can see exactly which sentences changed.
- Filters by year range and artifact type. Run one year of statements, or four decades of transcripts.
- Optional full PDF text with participant lists and topic tags. For the people who want the whole 300-page transcript.
- Runs on 512 MB, no proxy. federalreserve.gov is public and doesn't fight back.
Who Uses FOMC Policy Data?
- Macro and rates desks — track the dot-plot path, vote splits, and statement language shift by shift
- Finance-LLM builders — primary-source central-bank data, already structured, for training and retrieval
- Quant researchers — run the rate decision, projections, and statement diff straight into a model instead of hand-coding a parser
- Academic economists — automate what used to be a manual download for every paper citing FOMC transcripts
- Journalists and analysts — pull the exact wording change between two meetings without diffing PDFs by eye
How the FOMC Scraper Works
- Reads the Fed's per-year history index for the embargo-cleared archive, and the meeting calendar for the current cycle.
- Filters to your
startYear–endYearrange and the artifact types you asked for. - For transcripts, minutes, and Tealbooks, it collects the artifact PDFs and metadata.
- For statements and projections, it fetches the source PDF and parses it into structured fields — rate band, votes, dissenters, the SEP arrays, and a diff against the prior statement.
Input
{"startYear": 2024,"endYear": 2025,"artifactTypes": ["statement", "projections_table"],"maxItems": 0,"extractPdfText": false}
| Field | Type | Default | Description |
|---|---|---|---|
startYear | Integer | 2015 | Earliest FOMC year to include. |
endYear | Integer | current year | Latest FOMC year to include. Defaults to this year, so the latest cycle works out of the box. |
artifactTypes | Array | ["transcript", "minutes"] | Any of: transcript, minutes, statement, projections_table, implementation_note, tealbook_a, tealbook_b, beige_book, agenda, press_conference. |
maxItems | Integer | 0 | Maximum records to return. 0 = unlimited. |
extractPdfText | Boolean | false | Download each artifact PDF and extract plain text. Increases runtime. |
Get the latest rate decisions and dot plot
{"startYear": 2024,"endYear": 2025,"artifactTypes": ["statement", "projections_table", "implementation_note"]}
Transcripts only, for NLP
{"startYear": 2010,"endYear": 2019,"artifactTypes": ["transcript"],"extractPdfText": true}
FOMC Scraper Output Fields
Every record carries the core meeting metadata. statement and projections_table records add structured policy fields on top.
Core fields (every record)
{"meeting_date": "2024-12-18","meeting_type": "regular","year": 2024,"artifact_type": "statement","artifact_url": "https://www.federalreserve.gov/monetarypolicy/files/monetary20241218a1.pdf","chair_name": "Jerome Powell","scraped_at": "2026-06-06T13:37:50.000Z"}
| Field | Type | Description |
|---|---|---|
meeting_date | String | Meeting date, YYYY-MM-DD (last day for multi-day meetings) |
meeting_type | String | regular or conference_call |
year | Number | Meeting year |
artifact_type | String | transcript, minutes, statement, projections_table, implementation_note, tealbook_a, tealbook_b, beige_book, agenda, press_conference |
artifact_url | String | URL of the source PDF or HTML |
artifact_filename | String | Filename from the URL |
artifact_text | String | Extracted plain text (statements/projections always; others when extractPdfText: true) |
participants | String | Semicolon-separated names from a transcript's PRESENT section |
chair_name | String | Fed Chair at the meeting |
minutes_release_date | String | Date the minutes were released |
canonical_url | String | Source index/calendar page |
extracted_topics | String | Heuristic topic tags from transcript text |
scraped_at | String | ISO 8601 timestamp |
Structured statement fields (statement records)
{"target_rate_lower_bound": 4.25,"target_rate_upper_bound": 4.5,"rate_change_bps": -25,"vote_for": 11,"vote_against": 1,"dissenters": [{ "name": "Beth M. Hammack", "preferred_action": "to maintain the target range for the federal funds rate at 4-1/2 to 4-3/4 percent" }],"balance_sheet_action": "reducing_holdings","statement_diff": "- Inflation remains elevated.\n+ Inflation has made progress toward the Committee's 2 percent objective."}
| Field | Type | Description |
|---|---|---|
target_rate_lower_bound | Number | Lower bound of the new target federal funds rate range, percent |
target_rate_upper_bound | Number | Upper bound of the new target range, percent |
rate_change_bps | Number | Signed change in basis points (negative = cut, 0 = hold) |
vote_for | Number | Members voting for the action |
vote_against | Number | Members voting against |
dissenters | Array | { name, preferred_action } for each dissenter |
balance_sheet_action | String | reducing_holdings, maintaining_holdings, expanding_holdings, or other |
statement_diff | String | Sentence-level diff (+/- lines) against the prior meeting's statement |
Structured projections fields (projections_table records)
Each SEP array is one entry per forecast horizon — the projection years plus longer_run.
{"sep_parsed": true,"sep_horizons": [2024, 2025, 2026, 2027, "longer_run"],"sep_fed_funds_median": [{ "horizon": 2024, "value": 4.4 }, { "horizon": 2025, "value": 3.9 }],"sep_gdp_growth_central": [{ "horizon": 2024, "low": 2.4, "high": 2.5 }],"sep_fed_funds_central": [{ "horizon": 2024, "low": 4.4, "high": 4.6 }]}
| Field | Type | Description |
|---|---|---|
sep_parsed | Boolean | true when the projections table was parsed into structured arrays; false = raw text only (older layouts) |
sep_horizons | Array | Forecast horizons, e.g. [2024, 2025, 2026, 2027, "longer_run"] |
sep_fed_funds_median | Array | Median fed funds rate per horizon — the dot-plot median path — as { horizon, value } |
sep_fed_funds_central | Array | Central-tendency fed funds range per horizon, { horizon, low, high } |
sep_gdp_growth_central | Array | Central-tendency real GDP growth per horizon |
sep_unemployment_central | Array | Central-tendency unemployment rate per horizon |
sep_pce_inflation_central | Array | Central-tendency PCE inflation per horizon |
sep_core_pce_central | Array | Central-tendency core PCE inflation per horizon |
🔍 FAQ
How do I get the FOMC dot plot as data?
Request projections_table in artifactTypes. The scraper fetches the Summary of Economic Projections and returns the median dot-plot path (sep_fed_funds_median) plus central-tendency ranges for rates, growth, unemployment, and inflation — structured arrays, not a PDF screenshot.
Can I get the rate decision and vote split?
Yes. Request statement and each record carries target_rate_lower_bound / target_rate_upper_bound, rate_change_bps, the vote_for / vote_against tally, and a dissenters list with each dissenter's preferred action. The balance-sheet stance and a diff against the prior statement come along too.
How far back does the FOMC scraper go?
It covers 1936 to the present. Verbatim transcripts follow the Fed's 5-year embargo, so the transcript corpus runs through roughly five years ago; statements, minutes, and projections are available for the current cycle.
Does it need proxies?
No. federalreserve.gov is fully public and tolerates polite traffic, so the scraper runs without proxies on 512 MB.
Is the data public domain?
Yes. Everything the FOMC publishes is a U.S. federal government work, so the output is public domain.
Need More Features?
Need a different artifact, an added field, or a custom horizon breakout? File an issue on the actor page.
Why Use This FOMC Scraper?
- Structured, not scraped-and-sorry — rate band, votes, and the dot plot arrive as typed fields, so you skip the PDF parser nobody wants to maintain.
- The only one that parses the SEP — most FOMC tools hand you a text dump; this one returns the projections table and dot-plot median path as numbers you can model on directly.
- Cheap and public — no proxies, no login, public-domain source. You pay for the data, not the plumbing.
