Edgar
A Ruby library for accessing SEC EDGAR filings. Port of the Python edgartools library.
Installation
gem "ruby-edgar", git: "https://github.com/tian-im/edgar"
Or build locally:
gem build ruby-edgar.gemspec
gem install ruby-edgar-0.1.0.gem
Usage
Company Lookup
require "edgar"
# By ticker
aapl = Edgar.Company("AAPL")
aapl.cik # => 320193
# By CIK
company = Edgar::Company.new(cik: 320193)
Entity Data
data = aapl.data
data.name # => "Apple Inc."
data.tickers # => ["AAPL"]
data.exchanges # => ["Nasdaq"]
data.sic # => 3571
data.category # => "Large accelerated filer"
data.business_address # => Address
Financial Facts
facts = aapl.facts
facts.concept_values("Revenues", limit: 1)
facts.concept_values("NetIncomeLoss", limit: 1)
facts.list_concepts(search: "Revenue", limit: 10)
Search Filings by Quarter
filings = Edgar::Filings.from_quarter(2024, 4)
aapl_filings = filings.filter(cik: 320193)
aapl_filings.latest(5).each { |f| puts "#{f.form} #{f.filing_date}" }
Access a Filing
filing = aapl_filings.first
filing.form # => "10-K"
filing.filing_date # => Date
filing.html # => Primary HTML document
filing.text # => Full submission text
filing.header.period_of_report # => "20240928"
filing.header.filer_company # => "Apple Inc."
Attachments
filing..each do |a|
puts "#{a.document} (#{a.document_type})"
end
filing.exhibits # Exhibit attachments
filing.datafiles # XML data files
Data Objects
obj = Edgar::DataObjects.for(filing)
# Returns TenK, TenQ, Form4, etc. based on form type
obj.form_type
obj.company_name
XBRL
xbrl = filing.xbrl
xbrl.facts # Array of fact hashes
xbrl.context_refs # Reporting contexts
xbrl.financial_concepts # US-GAAP concepts
Configuration
Set the EDGAR_IDENTITY environment variable:
export EDGAR_IDENTITY="Your Name your.email@example.com"
Development
bundle install
ruby -e 'require "bundler/setup"; require "edgar"'
License
MIT