SEC EDGAR Filings Scraper: 8-K Earnings, Form 4
Pricing
from $0.54 / 1,000 filing returneds
SEC EDGAR Filings Scraper: 8-K Earnings, Form 4
Get SEC EDGAR filings with each 8-K earnings release excerpted on request, plus its guidance sentences and a sentiment score. Rows carry the form type, filed date, 8-K items, Form 4 trade lines, 10-K and 10-Q financials and document links, and full-text search covers every filing since 2001.
Pricing
from $0.54 / 1,000 filing returneds
Rating
0.0
(0)
Developer
Pradio Actors
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Features
Share
What does SEC EDGAR Filings Scraper do?
SEC EDGAR Filings Scraper turns the tickers, CIKs or company names you give it into one row per SEC EDGAR filing. Turn on earnings extraction and each 8-K earnings release also carries a short excerpt, its guidance sentences and a sentiment score on the same row. You can also search the full text of every filing since 2001 for a phrase, and get one row per filing that mentions it.
Each row names the company, the form, its dates and its links on sec.gov. Opt in and a row can also carry a Form 4's insider trades split into lines, or the figures a 10-K or 10-Q reported. $1.00 per 1,000 filings, and misses are free.
Start with NVIDIA's latest earnings releases:
{"searchQueries": ["NVDA"],"formTypes": ["8-K"],"extractEarnings": true,"maxItems": 20}
Who uses SEC EDGAR Filings Scraper
| Who | What they run it for |
|---|---|
| Investment researchers | A watchlist's 8-Ks, earnings releases and guidance, as rows they can sort. |
| Due diligence analysts | Every filing a company made, with links to each document, in one export. |
| Compliance teams | New Form 4 insider trades at the companies they follow, on a daily schedule. |
| Data teams | Annual reports as plain text, ready for search or an AI model. |
You bring a list of tickers or CIKs, and the form types and dates you care about. No API work on your side.
Features
- 8-K earnings excerpted: each earnings release gets an excerpt, the guidance sentences it states and a sentiment score, on the same row.
- Full-text keyword search: search the text of every EDGAR filing from 2001 on, one row per matching filing.
- Look up by ticker, CIK or name: names resolve through the SEC's own ticker file.
- Insider trades split into lines: a Form 3, 4 or 5 row lists the insider, their role and every transaction.
- Financials on the filing: a 10-K or 10-Q row carries the figures that report stated for its own period.
- Only new filings: on a schedule, get only the filings your last run of the same search did not return.
- Document text and sections: the main document as plain text, or split on its Item headings.
- Filter 8-Ks by item: ask for 2.02 and you get results announcements only.
- Fair to the SEC: it names itself to the SEC and stays under 10 requests a second.
What you can count on
- Anything it cannot answer comes back as a row naming what you gave it and why.
- Every row is charged only after it is written to your dataset. A row you cannot see is never billed.
- A run that finds nothing returns one row saying so, never an empty dataset.
- A spending limit stops the run cleanly, with a last row saying how many rows came back and how many did not.
- Every run saves a summary of what it read, returned and charged, so a short run is easy to tell from a broken one.
- If EDGAR refuses a read or answers with an error, the run stops and says so in the log rather than returning empty rows.
- No value is invented. A field EDGAR does not show is null, and this page says which.
Why this one
| SEC EDGAR Filings Scraper | Most-used alternative | |
|---|---|---|
| Filing rows returned | 100 | 100 |
| Earnings release excerpt, guidance and sentiment | โ๏ธ | โ |
| Full-text keyword search since 2001 | โ๏ธ | โ |
Both were run on the same input, one company, on 2026-10-03.
- Read what a company said, not just that it filed. An earnings 8-K comes with its excerpt and guidance sentences on the row.
- Find filings by what they say. A phrase search covers every filing since 2001.
- Coverage you can rely on. On a test list of 498 companies, 496 came back with filings, and the other 2 came back as rows saying why.
What data does SEC EDGAR Filings Scraper return?
A real row: 3M's earnings release with earnings extraction on (fields cut to the ones most buyers read first):
{"status": "ok","company_name": "3M CO","accession_number": "0000066740-26-000242","ticker": "MMM","form_type": "8-K","items": ["2.02", "9.01"],"item_descriptions": ["Results of Operations and Financial Condition", "Financial Statements and Exhibits"],"filed_date": "2026-07-21","report_year": 2026,"fiscal_quarter": 3,"document_url": "https://www.sec.gov/Archives/edgar/data/66740/000006674026000242/mmm-20260721.htm","sentiment": {"positive": 15, "negative": 9, "net": 0.25, "label": "positive"},"reported_figures": [{"metric": "operating_income", "value": "$ 1.78"}, {"metric": "eps", "value": "$1.78"}],"row_type": "ROW"}
Every field comes from EDGAR as filed, with a few marked exceptions: the year and quarter are worked out from the dates, the links are built from the accession number, and the sentiment score counts the release's words.
| Field | What it is |
|---|---|
status / row_type | ok and ROW on a filing row; on a status row, the miss and its kind (see Output). |
company_name / cik | The company's registered name and its SEC filer number. |
accession_number | The filing's unique SEC ID. |
ticker / tickers | Every symbol it trades under; ticker is the first. |
form_type | The SEC form code, such as 10-K, 8-K or 4. |
description | One line: what the filing is, who filed it, when, and an 8-K's items. |
items / item_descriptions | An 8-K's item numbers and their official names. |
filed_date / report_date | When it was submitted and the period it covers. |
acceptance_date_time | When the SEC accepted it. |
report_year / fiscal_quarter | The report's year and the company's fiscal quarter. |
sic / sic_description | The filer's industry code and its label. |
state_of_incorporation / fiscal_year_end | Where it is incorporated and when its year ends (MMDD). |
exchanges / entity_type / ein | Its exchanges, SEC filer category and EIN. |
addresses | The company's mailing and business addresses, as the SEC publishes them. |
primary_document / primary_doc_description | The main file's name and the SEC's label for it. |
document_url / filing_url / index_url | Links to the main document, the filing's index page and its index.json. |
sec_viewer_url | The filing in the SEC's own viewer. |
size_bytes / is_xbrl / is_inline_xbrl | The filing's size and whether it carries XBRL data. |
file_number / film_number / act_code | SEC file, film and act identifiers. |
item_codes / item_names / excerpt | On an earnings release: its items and a short passage from it. |
guidance_sentences | Up to eight forward-looking sentences that state a figure. |
sentiment / reported_figures | A word-count score and the headline figures as printed. |
insider_name / insider_relationship / transactions | On Forms 3, 4 and 5: the insider, their role and each trade line. |
document_text / sections | The main document as plain text, or split on its Item headings. |
matched_passages | On a keyword run: up to three sentences carrying your terms. |
financials | On a 10-K or 10-Q: the figures that filing reported. |
amends_accession_number / amends_note | On an amendment: the filing it amends, and how that was found. |
search_metadata | The entry this row answers, as {query, event}. |
read_at | When the run read the filing from EDGAR. |
reason | On a status row, why; on a filing row, why a text field is null. |
rowsFetched / rowsReturned / rowsRemaining | On a run-level status row: found, delivered and left over. |
The extraction fields, insider fields, document text, sections, matched passages and financials stay null until you turn on the box that fills them.
How much does it cost?
$1.00 per 1,000 filing rows. Three charges exist, and nothing else is billed:
| Charge | Price |
|---|---|
| Filing: one filing row written to your dataset | $0.001 |
| Earnings release: one release extracted, only with Extract Earnings Releases on | $0.001 |
| Actor start: once per run | $0.00005 |
| Filing rows | Cost | Plus the start |
|---|---|---|
| 100 | $0.10 | $0.00005 |
| 1,000 | $1.00 | $0.00005 |
| 3,000 | $3.00 | $0.00005 |
On a paid Apify plan a filing row costs less: $0.84 per 1,000 on Bronze, $0.68 on Silver and $0.54 on Gold and above.
Insider lines, financials, document text, sections and matched passages come with the row at no extra charge. A row that comes back empty says why.
How do I use SEC EDGAR Filings Scraper?
- Open the Actor page and press Start.
- Type tickers, CIKs or company names into Search Queries, or paste EDGAR links into Start URLs. The form starts you off with NVIDIA's 8-Ks.
- Your rows land as they are read. Export them as JSON, CSV or Excel, or read them over the API.
Worked examples
Use it to track every new insider trade at a watchlist, on a daily schedule:
{ "searchQueries": ["AAPL", "MSFT", "AMZN", "GOOGL"], "formTypes": ["4"], "includeInsiderTransactions": true, "onlyNew": true, "maxItems": 1000 }
Use it to find which filers mentioned a topic this quarter:
{ "query": "\"tariff\"", "formTypes": ["8-K", "10-Q"], "filedFrom": "2026-07-01", "filedTo": "2026-09-30", "includeMatchedPassages": true, "maxItems": 300 }
Use it to get annual reports as plain text for an AI pipeline:
{ "searchQueries": ["JPM", "BAC", "WFC"], "formTypes": ["10-K"], "filedFrom": "2024-01-01", "includeDocumentText": true, "maxDocumentChars": 100000, "maxItems": 10 }
Use it to pull quarterly and annual reports with their own financials:
{ "searchQueries": ["AAPL", "MSFT", "NVDA"], "formTypes": ["10-Q", "10-K"], "includeFinancials": true, "maxFilingsPerCompany": 8, "maxItems": 24 }
Over the API:
curl -X POST "https://api.apify.com/v2/acts/Pradio~sec-edgar-filings/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" -H "Content-Type: application/json" -d "{\"searchQueries\": [\"AAPL\"], \"formTypes\": [\"8-K\"], \"extractEarnings\": true, \"maxItems\": 100}"
Input
| Input | Default | What it does |
|---|---|---|
searchQueries | none (the form shows NVDA) | Tickers, CIKs or company names. |
startUrls | none | EDGAR links naming a company: its page, feed, Archives folder or a browse link. |
query | none | A phrase to search filing text since 2001. |
maxItems | 100 | The most filing rows a run returns. |
maxCompaniesPerSearchQuery | 5 | The most companies one name may match, at most 50. |
maxFilingsPerCompany | none | The most rows one company may return. |
formTypes | none (the form shows 8-K) | EDGAR form codes; empty means every form. |
itemCodes | none | 8-K item numbers, such as 2.02 for results. |
filedFrom | none | Filed on or after this date, YYYY-MM-DD. |
filedTo | none | Filed on or before this date, YYYY-MM-DD. |
onlyNew | off | Only filings an earlier run of this search did not return. |
extractEarnings | off | Excerpt, guidance and sentiment on earnings releases, $0.001 each. |
includeInsiderTransactions | off | Insider and trade lines on Forms 3, 4 and 5. |
includeFinancials | off | Reported figures on 10-K and 10-Q rows. |
includeDocumentText | off | The main document as plain text. |
maxDocumentChars | 50000 | Document text cap, at most 100000. |
includeSections | off | The document split on its Item headings. |
includeMatchedPassages | off | Sentences carrying your keyword terms. |
proxyConfiguration | none | Optional Apify proxy, one address for the whole run. |
Maximum filings
Left empty, a run reads each company's recent feed only. A number reads the older filing files too, until it is met. Either way, the run never charges for more rows than you set.
Form types
Shorthand like 10K or DEF14A is corrected for you, and 8-K also brings back its 8-K/A amendments.
Output
Each filing lands as one row marked ok. When an entry produced nothing, you get a row saying why instead. A run that matched nothing at all returns one row saying so, so zero results never look like a broken run. Your run's totals sit in its summary in the key-value store.
| Row kind | What it says |
|---|---|
ROW | A filing. |
ITEM_STATUS | One entry's miss; status and reason say why. |
PROFILE_NOT_FOUND | Nothing you sent matched a company or a filing. |
STOPPED_EARLY | Your spending limit ended the run; the counts say what came back. |
| Status | Meaning |
|---|---|
ok | A filing row. |
bad_url | A link that is not an EDGAR link. |
bad_input | An entry it could not read. |
not_found | No such company, or no filing under your filters. |
fetch_failed | EDGAR did not answer for this entry. |
not_reached | Left unread because Maximum filings was already met. |
duplicate | An entry naming a company an earlier entry already covered. |
What can you do with the data?
An analyst runs a watchlist of 30 tickers every morning with only new filings on, and reads each earnings release's guidance sentences before the market opens.
A due diligence team pulls every filing of a takeover target into a spreadsheet, with a link to each document, and splits the work by form type.
A compliance officer tracks Form 4 trades at the company's peers on a daily schedule and sees each trade line, price and holding after.
A data team searches a year of 10-Ks for "going concern" and loads the matching sentences into their model.
Use SEC EDGAR Filings Scraper with AI agents
Paste this to give an agent the Actor as a tool, and it can look up companies and pull filings for you:
claude mcp add --transport http apify "https://mcp.apify.com?tools=Pradio/sec-edgar-filings"
Personal data
- Insider rows carry only what the filed Form 3, 4 or 5 publishes: the insider's name, their role and the trade lines. No row carries a home address, personal contact detail or date of birth.
- Forms 3, 4, 5 and 144, and any filing a person made, never get document text, sections or matched passages.
- Every row is read live from EDGAR and names the SEC as its source, so a filing the SEC corrects or removes stops being served.
- The one-line description holds only the form, the filer's name, the date and EDGAR's item names.
- If a Form 3, 4 or 5 row names you, open an issue on the Issues tab. Rows after that leave your name out of every field.
- You are the controller of the rows your run returns.
Release notes
- 2026-11-07: every filing row now carries a one-line description; an amendment names the filing it amends; each row says when it was read; 8-Ks can be filtered by item number.
Limits
- Only sec.gov is read. A link to any other site comes back as a row saying so.
- Keyword search answers its first 10,000 hits. Narrow a broad phrase with dates or form types.
- Some fields are often empty because EDGAR leaves them out: file, film and act numbers on about half of rows (none on insider filings), and the report date on about a quarter.
- Document text stops at 100,000 characters per filing. The index link lists every exhibit.
- Guidance sentences are picked by word match and the sentiment score counts words. Treat both as rough signals.
- A refusal from EDGAR ends the run early instead of retrying. The rows already returned stay.
Troubleshooting
Fewer rows than I expected? Left empty, Maximum filings reads each company's recent feed only. Set a number to reach older filings.
Only 8-Ks came back? The form starts with 8-K in Form types. Empty that box for every form.
One company took the whole run? A large filer can have over a thousand filings: across the test list, the average was about 1,137. Set Max Filings Per Company so each company gets its share.
Rows marked not_reached? Maximum filings was met before those companies' turns. They were not read.
FAQ
Can I use integrations with SEC EDGAR Filings Scraper?
Yes. Schedules keep your feed current, and webhooks or integrations like Zapier, Make and Google Sheets connect on the Actor's Integrations tab.
Can I use SEC EDGAR Filings Scraper with the Apify API?
Yes. Start a run and read its rows with one call, as in the example above, or use Apify's client libraries.
Can I use SEC EDGAR Filings Scraper through an MCP server?
Yes. Paste the line under "Use with AI agents" and your agent can call it as a tool.
Is it legal to scrape SEC EDGAR?
EDGAR filings are public regulatory records, and the SEC lets programs read them under fair-access rules. This Actor names itself to the SEC, stays under 10 requests a second, and stops at a block. You are responsible for how you use the rows. This is not legal advice.
What does a miss cost?
Nothing. A company it cannot find, or a link it cannot read, comes back as a free row that tells you why.
See also
- SEC Form D Scraper: Funding Rounds and Revenue: one row per Form D private raise, with the amounts offered and sold.
Feedback
Found a problem or missing a field? Open an issue on the Issues tab and we answer within two days. If this Actor saved you time, a review on its Store page helps other buyers find it.
Not affiliated
An independent product, not affiliated with or endorsed by the U.S. Securities and Exchange Commission. The data is read from the SEC's public EDGAR system.