Download SEC filings from the EDGAR database using Python
Project description
sec-edgar-downloader is a Python package for downloading company filings from the SEC EDGAR database. Searches can be conducted either by stock ticker or Central Index Key (CIK). You can use the SEC CIK lookup tool if you cannot find an appropriate ticker.
Quick Start
Installation
Install and update this package using pip:
$ pip install -U sec-edgar-downloader
Basic Usage
from sec_edgar_downloader import Downloader
# Initialize a downloader instance. Download filings to the current
# working directory. Must declare company name and email address
# to form a user-agent string that complies with the SEC Edgar's
# programmatic downloading fair access policy.
# More info: https://www.sec.gov/os/webmaster-faq#code-support
# Company name and email are used to form a user-agent of the form:
# User-Agent: <Company Name> <Email Address>
dl = Downloader("MyCompanyName", "my.email@domain.com")
# Get all 8-K filings for Apple (ticker: AAPL)
dl.get("8-K", "AAPL")
# Get all 8-K filings for Apple, including filing amends (8-K/A)
dl.get("8-K", "AAPL", include_amends=True)
# Get all 8-K filings for Apple after January 1, 2017 and before March 25, 2017
# Note: after and before strings must be in the form "YYYY-MM-DD"
dl.get("8-K", "AAPL", after="2017-01-01", before="2017-03-25")
# Get the five most recent 8-K filings for Apple
dl.get("8-K", "AAPL", limit=5)
# Get all 10-K filings for Microsoft
dl.get("10-K", "MSFT")
# Get the latest 10-K filing for Microsoft
dl.get("10-K", "MSFT", limit=1)
# Get all 10-Q filings for Visa
dl.get("10-Q", "V")
# Get all 13F-NT filings for the Vanguard Group
dl.get("13F-NT", "0000102909")
# Get all 13F-HR filings for the Vanguard Group
dl.get("13F-HR", "0000102909")
# Get all SC 13G filings for Apple
dl.get("SC 13G", "AAPL")
# Get all SD filings for Apple
dl.get("SD", "AAPL")
Advanced Usage
from sec_edgar_downloader import Downloader
# Download filings to the current working directory
dl = Downloader("MyCompanyName", "my.email@domain.com", "/path/to/save/location")
# Get all 10-K filings for Microsoft without the filing details
dl.get("10-K", "MSFT", download_details=False)
# Get the latest supported filings, if available, for Apple
for filing_type in dl.supported_filings:
dl.get(filing_type, "AAPL", limit=1)
# Get the latest supported filings, if available, for a
# specified list of tickers and CIKs
equity_ids = ["AAPL", "MSFT", "0000102909", "V", "FB"]
for equity_id in equity_ids:
for filing_type in dl.supported_filings:
dl.get(filing_type, equity_id, limit=1)
Supported SEC Filing Types
This package supports downloading all SEC filing types (6-K, 8-K, 10-K, DEF 14A, S-1, and many others). You can learn more about the different SEC filing types here). Below is an exhaustive list of all filings types that can be downloaded by this package:
1
1-A
1-A POS
1-A-W
1-E
1-E AD
1-K
1-SA
1-U
1-Z
1-Z-W
10-12B
10-12G
10-D
10-K
10-KT
10-Q
10-QT
11-K
11-KT
13F-HR
13F-NT
13FCONP
144
15-12B
15-12G
15-15D
15F-12B
15F-12G
15F-15D
18-12B
18-K
19B-4E
2-A
2-AF
2-E
20-F
20FR12B
20FR12G
24F-2NT
25
25-NSE
253G1
253G2
253G3
253G4
3
305B2
34-12H
4
40-17F1
40-17F2
40-17G
40-17GCS
40-202A
40-203A
40-206A
40-24B2
40-33
40-6B
40-8B25
40-8F-2
40-APP
40-F
40-OIP
40FR12B
40FR12G
424A
424B1
424B2
424B3
424B4
424B5
424B7
424B8
424H
425
485APOS
485BPOS
485BXT
486APOS
486BPOS
486BXT
487
497
497AD
497H2
497J
497K
5
6-K
6B NTC
6B ORDR
8-A12B
8-A12G
8-K
8-K12B
8-K12G3
8-K15D5
8-M
8F-2 NTC
8F-2 ORDR
9-M
ABS-15G
ABS-EE
ADN-MTL
ADV-E
ADV-H-C
ADV-H-T
ADV-NR
ANNLRPT
APP NTC
APP ORDR
APP WD
APP WDG
ARS
ATS-N
ATS-N-C
ATS-N/UA
AW
AW WD
C
C-AR
C-AR-W
C-TR
C-TR-W
C-U
C-U-W
C-W
CB
CERT
CERTARCA
CERTBATS
CERTCBO
CERTNAS
CERTNYS
CERTPAC
CFPORTAL
CFPORTAL-W
CORRESP
CT ORDER
D
DEF 14A
DEF 14C
DEFA14A
DEFA14C
DEFC14A
DEFC14C
DEFM14A
DEFM14C
DEFN14A
DEFR14A
DEFR14C
DEL AM
DFAN14A
DFRN14A
DOS
DOSLTR
DRS
DRSLTR
DSTRBRPT
EFFECT
F-1
F-10
F-10EF
F-10POS
F-1MEF
F-3
F-3ASR
F-3D
F-3DPOS
F-3MEF
F-4
F-4 POS
F-4MEF
F-6
F-6 POS
F-6EF
F-7
F-7 POS
F-8
F-8 POS
F-80
F-80POS
F-9
F-9 POS
F-N
F-X
FOCUSN
FWP
G-405
G-405N
G-FIN
G-FINW
IRANNOTICE
MA
MA-A
MA-I
MA-W
MSD
MSDCO
MSDW
N-1
N-14
N-14 8C
N-14MEF
N-18F1
N-1A
N-2
N-23C-2
N-23C3A
N-23C3B
N-23C3C
N-2MEF
N-30B-2
N-30D
N-4
N-5
N-54A
N-54C
N-6
N-6F
N-8A
N-8B-2
N-8F
N-8F NTC
N-8F ORDR
N-CEN
N-CR
N-CSR
N-CSRS
N-MFP
N-MFP1
N-MFP2
N-PX
N-Q
NO ACT
NPORT-EX
NPORT-NP
NPORT-P
NRSRO-CE
NRSRO-UPD
NSAR-A
NSAR-AT
NSAR-B
NSAR-BT
NSAR-U
NT 10-D
NT 10-K
NT 10-Q
NT 11-K
NT 20-F
NT N-CEN
NT N-MFP
NT N-MFP1
NT N-MFP2
NT NPORT-EX
NT NPORT-P
NT-NCEN
NT-NCSR
NT-NSAR
NTFNCEN
NTFNCSR
NTFNSAR
NTN 10D
NTN 10K
NTN 10Q
NTN 20F
OIP NTC
OIP ORDR
POS 8C
POS AM
POS AMI
POS EX
POS462B
POS462C
POSASR
PRE 14A
PRE 14C
PREC14A
PREC14C
PREM14A
PREM14C
PREN14A
PRER14A
PRER14C
PRRN14A
PX14A6G
PX14A6N
QRTLYRPT
QUALIF
REG-NR
REVOKED
RW
RW WD
S-1
S-11
S-11MEF
S-1MEF
S-20
S-3
S-3ASR
S-3D
S-3DPOS
S-3MEF
S-4
S-4 POS
S-4EF
S-4MEF
S-6
S-8
S-8 POS
S-B
S-BMEF
SC 13D
SC 13E1
SC 13E3
SC 13G
SC 14D9
SC 14F1
SC 14N
SC TO-C
SC TO-I
SC TO-T
SC13E4F
SC14D1F
SC14D9C
SC14D9F
SD
SDR
SE
SEC ACTION
SEC STAFF ACTION
SEC STAFF LETTER
SF-1
SF-3
SL
SP 15D2
STOP ORDER
SUPPL
T-3
TA-1
TA-2
TA-W
TACO
TH
TTW
UNDER
UPLOAD
WDL-REQ
X-17A-5
Contributing
If you encounter a bug or would like to see a new company filing or feature added to sec-edgar-downloader, please file an issue or submit a pull request.
Development
In order to validate local code changes before creating a pull request, you can run the following commands:
# Run unit test suite on all locally-installed Python versions
$ tox
# Run unit test suite on a single Python version (e.g. Python 3.11)
$ tox -e py311
# Run end-to-end integration tests
$ tox -e integration
# Lint
$ tox -e lint
# Validate documentation
$ tox -e docs
Release
In order to create a new release, complete the following steps:
Outline changes made in the new release in CHANGELOG.md.
Bump the version in _version.py and push change to master branch.
Ensure all unit and integration tests pass locally and in the GitHub Actions testing workflow.
Create and push tags for the latest version specified in _version.py by running make tag.
Once the tag is pushed, a GitHub Actions release workflow will be kicked off that automatically creates the package artifacts and uploads them to PyPI.
Create a new version based off of the published tag on the GitHub repository’s release page.
Documentation
For full documentation, please visit sec-edgar-downloader.readthedocs.io.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sec_edgar_downloader-5.0.2.tar.gz
.
File metadata
- Download URL: sec_edgar_downloader-5.0.2.tar.gz
- Upload date:
- Size: 33.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65135b673c8ff1c4f2c400ae6828b8720ba5af3bc7c58729000ef741e3403e56 |
|
MD5 | 4b9963e2f7faa58a3840294e2ef6cfbd |
|
BLAKE2b-256 | 1a4400ba8183a52ea0ff7088006594b5a7980f7379b22def6f30671dc7ab5878 |
File details
Details for the file sec_edgar_downloader-5.0.2-py3-none-any.whl
.
File metadata
- Download URL: sec_edgar_downloader-5.0.2-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cab5ed1de1fce59722b609567f4c1790b2bf96308f7e6c74671e83b27dde7316 |
|
MD5 | 1344f9f293f882ab22c77f3b1d97b7fa |
|
BLAKE2b-256 | 8cf0d6e043faf5a463c8d6e41b52c9b016c69bb1290bf2c1fee126882133d44f |