FOMC Meeting Transcripts & Minutes Scraper
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. 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.
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 login, public-domain source. You pay for the data, not the plumbing.