Releases: jadchaar/sec-edgar-downloader
Releases · jadchaar/sec-edgar-downloader
Version 5.0.3
New
- Added official support for Python 3.13.
- Added Dependabot config for automated dependency updates.
- Added
accession_numbers_to_skipparameter toget()to skip downloading of specific accession numbers.
Changed
- Locked Pyrate limiter to v3.6+ to ensure maximum compatibility and performance.
Version 5.0.2
New
- Added official support for Python 3.12.
Fixed
- Fixed a bug that prevented filing types ending in
A(e.g. DEF 14A, 2-A, N-54A) from downloading.
Version 5.0.1
Fixed
- Fixed download errors for CIKs containing trailing zeros.
Version 5.0.0
New
- Full package re-write to harness the SEC's new, official Edgar API.
- Added Formal rate-limiting integration using pyrate-limiter to reduce the chances of surpassing the SEC's 10 requests per second fair access policy.
- The underlying rate-limiter will apply a delay to all requests that surpass the 10 requests per second rate for a maximum delay of 60 seconds before raising an exception.
- Added support for declaring a company name and email to comply with the SEC's fair access guidelines for declaring a user-agent of the form:
Sample Company Name AdminContact@<sample company domain>.com.- More info on this policy can be found here
Changed
- Dropped support for Python 3.6 and 3.7 as they have reached end-of-life. This package now supports Python 3.8+.
Version 4.3.0
- Add official support for Python 3.10.
- Pass
Accept-Encoding: gzip, deflateandHost: www.sec.govheaders into all requests as recommended by the SEC fair access rules: https://www.sec.gov/os/accessing-edgar-data. This should lead to smaller request sizes as all requests are now gzipped. It should also help with 403 Forbidden errors since the package is now conforming with the entire suite of fair access rules.
Version 4.2.2
New
- CIKs are now automatically zero-padded to 10 digits to ensure that filings are accurately retrieved by the SEC Edgar system. For example, passing either
"0000789019"or"789019"(the CIK for MSFT) toget()will yield equivalent results:
>>> dl.get("10-K", "0000789019", amount=1)
1
>>> dl.get("10-K", "789019", amount=1)
1Fixed
- Updated the
User-Agentheader to comply with new SEC Edgar Fair Access requirements. This should resolve the 403 network errors some users are encountering when downloading a significant number of filings.
Changed
- A
ValueErroris now raised when a CIK of length >10 or a blank ticker/CIK is passed toget().
Version 4.2.1
Fixed
- Anchor links inside of filings are now resolved correctly. Fragments and external links should now function as intended.
- Renamed
requirements.txttorequirements-dev.txtin order to prevent confusion with the dependencies listed insetup.py.
Version 4.2.0
New
- The
httpxpackage has been replaced byrequeststo enable the use of an exponential backoff retry mechanism to help alleviate403 Forbiddenerrors some users are seeing. A request tosec.govwill be retried at most 10 times (with an exponential backoff applied to each request) before failing. - A random
User-Agentstring is now included in the headers of eachGETandPOSTrequest tosec.gov, rather than per session.
Version 4.1.0
New
- HTTP connections are now re-used when possible (using
httpx.Client()) to improve download performance.
Fixed
- Requests are now retried at most 5 times if a request fails. This should solve the
500 Server Errors that some users are experiencing when downloading a large number of filings.
Changed
- Replaced the internal
requestspackage withhttpx, a more modern and performant alternative.
Version 4.0.3
Fixed
- Fixed a
403 Client Errorthat could randomly occur when bulk downloading a large number of filings. This error was most likely caused by recent changes to SEC rate-limiting behavior. It has been fixed by including a random user-agent string, generated by the Faker package, in the request headers.