Releases: jadchaar/sec-edgar-downloader
Releases · jadchaar/sec-edgar-downloader
Version 5.0.2
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, deflate
andHost: www.sec.gov
headers 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)
1
Fixed
- Updated the
User-Agent
header 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
ValueError
is 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.txt
torequirements-dev.txt
in order to prevent confusion with the dependencies listed insetup.py
.
Version 4.2.0
New
- The
httpx
package has been replaced byrequests
to enable the use of an exponential backoff retry mechanism to help alleviate403 Forbidden
errors some users are seeing. A request tosec.gov
will be retried at most 10 times (with an exponential backoff applied to each request) before failing. - A random
User-Agent
string is now included in the headers of eachGET
andPOST
request 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 Error
s that some users are experiencing when downloading a large number of filings.
Changed
- Replaced the internal
requests
package withhttpx
, a more modern and performant alternative.
Version 4.0.3
Fixed
- Fixed a
403 Client Error
that 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.
Version 4.0.2
Fixed
- Fixed a
RecursionError
that could occur when downloading older filings with thedownload_details
flag set to true. Thanks to @neilbartlett for reporting and fixing this bug!