SEC EDGAR Scraper (Financials, Filings, Form 4, No API Key) avatar

SEC EDGAR Scraper (Financials, Filings, Form 4, No API Key)

Pricing

from $1.10 / 1,000 records

Go to Apify Store
SEC EDGAR Scraper (Financials, Filings, Form 4, No API Key)

SEC EDGAR Scraper (Financials, Filings, Form 4, No API Key)

Get SEC EDGAR data by ticker, CIK or company name: quarterly and annual revenue, net income, EPS, free cash flow and debt from XBRL; 10-K, 10-Q and 8-K filings with 8-K items in words; Form 4 insider trades by role. Only new filings since your last run. No API key. $2 per 1,000 records.

Pricing

from $1.10 / 1,000 records

Rating

0.0

(0)

Developer

locaihost data

locaihost data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Share

Get official SEC EDGAR data for any company that files with the SEC, by ticker, CIK or name: quarterly and annual financial statements from XBRL, 10-K, 10-Q and 8-K filings with 8-K events in plain words, and Form 4 insider trades by role, one row per record, each linked to its SEC filing. No login, no API key.

  • Build a financial history: quarterly and annual revenue, margins, EPS and free cash flow for a watchlist, in one table.
  • Screen for insider buying and selling: Form 4 trades by officers, directors and 10% owners, with the 10b5-1 plan flag.
  • Track earnings and events: a daily feed of new 8-Ks (results, executive changes, deals) for the companies you cover.
  • Feed dashboards, screeners and backtests with normalised fundamentals straight from the filings.
  • Give an AI agent sourced numbers: every row links to the filing it came from, so the agent can cite it.

Quick start

Paste this into the JSON tab of the input and click Start:

{"companies": ["AAPL"], "periods": "quarterly", "lastNPeriods": 4, "maxInsiderFilingsPerCompany": 2}

You get about 10 rows in under 15 seconds: Apple's last 4 quarters of fundamentals, its 10-K, 10-Q and 8-K filings from the last 90 days, and the trades in its 2 newest Form 4s. The filing and trade counts depend on what was filed recently. Remove the last three fields to get 8 years and 8 quarters plus up to 50 Form 4s per company.

What data can I get?

Real fundamentals rows from this Actor's output: NVIDIA and Apple revenue, net income, diluted EPS and free cash flow by fiscal period

All three record types share one dataset; recordType says which one a row is.

GroupFields
Every rowrecordType (fundamentals, filing or insiderTrade), cik, ticker, companyName, filingUrl (back to the SEC), recordId (unique and stable across runs), scrapedAt
PeriodperiodType (annual or quarterly), fy, fp (FY, Q1 to Q4), periodStart, periodEnd, form, filed, currency
Incomerevenue, netIncome, operatingIncome, epsBasic, epsDiluted (3 months for quarters, 12 months for years)
Balance sheettotalAssets, totalLiabilities, stockholdersEquity, cashAndEquivalents, longTermDebt, sharesOutstanding
Cash flowoperatingCashFlow, capitalExpenditures, freeCashFlow (operating cash flow minus CapEx)
Audit trailderivedMetrics (computed by subtraction), restatedMetrics (a later filing changed them; the later number is used), concepts (the XBRL tag behind each number)
Filingsform, filingDate, reportDate, acceptedAt, accessionNumber, items + itemDescriptions (8-K codes in words, such as "2.02 Results of Operations and Financial Condition"), documentUrl
Insider tradesinsiderRole (e.g. "Officer (CEO)", "Director", "10% Owner"), insiderType, isDirector, isOfficer, isTenPercentOwner, officerTitle, transactionDate, transactionCode + transactionLabel, acquiredDisposed, shares, pricePerShare, value, sharesOwnedAfter, directOrIndirect, ownershipNature, is10b51Plan, securityTitle, transactionIndex

One real row (run on 2026-10-18, some fields trimmed):

