DEV Community

Ava Torres
Ava Torres

Posted on

How to Search SEC EDGAR Filings by Ticker, Company Name, or CIK (Without Paying for an API)

If you've ever tried to pull SEC filing data programmatically, you know the pain. The EDGAR full-text search is clunky, the submissions API returns deeply nested JSON that's annoying to parse, and the rate limiting (10 req/s with a mandatory User-Agent) means you can't just hammer it from a script.

The commercial options aren't cheap either. sec-api.io starts at $49/mo. Quandl (now Nasdaq Data Link) is $29/mo for basic access. Financial Modeling Prep charges per call. If you just need filing metadata and don't want to build a whole pipeline, that's a lot of overhead.

I built a free actor on Apify that wraps the EDGAR API and gives you clean, flat JSON for any company lookup. No API key needed. You pay per result on Apify ($0.005/company) and it handles the pagination, rate limiting, and data flattening.

What it actually returns

For each company, you get: CIK, ticker, SIC code (industry classification), EIN, state of incorporation, filer category, phone number, business and mailing address, former names, and every filing matching your filters.

Each filing record has the form type, filing date, report date, accession number, direct document URL, filing index URL, XBRL availability flag, and file size. So you can go straight from search result to the actual document.

Quick examples

Pull 10-K annual reports for FAANG stocks:

{
    "tickers": ["AAPL", "AMZN", "GOOGL", "META", "NFLX"],
    "formTypes": ["10-K"],
    "maxFilings": 5
}
Enter fullscreen mode Exit fullscreen mode

Track insider trading at NVIDIA since 2025:

{
    "tickers": ["NVDA"],
    "formTypes": ["4"],
    "dateFrom": "2025-01-01",
    "maxFilings": 100
}
Enter fullscreen mode Exit fullscreen mode

Search by company name (partial match works):

{
    "companyNames": ["Palantir"],
    "formTypes": ["10-K", "10-Q", "8-K"],
    "maxFilings": 20
}
Enter fullscreen mode Exit fullscreen mode

Results come back in 2-3 seconds per company. Export as JSON, CSV, or Excel.

Why not just use the raw EDGAR API?

You can. It's free and public. But here's what you'd need to build:

  1. Company resolution -- EDGAR identifies companies by CIK, not ticker. You'd need to maintain a ticker-to-CIK mapping or hit the company search endpoint first.

  2. Pagination -- The submissions endpoint returns filings in batches across multiple URLs. Recent filings are inline, older ones are in separate CIK0001234567-submissions-001.json files you have to fetch and merge.

  3. Rate limiting -- 10 requests per second, and the SEC blocks you (temporarily) if you don't include a valid User-Agent with your email. Most tutorials forget to mention this.

  4. Data flattening -- The raw JSON nests filings inside recentFilings and files arrays with parallel arrays for each field (one array for dates, one for accession numbers, etc). Not the worst API design I've seen, but close.

None of this is hard, but it's 2-4 hours of work for something that should take 10 seconds.

Who actually uses this

From what I can tell, the main use cases are:

  • Investment analysts who need filing history for fundamental research without paying for a Bloomberg terminal
  • Compliance teams monitoring 8-K events and insider trading disclosures
  • Due diligence workflows where you need complete filing history for acquisition targets
  • Academic researchers building datasets of financial disclosures
  • Lead gen -- every public company's phone number and address is in EDGAR, filterable by industry (SIC code)

The lead gen angle surprised me, but it makes sense. EDGAR has structured contact data for 10,400+ companies, organized by industry, with filing frequency as a proxy for company activity.

Try it

The actor is here: SEC EDGAR Company Filings Search

It's part of a collection of 30 public data tools I built covering government APIs, business registrations, and regulatory data. All free to try, all on Apify, all written in Go.

If you work with any of these data sources -- SEC filings, IRS 990 nonprofits, FDA drug safety, state business registrations, federal contracts -- there's probably an actor in the collection that saves you a few hours of API wrangling.

Top comments (0)