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
424B2entries to see who leads among operating companies. - Count filings, not entries: dedupe on
accessionNobefore counting if you want one row per filing. - Insiders: count Form 4 entries by
companyNameto see which issuers have the most insider reports.