{
"recordType": "fundamentals",
"cik": "0000320193",
"ticker": "AAPL",
"companyName": "Apple Inc.",
"periodType": "quarterly",
"fy": 2026,
"fp": "Q3",
"periodStart": "2026-03-29",
"periodEnd": "2026-06-27",
"form": "10-Q",
"filed": "2026-07-31",
"currency": "USD",
"revenue": 109417000000,
"netIncome": 29789000000,
"operatingIncome": 35695000000,
"epsDiluted": 2.02,
"totalAssets": 383266000000,
"cashAndEquivalents": 39544000000,
"operatingCashFlow": 34369000000,
"capitalExpenditures": 2455000000,
"freeCashFlow": 31914000000,
"longTermDebt": 82300000000,
"derivedMetrics": ["operatingCashFlow", "capitalExpenditures"],
"restatedMetrics": [],
"concepts": {"revenue": "RevenueFromContractWithCustomerExcludingAssessedTax", "netIncome": "NetIncomeLoss", "…": "…"},
"filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/0000320193-26-000020-index.htm"
}

The dataset has four views (All records, Fundamentals, Filings, Insider trades), so you can export a CSV or Excel file with only one type's columns. It also exports to JSON or HTML. The run's SUMMARY record lists per-company counts and any inputs that weren't found.

Individual insiders are never named. Insider-trade rows give the insider's role and officer title, never the person's name, CIK, address or the filing's footnotes. insiderName and insiderCik are filled only for organisations that file as insiders (funds, holding companies); family and personal trusts count as individuals. ownershipNature keeps generic wording as filed ("By Spouse", "By 401(k) Plan") and turns anything that could name someone into a category such as "By trust" or "By entity".

How much does it cost?

You pay per record returned: one fundamentals period, one filing or one insider trade. There is no charge for Apify platform usage on top.

RowFree and StarterScaleBusiness
Record$2.00 per 1,000$1.50 per 1,000$1.10 per 1,000

Plus $0.00005 per run start. Apify's free $5 monthly credit covers about 2,500 records. Free-plan runs stop at 100 records each; any paid Apify plan removes the cap.

For example, 10 companies with fundamentals only and the defaults (last 8 fiscal years plus last 8 quarters) give up to 160 records: $0.32 on Starter.

What's free: company lookups, companies not found on EDGAR, records skipped by onlyNew, the SUMMARY record, runs with no valid input, and runs where SEC EDGAR doesn't answer at all. A new-only run that finds nothing costs only the start fee. To cap a run's spend, set Maximum cost per run in the run options, or use maxResults.

Limits, stated up front

  • Up to 500 companies per run; extra inputs are ignored. maxFilingsPerCompany (default 100) and maxInsiderFilingsPerCompany (default 50 Form 4s) limit each company.
  • The Actor stays under 8 SEC requests per second, so big lists take longer: roughly a second per company plus a second per 8 Form 4 filings. If the run's time limit is reached, it keeps what it has and ends normally.
  • As-reported data: numbers are what companies tagged in their XBRL filings, not analyst-adjusted figures. The Actor tries several tags per metric, keeps the latest restated value, separates 3-month quarters from year-to-date figures, and derives Q2 to Q4 cash flow and fiscal Q4 from cumulative numbers. Fiscal Q4 EPS is left empty, because EPS doesn't add up across quarters.
  • XBRL fundamentals go back to roughly 2009-2011, depending on company size. Funds, trusts and foreign filers reporting under IFRS (20-F, 40-F) have no US-GAAP fundamentals; their filings and insider trades still work.
  • sharesOutstanding comes from the filing's cover page and is not adjusted for later stock splits; EPS is split-adjusted when a later filing recast it.
  • Insider trades cover Form 4 non-derivative transactions (stock bought, sold, awarded, exercised or gifted). Option grants in the derivative table are not included, and Form 4s a company files as an owner of another company's shares are skipped.
  • If a company moved to a new holding company, its ticker points to the new CIK. Add the old CIK as an extra company to get older history.

