SEC EDGAR Company Data Scraper avatar

SEC EDGAR Company Data Scraper

Pricing

Pay per usage

Go to Apify Store
SEC EDGAR Company Data Scraper

SEC EDGAR Company Data Scraper

Extract company data from SEC EDGAR — names, addresses, phone numbers, EIN, CIK, SIC codes, and filing details. Search by keyword, company name, ticker, state, filing type, or date range. Export as JSON, CSV, or Excel. No API key needed.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

ScrapySpider

ScrapySpider

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Extract structured company filing data from the U.S. government's SEC EDGAR database — no API key required, no sign-up needed. Search for any business keyword (e.g. construction, trucking, real estate) across all 57 US states and territories, filter by entity type (LLC, INC, CORP, and 50+ more), date range, and filing type. For every match, the Actor navigates to the official SEC filing index page and extracts verified contact information, addresses, CIK number, EIN, SIC code, accession number, and more — all pushed directly to an Apify Dataset ready for export as JSON, CSV, or Excel.

What does SEC EDGAR Company Data Scraper do?

SEC EDGAR (Electronic Data Gathering, Analysis, and Retrieval) is the U.S. Securities and Exchange Commission's official public portal for all company and individual filings submitted to the SEC. It is the single most authoritative source of verified business registration and corporate disclosure data in the United States — and it is completely free to access.

This Actor automates the EDGAR Full-Text Search interface. You provide one or more search keywords (company names, industry terms, tickers, or CIK numbers), optionally select specific states, date ranges, or filing types, and the Actor will:

  1. Construct and navigate to the correct EDGAR search URL for every keyword × state combination
  2. Paginate through all result pages (up to 10,000 results per search)
  3. Visit each individual filing's index page on sec.gov
  4. Extract 23 structured data fields per record — legal name, addresses, phone, EIN, CIK, SIC code, SEC accession number, filing items, and all document links
  5. Push every record to an Apify Dataset for instant download or API access

Runs on the Apify platform with full proxy support, scheduling, webhooks, Zapier/Make integrations, and monitoring — or locally with apify run.


Why use SEC EDGAR Company Data Scraper?

Lead Generation at Scale

Find every company in a target industry that filed with the SEC in the last 30 days, 1 year, or 5 years. Filter by business type (LLC only, or INC only) and state. The output gives you a verified business name, physical address, phone number, and EIN — ready to import into any CRM.

Market Research & Competitive Intelligence

Track filings across construction, trucking, real estate, HVAC, insurance, fintech, or any other sector. Identify new market entrants, monitor growth activity, and benchmark against industry peers using SEC's own verified data.

Due Diligence & Background Checks

Before doing business with a company, verify their SEC registration details — CIK number, state of incorporation, SIC code, fiscal year end, and full filing history — directly from a U.S. government source.

Compliance Monitoring

Set up a scheduled Actor run to monitor when new companies in your industry or jurisdiction file with the SEC. Use dateRange: "30d" to get only the freshest filings each time.

Data Enrichment

Enrich your existing contact database with verified EINs, SIC codes, states of incorporation, and SEC accession numbers — data that is often expensive or unavailable from commercial providers.


How to use SEC EDGAR Company Data Scraper

Option A — Quick Start (No-Code)

  1. Open the Input tab in Apify Console
  2. Enter one or more Company Names (e.g. construction, trucking, hvac) in the search list
  3. Select States to narrow the search — or leave empty to search all 57 US states and territories
  4. Choose a Date Range (default: Last 10 years)
  5. Optionally select Filing Types (e.g. 8-K, 10-K) or Business Types (e.g. LLC, INC)
  6. Click Save & Run
  7. When the run completes, go to the Output tab and download your data as JSON, CSV, or Excel

Option B — Advanced (Direct EDGAR URLs)

If you already have EDGAR search URLs, paste them directly into the Start URLs field. The Actor will scrape them as-is. If your URL doesn't contain a locationCode, it automatically expands across all selected states (or all 57 if none are selected).

Example Start URL:

https://www.sec.gov/edgar/search/#/dateRange=5y&category=custom&entityName=construction&forms=8-K

Option C — API / Programmatic

Use the Apify API to trigger runs programmatically:

curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyNames": ["construction", "trucking"],
"states": ["TX", "FL", "CA"],
"dateRange": "5y",
"filingTypes": ["8-K"]
}'

Option D — Local Development

# Install dependencies
npm install
# Edit your test input
# storage/key_value_stores/default/INPUT.json
# Run locally
apify run

Results appear in storage/datasets/default/ as individual JSON files.


Input

Configure the Actor from the Input tab in Apify Console, or edit INPUT.json for local runs. No fields are required — any combination of inputs is valid.

