ANALYSIS TOOL BOX

Data Collection

GetCompanyFilings

Search and retrieve company filings from the SEC EDGAR database.

data-collectionscrapingapiingestion

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.

Teaching Note

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

ParameterTypeDefaultDescription
search_keywordsrequiredstrKeywords to search for within filing documents. Use empty string for no keyword filter. Supports boolean operators and phrase searching.
start_daterequiredstrStart date for the search period in 'YYYY-MM-DD' format. Only filings submitted on or after this date will be included.
end_daterequiredstrEnd date for the search period in 'YYYY-MM-DD' format. Only filings submitted on or before this date will be included.
filing_typestr'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_cikstr''Central Index Key (CIK) number to filter results to a specific company. Use empty string for no company filter.
filter_by_locationstr''Type of location filter to apply. Must be either 'Incorporated in' or 'Principal executive offices in'. Use empty string for no location filter.
locationstr''Specific location (state or country) to filter by when using filter_by_location. Use empty string for no location filter.
results_csv_filepathNoneFile path where search results should be saved as CSV. If None, a timestamped filename will be automatically generated.
results_log_filepathNoneFile 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

python
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'
)