AnnualReports.com Glossy Annual Report PDF Scraper
Pricing
from $8.00 / 1,000 record scrapeds
AnnualReports.com Glossy Annual Report PDF Scraper
Scrape glossy annual report PDFs from AnnualReports.com, a free aggregator covering NYSE, NASDAQ, AMEX, OTC, TSX, LSE, AIM, and ASX issuers, including internationally headquartered firms. Extracts CEO/CFO/chairman names, financial highlights, and employee counts for equity research and IR/comp work.
Pricing
from $8.00 / 1,000 record scrapeds
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape and parse glossy, designer-laid-out annual report PDFs from AnnualReports.com — a free aggregator covering NYSE, NASDAQ, AMEX, OTC, TSX, TSX-V, ASX, AIM, and LSE issuers, including internationally headquartered companies. Unlike SEC EDGAR (US-only, plain-text 10-Ks), AnnualReports.com hosts the marketing-piece annual report public companies send to shareholders — CEO letters, financial-highlights infographics, segment breakdowns, and (when disclosed) ESG detail.
What it does
The actor discovers companies via one of four modes, visits each company's profile page for identity and header data (ticker, exchange, sector, industry, headquarters, employee count), then downloads and parses each qualifying report PDF to extract structured fields: CEO/CFO/chairman names (from the letter-to-shareholders signature), financial highlights (revenue, net income, diluted EPS, dividend per share), reported business segments, fiscal year end, and page count.
PDF text extraction uses pdf-parse for born-digital PDFs (the vast majority of reports on this source), with OCR fallback for the rare scanned/legacy document.
Use cases
- Equity research — CEO/CFO changes, financial highlights, and segment mix across a ticker watchlist
- IR / comp benchmarking — pull headquarters, employee count, and financial highlights for peer-set analysis
- Global coverage for non-SEC issuers — companies headquartered outside the US (e.g. Ireland, UK, Australia) that don't file 10-Ks
- Finance LLM training data — designer-laid-out, magazine-style annual reports as a distinct document shape from plain-text filings
Input
| Field | Type | Description | Default |
|---|---|---|---|
mode | string | Discovery mode: by_ticker, by_sector, by_country, recent | by_ticker |
tickers | array | Stock ticker symbols to look up (mode=by_ticker) | ["AAPL", "MSFT", "BRK.A"] |
sectors | array | Sectors to crawl (mode=by_sector). One of: Basic Materials, Conglomerates, Consumer Goods, Energy, Financial, Healthcare, Industrial Goods, Non Profits, Real Estate, Services, Technology, Utilities | ["Technology"] |
countries | array | Headquarters countries to filter for (mode=by_country), matched against each company's parsed HQ location | ["United States"] |
yearFrom | integer | Earliest report year to include (inclusive) | 2022 |
yearTo | integer | Latest report year to include (inclusive) | 2025 |
includeFullText | boolean | Include the extracted letter-to-shareholders text (a few KB) in each record | false |
maxItems | integer | Maximum number of report records to return | 15 |
by_country routes through the site's exchange filters when the country maps to one (United States, Canada, United Kingdom, Australia); other countries fall back to a maxItems-bounded scan since the source has no direct country filter.
Output
Each record represents one company's one report year:
| Field | Description |
|---|---|
ticker | Stock ticker symbol |
company_name | Issuer legal/trading name |
exchange | Primary listing exchange |
sector | Business sector |
industry | Business industry (finer-grained than sector) |
country | Headquarters country |
report_year | Fiscal/report year of this annual report |
report_fiscal_year_end | Fiscal year end date as stated in the report (e.g. "December 31"), when found |
pdf_url | Direct URL to the annual report PDF |
pdf_page_count | Page count of the report PDF |
cover_image_url | Report cover thumbnail (most recent report only) or company logo as fallback |
report_type | Always "annual" for this source |
ceo_name | CEO name, best-effort extracted from the letter-to-shareholders signature |
cfo_name | CFO name, best-effort extracted from the letter-to-shareholders signature |
chairman_name | Board chairman name, best-effort extracted (often the same person as CEO) |
headquarters_address | Best-effort {city, region, country} — the source does not publish full street addresses |
financial_highlights | Best-effort {revenue, net_income, eps_diluted, dividend_per_share, unit} parsed from the report's income statement |
segments | Best-effort list of reported business segment names, when disclosed in a simple list form |
employee_count | Employee count band from the company profile (e.g. 10000 for "10,000+ Employees") |
full_letter_to_shareholders | Letter-to-shareholders excerpt (only populated when includeFullText: true) |
Example
{"mode": "by_ticker","tickers": ["ETN", "WCN", "HRL"],"yearFrom": 2023,"yearTo": 2025,"maxItems": 20}
Returns up to 20 report records across Eaton, Waste Connections, and Hormel Foods for report years 2023–2025.
Notes
- Designer-laid-out, magazine-style reports have inconsistent text layout — financial-highlights infographics and multi-column pages don't always extract in reading order.
ceo_name/cfo_name/chairman_name,financial_highlights, andsegmentsare best-effort: populated when the source PDF exposes the underlying text in a recognisable shape, left empty otherwise. Measured fill rates on a 10-report sample across 4 companies:ceo_name8/10,cfo_name1/10 (most letters are CEO/Chairman-signed only, not CFO),segments2/10 (most reports disclose segments in a financial-statement table rather than a simple list),full_letter_to_shareholders5/10 whenincludeFullText: true(some report formats have no distinct letter section in the extracted text). - Ticker symbols are not globally unique across exchanges (e.g.
WCNmatches both a NYSE waste-management company and an unrelated ASX mining company) —by_tickermode keeps only the profile whose own displayed ticker exactly matches what you requested. - Only the annual report PDF is in scope. Standalone sustainability/ESG reports and 10-K HTML filings, when the company publishes them separately from the annual report, are not included.