Almost everything our reports are built on is free. That is worth saying plainly at the start. The SEC publishes every filing it receives, the House Clerk publishes every financial disclosure a member files, and neither charges a cent. If you have a laptop and patience, you can rebuild most of what we sell.
So this article is not a pitch for paying us. It is a map. It shows where the free data lives, how to pull it without getting blocked, and where the free part ends. The honest answer is that the data is free and the cleaning is not. This is not investment advice.
The SEC side: EDGAR
EDGAR is the SEC's filing system. Every public company, insider, fund manager and private issuer that files with the SEC ends up in it. The SEC publishes a developer page at sec.gov/developer that lists the structured endpoints, and a separate page on accessing EDGAR data that explains the access rules. Read both before writing any code. The rules are short and they are enforced.
Here is what you get for free, grouped by how much work each piece takes.
Full index files
The simplest entry point is the archive of index files. Every quarter has a full index, and every business day has a daily index. Each one lists every filing with the company name, form type, CIK, filing date and the path to the document. You can download a quarter in one request and parse it with a few lines of code.
What you do not get is content. The index tells you that a Form 4 was filed. It does not tell you what was bought or sold. For that you fetch the filing itself.
Filing documents
Each filing has a folder in the EDGAR archive. Inside you find the primary document, the exhibits, and for many form types a structured XML version. Form 4 insider reports, Form D private offering notices and the 13F holdings table all come as XML. That matters a lot. XML means you can parse the fields directly instead of scraping text out of HTML.
8-K current reports are the exception. They are HTML or plain text, and the structure varies by filer. Finding the item number is easy. Pulling a clean summary of what happened is where scraping turns into reading.
The structured APIs
The SEC also runs a set of JSON endpoints on data.sec.gov. The submissions endpoint gives you a filer's full filing history in one call. The company facts endpoint gives you every XBRL financial value that filer has ever reported. The frames endpoint gives you one financial concept across all filers for one period. These are the fastest way to answer questions like "which filings has this company made since January" or "what did this company report as revenue last quarter."
Two things to know. First, these endpoints cover company filers well, and individual insiders less well. Second, they update on a schedule rather than instantly, so a filing that landed ten minutes ago may not show up yet.
Full text search
EDGAR full text search lets you search the body of filings, not just the metadata, going back to 2001. It is the tool to use when you want every 8-K that mentions a specific phrase, or every Form D that names a particular industry. It has a web interface and an underlying JSON endpoint, and both are free.
RSS feeds
For near real-time monitoring, EDGAR publishes RSS feeds of recent filings, filterable by form type. This is how you watch for new 8-Ks or Form 4s without polling the index every minute.
The access rules that bite people
The SEC asks three things of automated clients. Declare who you are in a User-Agent header with a contact address. Stay under the published request rate, which is ten requests per second. Do not hammer the site during peak filing hours if you can avoid it. Clients that ignore the first two get blocked, and the block is automatic and silent. Your script just starts getting error pages.
This is the first place where free stops meaning effortless. Ten requests per second sounds generous until you need to fetch a hundred thousand Form 4 filings to build a history.
The House side: disclosures-clerk.house.gov
Members of the House file their financial disclosures with the Clerk of the House. The Clerk publishes them at disclosures-clerk.house.gov. For each year there is a downloadable index in text and XML form, plus a PDF of every report. The reports that matter for stock trades are the Periodic Transaction Reports, which members must file within the window set by the STOCK Act. We cover that deadline in the 45-day rule and why it matters, so this piece will not repeat it.
The index is clean. The PDFs are not. Some are generated from the electronic filing system and have selectable text in a predictable layout. Others are scanned paper forms, sometimes handwritten. The same member can file both kinds in the same year. Any pipeline that reads House trades has to handle both, and the scanned ones need OCR and a human check.
There are also structural gaps that no amount of parsing fixes. The form asks for an asset description, not a ticker. Members write "Apple Inc" or "AAPL" or "Apple common stock" as they please. Amounts are reported as ranges, not exact figures. Dates are the trade date and the notification date, and the gap between them is itself a useful signal. If you want to know how the whole chain works from the trade to the public PDF, read how congressional trading disclosures work.
The Senate side
Senators file with the Secretary of the Senate, and the search tool lives at efdsearch.senate.gov. It is also free. It also has a wrinkle. Before you can search, you must click through an agreement page that forbids automated access. Reports are then shown either as web tables, which are parseable, or as scanned PDFs, which are not. Many community projects have built Senate datasets anyway, and you should read the agreement yourself and decide how you feel about it.
Congress.gov and the members list
For context data, congress.gov is the official source for bills, committee assignments and member records, and it has a free API that needs an API key. The open source congress-legislators project on GitHub maintains a maintained list of current and past members with their IDs across systems. You need something like it to join a disclosure, which names a person, to a committee, which is what makes a trade interesting.
13F: the free data and its blind spots
Form 13F holdings reports are in EDGAR like everything else, with the holdings table as XML since 2013. The SEC also publishes the official list of 13(f) securities each quarter, which you need to interpret the CUSIPs in the filings. Our piece on 13F deadlines and the 45-day lag covers the timing, so here is only the data problem.
A 13F shows long positions in listed securities as of quarter end. It does not show short positions, it does not show most derivatives, and it does not show anything that happened between quarter ends. A manager can be fully hedged and the 13F will look like a bullish portfolio. That is a limitation of the form, not of any dataset built on it, and no paid product can fix it.
The other practical problem is identity. Managers file under names that change, merge and split. Mapping a filer to a stable entity over ten years is manual work. CUSIPs also change after corporate actions. Both are solvable, and both are the kind of thing you solve once and then maintain forever.
Form D: free and nearly clean
Form D is the quiet success story. It has been filed electronically as XML since 2009, the schema is stable, and the fields are well defined. Issuer name, industry, offering amount, amount sold, date of first sale, related persons. If you want to learn to read one, see how to read a Form D filing. The hard parts are deduplicating amendments against original filings and recognising the same issuer across multiple offerings. That is tedious rather than difficult.
Free alternatives worth knowing
You do not have to start from raw filings. Several sites surface insider trades and congressional trades for free, with search and basic charts. Quiver Quantitative and Capitol Trades both cover congressional trades. OpenSecrets covers money in politics more broadly. The open source House Stock Watcher and Senate Stock Watcher projects publish parsed trade data on GitHub. Each has its own parsing choices and its own update cadence, and the right move is to spot check any of them against the original PDF before relying on it.
Where the work starts
Here is the honest list of what free does not give you.
- A ticker for every House trade. Someone has to resolve "Apple Inc" to a symbol, and the edge cases are endless.
- Clean text from scanned PDFs. OCR gets most of it. A person has to catch the rest.
- A stable identity for a fund manager or an issuer across years of name changes.
- Joins. Trade to committee, filer to sector, filing to the price on the filing date. Each join is a small project.
- Deduplication. Amended filings, duplicate submissions, corrections filed months later.
- Scoring. Deciding which trades are unusual means defining normal first, and that is a judgment call you have to document and defend.
None of this is secret. It is maintenance. The data is published every day and someone has to read it every day.
If you would rather look at the output than build the pipeline, the Congress Stock Trades report is the cleaned, ticker-resolved, committee-joined version of exactly the House and Senate filings described above, with every row linked back to the original disclosure so you can check our work.
Want the signal instead of the raw filings? Get a free report preview. Prefer the tool to the write-up? Browse all data feeds or connect the free MCP server.