Introduction
Due diligence and financial research often hinge on "what has this company actually
disclosed, and when?" — a question buried across thousands of SEC filings.
GetCompanyFilings searches the EDGAR database programmatically by keyword, filing
type, date range, and company identifiers, returning results as a structured DataFrame
instead of a page of search links to click through manually. Reach for it for
investment research, compliance monitoring, or competitive analysis where you need to
find and track specific disclosures — mergers, risk factors, executive changes — across
one company or the whole market.
EDGAR filings are essential for:
- Financial analysis and investment research
- Due diligence and corporate intelligence
- Regulatory compliance monitoring
- Competitive analysis and market research
- Risk assessment and fraud detection
- Academic research on corporate behavior
- Tracking mergers, acquisitions, and corporate actions
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
search_keywordsrequired | str | — | Keywords to search for within filing documents. Use empty string for no keyword filter. Supports boolean operators and phrase searching. |
start_daterequired | str | — | Start date for the search period in 'YYYY-MM-DD' format. Only filings submitted on or after this date will be included. |
end_daterequired | str | — | End date for the search period in 'YYYY-MM-DD' format. Only filings submitted on or before this date will be included. |
filing_type | str | 'all' | Type of SEC filing to search for (e.g., '10-K', '10-Q', '8-K', 'DEF 14A'). Use 'all' to search across all filing types. |
company_cik | str | '' | Central Index Key (CIK) number to filter results to a specific company. Use empty string for no company filter. |
filter_by_location | str | '' | Type of location filter to apply. Must be either 'Incorporated in' or 'Principal executive offices in'. Use empty string for no location filter. |
location | str | '' | Specific location (state or country) to filter by when using filter_by_location. Use empty string for no location filter. |
results_csv_filepath | | None | File path where search results should be saved as CSV. If None, a timestamped filename will be automatically generated. |
results_log_filepath | | None | File path where search logs should be saved. If None, a timestamped log file will be automatically generated. |
Returns
A pd.DataFrame containing search results with columns for company name, CIK, filing
type, filing date, and document links. Returns an empty DataFrame if no results are found.
Example
from analysistoolbox.data_collection import GetCompanyFilings
# Search for all 10-K filings mentioning "artificial intelligence" in 2023
filings = GetCompanyFilings(
search_keywords='artificial intelligence',
start_date='2023-01-01',
end_date='2023-12-31',
filing_type='10-K'
)