Releases: jadchaar/sec-edgar-downloader
Releases · jadchaar/sec-edgar-downloader
Version 4.0.1
Fixed
- Downloads will no longer halt prematurely if a filing document (full or detail) cannot be found (e.g. when the EDGAR Search API outputs incorrect download URLs). Now, the package will automatically catch such network errors, print a helpful warning message, and then proceed to download the remaining filings.
Version 4.0.0
This is a major breaking release. Please see the v4 migration guide for information on how to upgrade and adapt your existing codebase to the new package version.
Added
- The SEC Edgar Full-Text Search API is now used to fetch filing download URLs. This approach replaces the existing fragile scraping and ATOM RSS implementation used in existing versions of this package.
- Note: this API only allows for fetching filings after December 1, 2000.
- Added support for searching and downloading filings via a
query
kwarg:
dl = Downloader()
# Download all Apple proxy statements that contain the word "antitrust"
dl.get("DEF 14A", "AAPL", query="antitrust")
- Filing details, whose extensions vary based on filing type, are now downloaded in addition to the full submission
txt
file. See the migration guide for information on the revamped folder structure. - Added the ability to download all available SEC filings. Please see the README for a full list of all supported filings.
Path
objects can now be used to specify adownload_folder
when constructing aDownloader
object.- Added type annotations throughout the codebase.
Changed
- The current working directory is now used as the default download location. Custom paths can be specified when constructing
Downloader
objects. - All arguments passed to
dl.get()
other thanfiling
andticker_or_cik
must be used with a keyword:
dl = Downloader()
dl.get(
"10-K",
"AAPL",
# All other arguments must be used with a keyword
amount=1,
after="2019-01-01",
before="2021-01-01",
include_amends=True,
download_details=True,
query="sample query"
)
- The
after_date
,before_date
, andnum_filings_to_download
kwargs have been renamed toafter
,before
, andamount
, respectively.
Version 3.0.5
Added
- Added support for DEF 14A filings (proxy statements).
- Added
tox.ini
andMakefile
to distribution package.
Fixed
- Fixed a failing test in the distributed package due to missing sample filings test data.
Version 3.0.4
Added
- Added support for 20-F filings.
Version 3.0.3
Added
- Added support for form 4 filings.
Version 3.0.2
Added
- Added a 0.15s delay to download logic in order to prevent rate-limiting by SEC Edgar.
Version 3.0.1
Added
- Added support for S-1 filings.
Version 3.0.0
Added
- Added the ability to download more than 100 filings.
- Added the ability to specify an
after_date
argument to theget
method. Example usage:
from sec_edgar_downloader import Downloader
dl = Downloader()
# Get all 8-K filings for Apple after January 1, 2017 and before March 25, 2017
dl.get("8-K", "AAPL", after_date="20170101", before_date="20170325")
- Added a
supported_filings
property to theDownloader
class, which gets a list of all filings supported by thesec_edgar_downloader
package. Example usage:
from sec_edgar_downloader import Downloader
dl = Downloader()
dl.supported_filings
Changed
- Package has been completely re-written from the ground up.
- The
Downloader
class now has a singleget
entry point method. This change was made to improve and ease maintainability. Here is the new stub for theget
method:
class Downloader:
def get(
self,
filing_type,
ticker_or_cik,
num_filings_to_download=None,
after_date=None,
before_date=None,
include_amends=False
)
Example usage of the new method:
from sec_edgar_downloader import Downloader
dl = Downloader()
# Get all 8-K filings for Apple
dl.get("8-K", "AAPL")
Removed
- Replaced retrieval methods for each filing type with a single point of entry. The bulk method
get_all_available_filings
has also been removed, so any bulk actions need to be completed manually as follows:
# Get the latest supported filings, if available, for Apple
for filing_type in dl.supported_filings:
dl.get(filing_type, "AAPL", 1)
# Get the latest supported filings, if available, for a
# specified list of tickers and CIKs
symbols = ["AAPL", "MSFT", "0000102909", "V", "FB"]
for s in symbols:
for filing_type in dl.supported_filings:
dl.get(filing_type, s, 1)
Version 2.2.1
- Added support for form 10-KSB.
- Added docs and tests to PyPI distribution package.
- Locked the
requests
dependency tov2.22.0
or greater to ensure optimal performance and compatibility.
Version 2.2.0
sec-edgar-downloader
is now fully documented 🎉. You can view the latest documentation at sec-edgar-downloader.readthedocs.io.- Changed file encoding for filing downloads from
utf-8
toascii
. This switch was made because SEC filings should be submitted in ASCII format. - Locked the
lxml
dependency tov4.3.4
or greater to fix Python 3.8 install issues.