Different ways of getting SEC filings
Explore the different ways to get access to company filings using edgartools - the easiest way to navigate SEC filings
When you start working with Edgar one of the first things you do is get a list of filings. Actually, you either get a list of filings without thinking about any specific company OR you get filings for a specific company. Both workflows are fully supported by edgartools.
There's actually a 3rd workflow. Companies push filings to Edgar around the clock, but the filings are published on a set schedule - generally by 10:30 pm EST weekdays. If you want to see fillings as soon as they are in Edgar you want to use the get the latest filings workflow.
All three workflows are supported by different SEC-Edgar endpoints, and there are some key differences that will help you decide which to use for your specific business need. In this article, let's just look at each of these workflows.
Getting filings
The first call get_filings
works by reading the filing index files published on the SEC Edgar website. These filing index files are published on a fixed schedule so you will miss the filings that make it to the SEC after the cutoff. If you need access to the vast majority of SEC filings - including historical filings - without timeliness then this is the main API to use. You can access the index files directly here https://www.sec.gov/Archives/edgar/full-index/2024/QTR4/
The edgartools function call looks like this
from edgar import *
filings = get_filings()
filings

Small interesting caveat, I'm writing this as we speak on January 2nd 2025, and get_filings
returns no filings. This reminds me that get_filings()
by default returns the filings for a given year and quarter, and there are no filings as of yet in 2025. So the filings displayed in the image above are with get_filings(year=2024)
. This also reminds me that the bug that used to happen at the beginning of a quarter when there is no data is finally fixed! Nice!
Getting company filings
The company filings workflow is different. You first get the company by cik or ticker, and then you can access the company's filings using get_filings()
.
c = Company("AAPL")
c.get_filings()

This works under the hood by querying the company submissions API using the CIK. This means if you know the company CIK, then it is slightly faster to get the company directly using Company(cik)
rather than Company(ticker)
.
The company submissions API is listed on the SEC Edgar API page directly on Edgar e.g. example here are the company submissions for Tesla.
Get filings as soon as they arrive
In edgartools the function get_current_filings()
returns the first page of filing data and allows you to page through and select the next page of filings. There are also alias functions - get_latest_filings()
, current_filings()
that do the same thing. I have been exploring with how the functionality should work within edgartools so maybe this will change in the future.
current_filings()

On Edgar the data is hosted at the latest filings endpoint.
Conclusion
This article listed a few ways to get filings. You can of course just use edgartools which is the easiest way to navigate SEC filings.
About edgartools
edgartools is the most powerful way to navigate SEC filings in Python. It is also the easiest.
pip install edgartools
If you like it please leave a star on Github