https://github.com/elijas/sec-api-io
Unofficial wrapper for the sec-api.io API. Search & filter SEC filings.
https://github.com/elijas/sec-api-io
10-k 10-q 8-k cik downloader edgar edgar-api edgar-crawler edgar-database edgar-scraper filings gov gov-edgar-filings insider-trading python sec sec-api
Last synced: about 1 month ago
JSON representation
Unofficial wrapper for the sec-api.io API. Search & filter SEC filings.
- Host: GitHub
- URL: https://github.com/elijas/sec-api-io
- Owner: Elijas
- License: mit
- Created: 2023-10-10T21:32:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-22T08:24:09.000Z (over 1 year ago)
- Last Synced: 2024-04-24T18:23:48.060Z (about 1 year ago)
- Topics: 10-k, 10-q, 8-k, cik, downloader, edgar, edgar-api, edgar-crawler, edgar-database, edgar-scraper, filings, gov, gov-edgar-filings, insider-trading, python, sec, sec-api
- Language: HTML
- Homepage: https://elijas.github.io/sec-api-io/
- Size: 937 KB
- Stars: 3
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sec-api-io
Unofficial wrapper for the [sec-api.io API](https://sec-api.io). Built
with [nbdev](https://nbdev.fast.ai/).## Install and Setup
Run in terminal:
``` sh
pip install sec_api_io
```## How to use
### (Optional) Set API key with `.env` file
It’s highly recommended to set your API key in a `.env` file to avoid
setting it in the code.1. Make a copy of the `.env.template` file in the root directory of the
project.
2. Rename the copied file to `.env`.
3. Open the `.env` file and locate the `SECAPIO_API_KEY` variable.
4. Fill in the value for the `SECAPIO_API_KEY` variable.
- You can obtain a free key from [sec-api.io](https://sec-api.io/).
- Note: The first 100 requests are free.
5. Save the `.env` file next to your notebook or script.> **Important Note:** Depending on your geographical location, you might
> need to use a VPN set to a United States location to access
> [sec-api.io](https://sec-api.io/) API.Let’s load the API key from .env file into the environment variable
SECAPIO_API_KEY``` python
!pip install -q python-dotenv
`````` python
from dotenv import load_dotenvload_dotenv() # Load the API key from .env file into the environment variable SECAPIO_API_KEY
```True
``` python
import os
from dotenv import load_dotenvif 'SECAPIO_API_KEY' not in os.environ:
assert load_dotenv()
assert 'SECAPIO_API_KEY' in os.environ
`````` python
import os
from dotenv import load_dotenvif 'SECAPIO_API_KEY' not in os.environ:
assert load_dotenv()
assert 'SECAPIO_API_KEY' in os.environ
assert os.environ['SECAPIO_API_KEY'].strip()
```### Get latest 10-Q report by ticker
``` python
from sec_api_io.secapio_data_retriever import SecapioDataRetrieverretriever = SecapioDataRetriever()
# retriever = SecapioDataRetriever(api_key=...) # If you don't want to use .env filemetadata = retriever.retrieve_report_metadata('10-Q', latest_from_ticker='AAPL')
url = metadata["linkToFilingDetails"]assert url.startswith('https://www.sec.gov/Archives/edgar/data/')
url
```'https://www.sec.gov/Archives/edgar/data/320193/000032019323000077/aapl-20230701.htm'
### Download 10-Q HTML split into sections
``` python
html = retriever.get_report_html('10-Q', url)
assert html
`````` python
for line in html.splitlines():
print(line[:65] + '...')
```**Note** We highly recommend using virtual environments for Python
> development. If you’d like to use virtual environments, follow these
> steps instead: - Create a virtual environment
> `python3 -m venv .venv` - Activate the virtual environment
> `source .venv/bin/activate` - Install the project with the command
> `pip install -e ".[dev]"`