Guide · Company data

SEC EDGAR API: how to get filings, Form D rounds and financials in code

The SEC publishes everything filed on EDGAR for free, and you don't need an API key. What it doesn't publish is one single API: filings, Form D rounds and financial figures each live behind a different endpoint, with different freshness and formats.

The four official sources

What you want SEC source How fresh
One company's filings data.sec.gov/submissions/CIK##########.json Updated as filings are accepted
Every filing of a form type, across all companies Daily form indexes in /Archives/edgar/daily-index Built each business-day evening (US Eastern time)
Form D private offerings Each filing's primary_doc.xml, found through the daily index Same as the daily index
Key financials data.sec.gov/api/xbrl/companyfacts/CIK##########.json Updated as XBRL filings are accepted

EDGAR full-text search (efts.sec.gov) covers filing text from 2001 onwards.

The two rules the SEC asks you to follow

Python: a company's latest 8-K

This turns a ticker into a CIK with the SEC's company_tickers.json, then reads the company's submissions JSON. Put your own name and email in UA.

import json, time, urllib.request

UA = "Your Name your.email@example.com"  # the SEC asks every script to say who it is

def get(url):
    req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept-Encoding": "identity"})
    with urllib.request.urlopen(req, timeout=30) as r:
        data = json.load(r)
    time.sleep(0.2)  # stay well under the SEC's 10 requests a second
    return data

tickers = get("https://www.sec.gov/files/company_tickers.json")
cik = next(t["cik_str"] for t in tickers.values() if t["ticker"] == "NVDA")

sub = get(f"https://data.sec.gov/submissions/CIK{cik:010d}.json")
recent = sub["filings"]["recent"]
for form, filed, acc, doc, items in zip(recent["form"], recent["filingDate"], recent["accessionNumber"],
                                         recent["primaryDocument"], recent["items"]):
    if form == "8-K":
        url = f"https://www.sec.gov/Archives/edgar/data/{cik}/{acc.replace('-', '')}/{doc}"
        print(filed, form, items, url)
        break

Run on 30 October 2026, it printed NVIDIA's 8-K of 3 September 2026 (item 8.01) and its document link.

Where it trips people up

We built this

Disclosure: Your Evenings Ltd built and sells this. It's independent and isn't affiliated with or endorsed by the SEC. SEC EDGAR Filings API: Form D, 8-K & XBRL (Unofficial) on the Apify Store reads the same official sources and gives you clean rows:

Pricing: $0.002 per filing, $0.003 per Form D offering or company financials row, and $0.01 per monitor run that finds something new (base prices; higher Apify plans pay less). Status rows and filtered-out filings are free.

FAQ

Do I need an API key for SEC EDGAR? No. EDGAR's data and APIs are free and need no key, but the SEC asks you to declare a User-Agent with your name and email.

What is the SEC EDGAR rate limit? The SEC's current fair-access limit is 10 requests a second.

Why are today's filings missing from the daily index? Each business day's index is built that evening, US Eastern time. A company's submissions JSON updates as filings are accepted.

Is a Form D amount the amount raised? Not exactly. It's the total offering amount and the amount sold so far at the time of filing. Amendments update them.

Product names and logos belong to their owners. Your Evenings Ltd is not affiliated with or endorsed by them. Data from SEC EDGAR. Your Evenings Ltd is not affiliated with or endorsed by the U.S. Securities and Exchange Commission.