FieldTypeDefaultDescription
startUrlsURL list[]Direct EDGAR search URLs. If provided, takes priority over keyword/state URL building. URLs without locationCode are auto-expanded per state.
companyNamesstring listCompany name, ticker, CIK number, or keyword (e.g. construction, TSLA, 1234567)
keywordsstringFull-text keyword filter applied inside filings. Supports exact phrases with double quotes (e.g. "fiduciary product").
statesmulti-selectall 57US state/territory codes to search. Leave empty to run across all 57 states and territories.
dateRangeselect10yFiling date range: all, 10y, 5y, 1y, 30d, or custom
dateFromstringCustom range start date in YYYY-MM-DD format. Only used when dateRange is custom.
dateTostringCustom range end date in YYYY-MM-DD format. Only used when dateRange is custom.
filingTypesstring listFilter by specific SEC form types (e.g. 8-K, 10-K, S-1). Do not use together with Filing Category — only one can be active. If both are set, Filing Types takes priority.
filingCategoryselectallFilter by a broad EDGAR filing category. Do not use together with Filing Types — only one can be active. If both are set, Filing Types takes priority.
maxPagesPerSearchinteger0Max result pages per keyword × state search. Each page has ~10 results. 0 = unlimited.
businessTypesmulti-selectallFilter output records by entity type (LLC, INC, CORP, LLP, …). Empty = keep all types.
proxyConfigurationproxyApify ProxyProxy settings for avoiding SEC rate limits on large-scale runs.

Example Input (JSON)

