Home / Guides / EDGAR research
EDGAR research

Who files the most on EDGAR

Count EDGAR index entries by filer for one week and see which companies and funds account for the most filings.

EDGAR has hundreds of thousands of active filers, but a small group files far more than the rest. This tutorial pulls every index entry for one week with the Filing Query API and counts them by filer.

Paging through a day

/v1/filings returns up to 200 results per page. A query on one day (filedAt:[2026-09-22 TO 2026-09-22]) returns a few thousand entries, so the script pages with from until a short page comes back. Querying day by day keeps every request fast and each total exact (totals above 10,000 are reported as gte).

The code

import os
from collections import Counter

import requests

BASE = "https://secfeedapi.com"
HEADERS = {"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"}


def day(d):
    """Every index entry filed on one day, 200 per page."""
    rows, start = [], 0
    while True:
        r = requests.get(f"{BASE}/v1/filings", headers=HEADERS, timeout=120,
                         params={"query": f"filedAt:[{d} TO {d}]", "size": 200, "from": start})
        r.raise_for_status()
        page = r.json()["filings"]
        rows += page
        if len(page) < 200:
            return rows
        start += 200


week = ["2026-09-21", "2026-09-22", "2026-09-23", "2026-09-24", "2026-09-25"]
entries = [f for d in week for f in day(d)]
print(f"{len(entries):,} index entries filed {week[0]} to {week[-1]}")

by_filer = Counter((f["cik"], f["companyName"]) for f in entries)
print(f"{len(by_filer):,} distinct filers\n")
print("Most entries in the week:")
for (cik, name), n in by_filer.most_common(10):
    forms = Counter(f["formType"] for f in entries if f["cik"] == cik).most_common(2)
    print(f"  {n:5}  {name[:42]:42} CIK {cik:>8}  mostly {', '.join(f'{k} ({v})' for k, v in forms)}")

once = sum(1 for n in by_filer.values() if n == 1)
print(f"\nFilers with a single entry: {once:,} ({once / len(by_filer):.0%})")
top10 = sum(n for _, n in by_filer.most_common(10))
print(f"Share of entries from the top 10 filers: {top10 / len(entries):.1%}")

Output

Run on 2026-10-13 for the week of September 21 to 25, 2026.

17,010 index entries filed 2026-09-21 to 2026-09-25
6,801 distinct filers

Most entries in the week:
    383  JPMORGAN CHASE & CO                        CIK    19617  mostly 424B2 (353), 424B3 (19)
    357  JPMorgan Chase Financial Co. LLC           CIK  1665650  mostly 424B2 (327), 424B3 (19)
    314  MORGAN STANLEY                             CIK   895421  mostly 424B2 (290), FWP (23)
    311  Morgan Stanley Finance LLC                 CIK  1666268  mostly 424B2 (288), FWP (23)
    263  BANK OF AMERICA CORP /DE/                  CIK    70858  mostly 424B2 (251), FWP (12)
    257  BofA Finance LLC                           CIK  1682472  mostly 424B2 (245), FWP (12)
    245  UBS AG                                     CIK  1114446  mostly 424B2 (241), 424B3 (2)
    214  CITIGROUP INC                              CIK   831001  mostly 424B2 (193), FWP (18)
    205  GOLDMAN SACHS GROUP INC                    CIK   886982  mostly 424B2 (183), 424B3 (12)
    205  iSHARES TRUST                              CIK  1100663  mostly NPORT-P (200), 497 (2)

Filers with a single entry: 4,778 (70%)
Share of entries from the top 10 filers: 16.2%

Reading the result

  • Banks issuing structured notes lead. Each structured note a bank sells gets its own 424B2 pricing supplement, and banks often file under both the parent and a finance subsidiary (JPMorgan Chase & Co. and JPMorgan Chase Financial Co. LLC, Morgan Stanley and Morgan Stanley Finance LLC), so the same note appears under two CIKs.
  • Large ETF trusts follow. iShares Trust files an NPORT-P portfolio report for each of its funds, all under the trust's CIK.
  • Most filers file once. 70% of filers that week had a single entry, and the top 10 filers accounted for 16% of all entries.

Variations

  • Exclude a form: skip 424B2 entries to see who leads among operating companies.
  • Count filings, not entries: dedupe on accessionNo before counting if you want one row per filing.
  • Insiders: count Form 4 entries by companyName to see which issuers have the most insider reports.

Next steps

More edgar research guides

Run this guide with your own key

500 free API calls a month. Every example on this page works on the free plan.

Get free API key →