OrbTop

US Congress Financial Disclosure Scraper

BUSINESS

Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.

US Congress Financial Disclosure Scraper

Pulls financial disclosures for both chambers of Congress — the House and the Senate. That means stock trades (Periodic Transaction Reports) and the full annual disclosure schedules: assets, income, liabilities, positions, agreements, gifts, travel. Most tools stop at PTRs from one chamber. This one doesn't.

Senate availability note: the House side is fully verified and always available. The Senate side (efdsearch.senate.gov) has been intermittently unreachable upstream (HTTP 503 / maintenance). When that happens, a Senate-only run fails loudly with the real cause named instead of returning an empty result — it never reports success with 0 records. Request both chambers, or retry later, if you hit this.


US Congress Financial Disclosure Scraper Features

  • Covers both the House and the Senate in one normalized schema
  • Parses Periodic Transaction Reports — ticker, buy/sell/exchange, date, amount band, per-owner (self/spouse/joint)
  • Parses the full Annual Financial Disclosure — Schedules A through I: assets and unearned income, earned income, liabilities, outside positions, future-employment agreements, gifts, and privately funded travel
  • Computes filing_delay_days per trade — the STOCK Act's 45-day notification window, as a number you can filter and sort on instead of eyeballing two dates
  • Links amendments back to the filing they amend, so a superseded trade doesn't get double-counted
  • Filters by chamber, filing year (2008 onward), and filing type
  • Filing years back to 2008 — not just the trailing 12 months

Who Uses Congressional Financial Disclosure Data?

  • Funds and quant desks — track the STOCK Act "congress trading" signal: what members bought or sold, when, and how late they reported it
  • Accountability journalists and researchers — cross-reference outside positions, future-employment agreements, and gifts against a member's votes and committee assignments
  • Compliance and oppo-research teams — build a full financial picture of a filer, not just their trade history
  • Copy-trade and newsletter products — feed a structured trade feed instead of re-parsing PDFs by hand

How US Congress Financial Disclosure Scraper Works

  1. You choose a chamber (House, Senate, or both), a set of filing years, and — optionally — which filing types you want.
  2. The actor walks the House Clerk's public disclosure index and the Senate's electronic filing system for the years and chamber(s) you selected.
  3. Each filing is parsed into records: one row per stock transaction for a PTR, one row per disclosed item (asset, liability, position, gift, and so on) for an annual report.
  4. Records land in your dataset as clean, structured JSON — one row per transaction or disclosed item, joined back to the filer and the source filing.

Input

{
  "chambers": ["house"],
  "years": ["2024", "2025"],
  "filingTypes": ["ptr"],
  "maxItems": 500
}
Field Type Default Description
chambers array both house, senate, or both. Leave empty for both chambers.
years array all Filing years to include, 2008–2026. Leave empty for every year.
filingTypes array all ptr, annual, candidate, termination, extension, blind_trust, amendment. Leave empty for every type.
maxItems integer 15 Maximum number of records to return.

Resuming a large crawl

Every run emits a resumeCursor in its Output. If a large crawl stops before it finishes — because it hit maxItems, your spend cap (maxTotalChargeUsd), or was aborted — start a new run with the same input plus that resumeCursor to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

  • You are not re-charged for records the earlier run already delivered.
  • Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its resumeCursor is no longer valid.
  • resumeCursor is opaque — supply it unmodified.

US Congress Financial Disclosure Scraper Output Fields

Every record — whether a stock trade or a disclosed asset — shares the same filing-level fields, plus whichever transaction or schedule fields apply to that row.

{
  "filing_id": "house-20032062",
  "chamber": "house",
  "filing_type": "ptr",
  "filer_last_name": "Aderholt",
  "filer_first_name": "Robert B.",
  "filer_role": "Member",
  "state_district": "AL04",
  "filing_year": 2025,
  "filing_date": "2025-09-10",
  "document_url": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2025/20032062.pdf",
  "transaction_date": "2025-07-28",
  "notification_date": "2025-08-11",
  "owner": "self",
  "asset_name": "GSK plc American Depositary Shares",
  "ticker": "GSK",
  "asset_type": "ST",
  "transaction_type": "sale",
  "amount_low": 1001,
  "amount_high": 15000,
  "amount_band": "$1,001 - $15,000",
  "filing_delay_days": 14,
  "capital_gains_over_200": false,
  "parse_status": "parsed"
}
Field Type Description
filing_id string House DocID or Senate report UUID, prefixed by chamber.
chamber string house or senate.
filing_type string ptr, annual, candidate, termination, extension, blind_trust, or amendment.
filing_type_code string Raw source-system code the filing type was derived from.
filer_last_name / filer_first_name / filer_suffix string Filer's name as filed.
filer_role string e.g. Member, Candidate, Former Member.
state_district string State/district for House filers, state for Senate filers.
filing_year number Year the filing covers.
filing_date date Date the filing was submitted.
document_url string Link to the source filing.
amendment_of string filing_id of the original filing, when this record is an amendment.
transaction_date / notification_date date Trade date and the date it was reported.
owner string self, SP (spouse), DC (dependent child), or JT (joint).
asset_name / ticker / asset_type string The traded or disclosed asset.
transaction_type string purchase, sale, partial_sale, or exchange.
amount_low / amount_high / amount_band number/string The disclosed value band — Congress reports ranges, not exact figures.
filing_delay_days number Days between the trade and its disclosure — the STOCK Act's 45-day compliance signal.
capital_gains_over_200 boolean Whether the filer flagged capital gains over $200 on this trade.
schedule string Which annual-disclosure schedule this row came from (assets, earned income, liabilities, positions, agreements, gifts, travel), for annual-report records.
schedule_item_name / schedule_value_band / schedule_value_low / schedule_value_high string/number The disclosed item and its value band, for schedule rows that aren't assets, liabilities, or positions.
income_type / income_band string Type and band of disclosed income.
liability_creditor / liability_type string For disclosed liabilities.
position_organization / position_title string For disclosed outside positions.
source_document_url string Same as document_url — included for downstream joins that key on it.
parse_status string parsed, or scanned_unparsed for the small share of older filings that are scanned images rather than text.

FAQ

How do I get congressional stock trading data?

Run US Congress Financial Disclosure Scraper with chambers: ["house", "senate"] and filingTypes: ["ptr"]. Every trade comes back as its own record — ticker, direction, date, amount band, and how many days late it was reported.

Does this cover the Senate, or just the House?

Both. Set chambers to ["house"], ["senate"], or leave it empty for both. Most tools on the market only cover the House, because the Senate side needs a separate filing system entirely.

Can I get the full annual disclosure, not just stock trades?

Yes. Set filingTypes to include annual (or leave it empty) and you'll get Schedules A through I — assets, earned income, liabilities, outside positions, future-employment agreements, gifts, and travel — alongside the trades.

How far back does the data go?

House filings go back to 2008. Set years to whichever range you need, or leave it empty for the full range.

What does filing_delay_days actually measure?

The gap between a trade date and its notification date. The STOCK Act requires disclosure within 45 days — a negative or unusually large value in this field is worth a second look, and occasionally reflects an error in the filer's own paperwork rather than ours.


Need More Features?

Need a different filter, a specific filer, or a related dataset? File an issue or get in touch.

Why Use US Congress Financial Disclosure Scraper?

  • Both chambers, one schema — most alternatives are House-only
  • The full annual disclosure, not just trades — Schedules A through I, the part of the filing everyone else skips, structured the same way as the PTR data
  • A real compliance signalfiling_delay_days and linked amendments, computed once instead of recomputed by every buyer