You can use [datamule][1].
```
pip install datamule
```
Using the indices approach.
```
from datamule import Downloader
downloader = Downloader()
downloader.download(form='8-K')
```
You can also use the API, but there are a lot of 8-Ks so it's better to use the indices approach. The API has a limit of 10,000 results per query.
```
downloader.download_using_api(form='8-K',limit=10000)
```
Indices can be created or [downloaded][2].
```
from datamule import Indexer
indexer.run()
```
[1]: https://github.com/john-friedman/datamule-python
[2]: https://app.mediafire.com/9szwq6k80t4de
You can use [datamule][1].
```
pip install datamule
```
Using the indices approach.
```
from datamule import Downloader
downloader = Downloader()
downloader.download(form='10-K')
```
Using the API approach. (Limit is 10,000 rows per request, and there are about 7,000 10-Ks per year)
```
for year in range(2000, 2023 + 1):
start_date = f"{year}-01-01"
end_date = f"{year}-12-31"
print(f"Downloading 10-K filings for year {year}")
downloader.download_using_api(
output_dir=f'filings_{year}',
form='10-K',
date_range=[start_date, end_date],
limit=10000
)
```
Indices can be created or [downloaded][2].
```
from datamule import Indexer
indexer.run()
```
[1]: https://github.com/john-friedman/datamule-python
[2]: https://app.mediafire.com/9szwq6k80t4de