Only new since last run, and schedules

Turn on onlyNew and save the input as a task with a daily schedule (under Schedules in Apify Console): each run returns only filings, trades and periods this saved configuration hasn't returned before, and skipped records cost nothing. That makes a cheap alert feed for new 8-Ks or insider sales. The memory is per configuration: changing companies, modes, form types or periods starts fresh, and a restated fundamentals period comes back.

Integrations: API, n8n, Make and AI agents

API. Run it and get the rows back in one call:

curl -X POST "https://api.apify.com/v2/acts/locaihost~sec-edgar/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies": ["AAPL", "MSFT"], "modes": ["fundamentals"], "periods": "annual", "lastNPeriods": 5}'

Python, with pip install apify-client:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("locaihost/sec-edgar").call(run_input={"companies": ["AAPL", "MSFT", "NVDA"], "modes": ["insiderTrades"], "sinceDate": "30 days"})
for t in client.dataset(run["defaultDatasetId"]).iterate_items():
if t["transactionCode"] in ("P", "S"): # open-market buys and sells only
print(t["ticker"], t["insiderRole"], t["transactionLabel"], t["shares"], t["value"])

n8n, Make, Zapier, Google Sheets, Slack, webhooks. Apify's built-in integrations send each run's dataset wherever you need it.

AI agents (MCP). Add this Actor to Claude, Cursor or any MCP client with https://mcp.apify.com/?tools=locaihost/sec-edgar, then ask something like "Compare NVIDIA's and Apple's revenue, net income and free cash flow for the last four quarters, and cite the filing for each number." Agents should ask only for the modes they need (for example "modes": ["fundamentals"], "periods": "quarterly", "lastNPeriods": 4), because every row is charged.

FAQ

How much does it cost to scrape SEC EDGAR?

$2.00 per 1,000 records on the Free and Starter plans, $1.50 on Scale and $1.10 on Business. Not-found companies and records skipped by onlyNew are free. Apify's free $5 monthly credit covers about 2,500 records.

Can I use it through the API or from Python?

Yes. Use the run-sync-get-dataset-items call above, or Apify's Python and JavaScript clients. Every run's rows are also available as JSON, CSV or Excel from its dataset.

Can I use it from an AI agent?

Yes. Through the Apify MCP server (https://mcp.apify.com/?tools=locaihost/sec-edgar) any MCP client can ask for a company's fundamentals, filings or insider trades and read the rows back.

The Actor reads only the SEC's public EDGAR endpoints (the company ticker list, submissions, XBRL company facts and Form 4 XML). EDGAR filings are published for public access, and the SEC documents fair-access rules for automated use, which this Actor follows: a declared User-Agent with a contact address and a request rate below the SEC's limit of 10 per second. It never logs in, and it never names individual insiders. The data is as filed and is not investment advice; you are responsible for how you use it.

Why are some fields empty?

  • Fundamentals: the company didn't use a standard US-GAAP tag (banks report no operating income, for example), or it is a fund, trust or IFRS filer. Fiscal Q4 EPS is always empty.
  • Insider value of 0: awards, option exercises, tax withholding and gifts (codes A, M, F, G) are often reported at a price of 0. To total insider buying and selling, keep only codes P and S.
  • insiderName is null: the insider is a person, and individuals are never named.
  • Assets don't equal liabilities plus equity: stockholdersEquity is the parent company's equity and excludes non-controlling interests.

A ticker wasn't found. What can I do?

Use the ticker as listed (BRK.B), the CIK (1067983) or the company name. A company that changed its ticker is found under the new one, or by name or CIK. Inputs that don't match are listed in SUMMARY and cost nothing.

More from locaihost data

Did it help?

If this saved you time, a quick rating on the Store helps other people find it.

Support

Something not working, or a metric or form type you need? Open an issue on the Issues tab: we answer issues within 24 hours.