{
"companyNames": ["construction", "trucking", "hvac"],
"states": ["TX", "FL", "CA", "NY"],
"businessTypes": ["LLC", "INC"],
"dateRange": "5y",
"filingTypes": ["8-K"],
"maxPagesPerSearch": 5,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Output

Each scraped record is pushed to the Apify Dataset. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel from the Storage tab or via the Apify API.

Example Output Record (JSON)

{
"searchUrl": "https://www.sec.gov/edgar/search/#/dateRange=5y&category=custom&locationCode=AL&entityName=construction&forms=8-K",
"filingDetailUrl": "https://www.sec.gov/Archives/edgar/data/1718227/000162828026021750/0001628280-26-021750-index.htm",
"searchKeyword": "construction",
"businessName": "Construction Partners, Inc.",
"businessType": "INC",
"secAccessionNo": "SEC Accession No. 0001628280-26-021750",
"cikNumber": "1718227",
"cikUrl": "https://www.sec.gov/cgi-bin/browse-edgar?CIK=0001718227&action=getcompany",
"role": "Filer",
"filingDate": "2026-03-27",
"filingType": "8-K",
"businessAddress": "290 HEALTHWEST DR., SUITE 2, DOTHAN AL 36303",
"mailingAddress": "290 HEALTHWEST DR., SUITE 2, DOTHAN AL 36303",
"ownerOrMemberName": "Construction Partners, Inc. (ROAD)",
"phoneNumber": "334.673.9763",
"state": "AL",
"stateOfIncorporation": "DE",
"sicCode": "1600 Heavy Construction Other Than Bldg Const - Contractors",
"ein": "260758017",
"fiscalYearEnd": "0930",
"filers": [{ "name": "Construction Partners, Inc.", "role": "Filer", "cikNumber": "1718227", "..." }],
"formGroupingData": [{ "Item 5.07": "Submission of Matters to a Vote of Security Holders" }],
"documentLinks": [
{ "text": "road-20260324.htm", "url": "https://www.sec.gov/ix?doc=/Archives/edgar/..." }
]
}

Data Fields

FieldFormatDescription
searchUrllinkThe EDGAR search URL that produced this result
filingDetailUrllinkDirect link to the SEC EDGAR filing index page
searchKeywordtextThe keyword or company name used to find this record
businessNametextLegal company name as registered with the SEC
businessTypetextDetected entity type extracted from the company name (LLC, INC, CORP, LLP, etc.)
secAccessionNotextSEC Accession Number — unique identifier for this specific filing submission
cikNumbertextSEC Central Index Key — the SEC's unique numeric identifier for the company
cikUrllinkLink to the company's full filing history on EDGAR
roletextThe company's role in this filing (Filer, Issuer, Reporting Owner, etc.)
filingDatedateDate the filing was submitted and accepted by the SEC
filingTypetextSEC form type (8-K, 10-K, S-1, 10-Q, DEF 14A, etc.)
businessAddresstextPrimary business street address as declared in the filing
mailingAddresstextMailing address (may differ from business address)
ownerOrMemberNametextOwner, officer, or member name listed on the filing
phoneNumbertextBusiness phone number listed on the filing
statetextUS state/territory code that was searched (e.g. AL, TX, CA)
stateOfIncorporationtextState or country where the company is legally incorporated
sicCodetextStandard Industrial Classification code with full description
eintextEmployer Identification Number (federal tax ID)
fiscalYearEndtextFiscal year end in MMDD format (e.g. 0930 = September 30, 1231 = December 31)
filersarrayAll filers listed on the filing — each with their name, role, CIK, addresses, EIN, SIC, and filing info
formGroupingDataarrayFiling sections and items declared in the form (e.g. Item 5.07, Item 7.01)
documentLinksarrayAll document files attached to this filing (HTM, XML, TXT) with text labels and direct URLs

Pricing / Cost Estimation

This Actor uses a Puppeteer (full Chrome browser) crawler because the SEC EDGAR search is a JavaScript-heavy Vue.js single-page application that cannot be scraped with lightweight HTTP tools.

What Affects Cost?

FactorImpact
Number of keywords × statesMore combinations = more browser sessions opened
maxPagesPerSearch valueHigher limit = more result pages and detail pages visited
Selected states vs. all 57Narrowing to fewer states is the biggest cost lever
Business type filterFiltering to LLC/INC only reduces unnecessary detail page visits
Filing type filterNarrowing to 8-K or 10-K produces fewer total results

Estimates

ScenarioApprox. Compute Units
1 keyword, 1 state, unlimited pages0.5 – 2 CU
1 keyword, all 57 states, unlimited pages10 – 40 CU
5 keywords, 10 states, max 5 pages each2 – 8 CU
7 keywords, all 57 states, unlimited pages50 – 200 CU

Tips to Reduce Cost

  • Select only the states you need — the single biggest lever. Instead of all 57, pick your 5–10 target markets.
  • Set maxPagesPerSearch — e.g. 5 limits to ~500 results per keyword × state. Ideal for recent-filing lead lists.
  • Use dateRange: "30d" or "1y" — limits results to recent filings only, cutting total page count dramatically.
  • Use businessTypes filter — if you only want LLCs, set businessTypes: ["LLC"] to skip irrelevant detail pages.
  • Filter by filingTypes — focusing on 8-K or 10-K significantly reduces results for broad industry keywords.

Tips and Advanced Options

Targeting Specific Industries

Use SIC-code-relevant keywords for better precision:

  • HVAC: hvac, air conditioning, heating contractor
  • Trucking / Freight: trucking, freight, logistics, transportation
  • Construction: construction, contractor, excavation, paving, roofing
  • Insurance: life insurance, auto insurance agent, insurance agency
  • Real Estate: real estate, property management, realty, mortgage
  • Financial Services: investment advisor, wealth management, financial planning

Date Range for Lead Prospecting

Use "30d" for the freshest new filings for immediate outreach. Use "1y" for a rolling annual pipeline. Use "custom" with dateFrom and dateTo to target a specific quarter or fiscal year.

Direct EDGAR URL Mode (startUrls)

Build your own search at efts.sec.gov, copy the resulting URL, and paste it into startUrls. The Actor honors your exact parameters. URLs without a locationCode are auto-expanded across all selected states, giving you full geographic coverage in one config.

Scheduling Runs

In Apify Console, go to Schedules to run the Actor automatically — e.g. every Monday morning to get a fresh weekly list of new filings in your target industry.

Deploying to Apify Platform

apify login # Authenticate with your Apify account
apify push # Build and deploy the Actor to your Apify account

After deploying, run from Apify Console, via the Apify API, or on a recurring schedule.


FAQ, Disclaimers, and Support

Yes. SEC EDGAR is a publicly funded, freely accessible U.S. government database. All data it contains is public record. This Actor reads only publicly available filing data using the same URLs a browser would use, and does not bypass any authentication, access control, CAPTCHA, or terms of service. The SEC explicitly encourages programmatic access to EDGAR data through its public APIs and full-text search system.

EDGAR caps full-text search results at 10,000 per query. For very broad keywords across all states, use more specific search terms, add a filing type filter, or narrow the date range to stay under this limit per individual search.

Why are some address or phone fields empty?

Not all SEC filers are required to disclose every field. Smaller companies or certain filing types may omit mailing address, phone number, or EIN. The Actor captures all fields that are present in the specific filing index page.

Can I get historical filings?

Yes. Set dateRange: "all" to retrieve filings going back to the early 2000s. EDGAR's full-text search index covers filings from approximately 2001 onwards.

Why does the Actor use a full browser instead of HTTP requests?

The EDGAR Full-Text Search is a Vue.js single-page application. Search results are rendered by JavaScript in response to URL hash changes — they cannot be retrieved by a simple HTTP request. Puppeteer simulates a real browser, triggers the Vue Router navigation, and waits for results to fully render before extracting them.

Known Limitations

  • EDGAR search is capped at 10,000 results per query
  • The Actor runs with maxConcurrency: 1 to respect SEC server capacity and avoid rate limiting
  • EDGAR's full-text index covers filings from ~2001 onwards (pre-2001 filings exist but are not indexed)
  • Companies with multiple filers may appear in multiple states if their filings are indexed under different jurisdictions

Need Help or Found a Bug?

Open an issue in the Issues tab of this repository. Please include your input JSON and the relevant log output from the failed run.

Need a Custom Solution?

This Actor can be extended to filter by SIC code, push results directly to Google Sheets, fire a webhook on each new filing, or integrate with Salesforce, HubSpot, or Airtable. Contact us through Apify Console for a custom development quote.


Resources