SEC EDGAR Filings Scraper: 10-K, 8-K and Full Text Search
Pricing
$2.00 / 1,000 filings
SEC EDGAR Filings Scraper: 10-K, 8-K and Full Text Search
Returns SEC EDGAR filings (10-K annual reports, 10-Q quarterly reports, 8-K current reports and more) by ticker or CIK, or by full text search across all filings, one row per filing with form, dates, 8-K items and direct document links. Supports onlyNew for daily monitoring.
Pricing
$2.00 / 1,000 filings
Rating
0.0
(0)
Developer
Viktor Wiberg
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Security
Limited permissionsShare
Company filings from SEC EDGAR, the filing system of the U.S. Securities and Exchange Commission. Give a list of tickers or CIK numbers and get one clean row per filing with form type, filing date, report date, the items of an 8-K, a short description and direct links to the main document and the filing index on sec.gov.
With fullTextQuery the actor instead searches the text of every filing in EDGAR, so you can find all 8-K reports that mention "cybersecurity incident" this week, or every 10-K that mentions Sweden, without knowing the companies in advance. See "Full text search across all filings" below.
Use it to collect annual and quarterly reports for a list of companies, to keep an eye on new 8-K current reports (earnings releases, leadership changes, acquisitions), or as the first step in a pipeline that downloads and parses the documents themselves. Schedule a daily run with dateFrom and dateTo left empty to get the latest filings for your watchlist.
What is covered
Every company that files with the SEC, domestic and foreign, from the start of EDGAR in the mid 1990s until today. The actor reads the official submissions API, which lists all filings per company. Filings from the last year or the last 1 000 filings of a company come in one request. Older filings are fetched from additional files only when your date range reaches back that far.
Supported form types, each also as an amendment with /A:
| Form | What it is |
|---|---|
10-K | Annual report of a US company |
10-Q | Quarterly report of a US company |
8-K | Current report on a major event. The items field tells which kind, for example 2.02 results of operations, 5.02 changes of directors or officers, 1.01 a material agreement |
20-F | Annual report of a foreign company |
6-K | Current report of a foreign company |
S-1 | Registration statement, for example before an IPO |
DEF 14A | Definitive proxy statement before a shareholder meeting |
13F-HR | Quarterly holdings report of an institutional investment manager. Use the manager's CIK |
Example from a real run
This is the input and the first rows of a run on the Apify platform on 3 October 2026 (run Ma9SAB7REASKJ9jy2, 25 rows in total). Nothing is edited except that only the first rows are shown.
Input:
{"companies": ["AAPL","MSFT"],"formTypes": ["10-K","10-Q","8-K"],"includeAmendments": true,"maxFilingsPerCompany": 25,"maxResults": 50,"onlyNew": false}
Output (excerpt):
[{"cik": "320193","ticker": "AAPL","companyName": "Apple Inc.","exchange": "Nasdaq","sic": "3571","sicDescription": "Electronic Computers","stateOfIncorporation": "CA","fiscalYearEnd": "0926","form": "8-K/A","filingDate": "2026-09-01","reportDate": "2026-04-17","accessionNumber": "0001140361-26-035325","description": "8-K/A","items": ["5.02"],"primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126035325/ef20081427_8ka.htm","indexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126035325/0001140361-26-035325-index.htm","isXbrl": true,"sizeBytes": 241262,"source": "SEC EDGAR, U.S. Securities and Exchange Commission","license": "Public domain, U.S. federal government information"},{"cik": "320193","ticker": "AAPL","companyName": "Apple Inc.","exchange": "Nasdaq","sic": "3571","sicDescription": "Electronic Computers","stateOfIncorporation": "CA","fiscalYearEnd": "0926","form": "10-Q","filingDate": "2026-07-31","reportDate": "2026-06-27","accessionNumber": "0000320193-26-000020","description": "10-Q","items": [],"primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/aapl-20260627.htm","indexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/0000320193-26-000020-index.htm","isXbrl": true,"sizeBytes": 5946811,"source": "SEC EDGAR, U.S. Securities and Exchange Commission","license": "Public domain, U.S. federal government information"},{"cik": "320193","ticker": "AAPL","companyName": "Apple Inc.","exchange": "Nasdaq","sic": "3571","sicDescription": "Electronic Computers","stateOfIncorporation": "CA","fiscalYearEnd": "0926","form": "8-K","filingDate": "2026-07-30","reportDate": "2026-07-30","accessionNumber": "0000320193-26-000018","description": "8-K","items": ["2.02","9.01"],"primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm","indexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-000018-index.htm","isXbrl": true,"sizeBytes": 417360,"source": "SEC EDGAR, U.S. Securities and Exchange Commission","license": "Public domain, U.S. federal government information"}]
Full text search across all filings
Set fullTextQuery to search the words inside the filings, the same search that the SEC offers at sec.gov/edgar/search. Put a phrase in double quotes to match it exactly ("cybersecurity incident"); without quotes every word must appear somewhere in the document. The search covers the main document and the exhibits of every filing since 2001.
In this mode:
companiesis optional. Leave it empty to search all of EDGAR, or give tickers or CIK numbers to search only those companies.formTypes,dateFrom,dateTo,includeAmendmentsandmaxResultswork as in the company mode.dateFromdefaults to 6 days beforedateTo, so a run without dates covers the last 7 days.- Each filing is one row, even when several of its documents match. Rows come in order of relevance as ranked by the SEC.
- Every row has the same fields as in the company mode plus
matchedQuery(your query),matchedDocumentUrl(the document where the text was found, often an exhibit) andmatchedDocumentType(for example8-KorEX-99.1).primaryDocumentUrlis set when the main document itself matched, otherwisenull;indexUrlalways lists every document of the filing. exchange,sicDescription,fiscalYearEnd,isXbrlandsizeBytesarenull, because the search index does not carry them. Run the company mode on the CIK if you need them.
Example from a real run on the Apify platform on 7 October 2026 (run fiTuaoAQE2XJ38IYg, 3 rows in total). Nothing is edited except that only the first two rows are shown.
Input:
{"fullTextQuery": "\"cybersecurity incident\"","formTypes": ["8-K"],"maxResults": 20}
Output (excerpt):
[{"cik": "1865248","ticker": "CMCAF","companyName": "Piermont Valley Acquisition Corp","exchange": null,"sic": "6770","sicDescription": null,"stateOfIncorporation": "E9","fiscalYearEnd": null,"form": "8-K","filingDate": "2026-10-02","reportDate": "2026-09-30","accessionNumber": "0001477932-26-006019","description": "SECURITIES PURCHASE AGREEMENT","items": ["1.01","9.01"],"primaryDocumentUrl": null,"indexUrl": "https://www.sec.gov/Archives/edgar/data/1865248/000147793226006019/0001477932-26-006019-index.htm","isXbrl": null,"sizeBytes": null,"source": "SEC EDGAR, U.S. Securities and Exchange Commission","license": "Public domain, U.S. federal government information","matchedQuery": "\"cybersecurity incident\"","matchedDocumentUrl": "https://www.sec.gov/Archives/edgar/data/1865248/000147793226006019/cmca_ex101.htm","matchedDocumentType": "EX-10.1"},{"cik": "1971532","ticker": "TELO","companyName": "Telomir Pharmaceuticals, Inc.","exchange": null,"sic": "2834","sicDescription": null,"stateOfIncorporation": "FL","fiscalYearEnd": null,"form": "8-K","filingDate": "2026-10-06","reportDate": "2026-10-05","accessionNumber": "0001493152-26-045860","description": "EX-10.1","items": ["1.01","3.02","7.01","9.01"],"primaryDocumentUrl": null,"indexUrl": "https://www.sec.gov/Archives/edgar/data/1971532/000149315226045860/0001493152-26-045860-index.htm","isXbrl": null,"sizeBytes": null,"source": "SEC EDGAR, U.S. Securities and Exchange Commission","license": "Public domain, U.S. federal government information","matchedQuery": "\"cybersecurity incident\"","matchedDocumentUrl": "https://www.sec.gov/Archives/edgar/data/1971532/000149315226045860/ex10-1.htm","matchedDocumentType": "EX-10.1"}]
Both matched documents contain the phrase "cybersecurity incident" (checked on sec.gov on 7 October 2026).
Use cases for full text search:
- Incident monitoring. Search 8-K reports for
"cybersecurity incident"or"material cybersecurity"every day and see which companies disclose an attack. Item 1.05 of an 8-K is the item for material cybersecurity incidents. - Competitor monitoring. Search for a competitor's or a product's name, for example
"Snowflake"in 10-K and 10-Q reports, to see who names it as a supplier, partner or competitor. - Geographic mentions. Search for a country or region, for example
Swedenin 10-K reports, to find US companies with operations, customers or subsidiaries there.
Scheduled monitoring: combine fullTextQuery with onlyNew: true and a daily schedule (see "Monitoring and scheduling"). Each run returns only filings that earlier runs with the same query did not deliver.
{"fullTextQuery": "\"cybersecurity incident\"","formTypes": ["8-K"],"onlyNew": true,"maxResults": 50}
Input
| Field | Type | Default | Description |
|---|---|---|---|
fullTextQuery | string | empty | Words or an exact phrase in double quotes to search in all filings. Empty means company mode. See "Full text search across all filings". |
companies | array | ["AAPL", "MSFT"] | Tickers (AAPL, msft, BRK.B) or CIK numbers (320193 or 0000320193). 1 to 200 per run. Optional filter with fullTextQuery, and then empty by default. |
formTypes | array | ["10-K", "10-Q", "8-K"] | Form types from the table above. |
dateFrom | string | 364 days before dateTo, or 6 days with fullTextQuery | First filing date, YYYY-MM-DD. |
dateTo | string | today (New York time) | Last filing date (inclusive). |
includeAmendments | boolean | true | Also return 10-K/A, 8-K/A and so on for the selected forms. |
maxFilingsPerCompany | integer | 25 | Maximum number of filings per company, newest first. 1 to 5 000. Not used with fullTextQuery. |
maxResults | integer | 50 | Maximum number of filings in total. Companies are handled in the order given. 1 to 100 000. |
onlyNew | boolean | false | Return only filings that earlier runs with the same input did not deliver. See "Monitoring and scheduling". |
A run with empty input returns up to 25 of the newest 10-K, 10-Q and 8-K filings each for Apple and Microsoft from the last 365 days (25 in total on 2026-10-03).
Tickers are looked up in the SEC's own list of company tickers, in upper or lower case. A ticker and a CIK that point to the same company are merged, so the company is only fetched once. An unknown ticker or CIK gives a warning in the log and the run continues with the next company.
Example input: annual reports and current reports for Apple and Microsoft filed in the last year.
{"companies": ["AAPL", "MSFT"],"formTypes": ["10-K", "8-K"],"includeAmendments": true,"maxFilingsPerCompany": 100,"maxResults": 200}
Output
| Field | Description |
|---|---|
cik | Central Index Key of the company, without leading zeros |
ticker | The ticker you gave, or the company's first ticker in EDGAR. null for companies without one |
companyName | Company name as registered with the SEC |
exchange | First exchange listed for the company, for example Nasdaq or NYSE |
sic, sicDescription | Standard Industrial Classification code and its name |
stateOfIncorporation | State or country code of incorporation |
fiscalYearEnd | End of the fiscal year as MMDD |
form | Form type, for example 10-K or 8-K/A |
filingDate | Date the filing was made, YYYY-MM-DD |
reportDate | Period of the report (10-K, 10-Q) or date of the event (8-K). null when the form has none |
accessionNumber | Unique id of the filing, for example 0000320193-26-000018 |
description | Description of the main document as given by the filer |
items | Items of an 8-K, for example ["2.02", "9.01"]. Empty for other forms |
primaryDocumentUrl | Link to the main document on sec.gov |
indexUrl | Link to the filing index with all documents and exhibits |
isXbrl | true when the filing has XBRL financial data |
sizeBytes | Size of the whole filing in bytes |
source, license | Attribution for the data |
matchedQuery, matchedDocumentUrl, matchedDocumentType | Only with fullTextQuery: the query, the document where it matched and that document's type |
{"cik": "320193","ticker": "AAPL","companyName": "Apple Inc.","exchange": "Nasdaq","sic": "3571","sicDescription": "Electronic Computers","stateOfIncorporation": "CA","fiscalYearEnd": "0926","form": "8-K","filingDate": "2026-07-30","reportDate": "2026-07-30","accessionNumber": "0000320193-26-000018","description": "8-K","items": ["2.02", "9.01"],"primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm","indexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-000018-index.htm","isXbrl": true,"sizeBytes": 417360,"source": "SEC EDGAR, U.S. Securities and Exchange Commission","license": "Public domain, U.S. federal government information"}
Monitoring and scheduling
Set onlyNew to true to use the actor for recurring monitoring. The actor then remembers which filings it has delivered for the same input, in a named key-value store in your Apify account (nightwave-state-sec-edgar-filings, one record per input). Each run returns and charges only filings that earlier runs did not deliver. The first run returns everything in the selection. A run without news finishes successfully with 0 rows.
A filing is identified by its accession number. The first run returns up to maxFilingsPerCompany filings per company from the last 365 days, and later runs return only filings made since.
onlyNew and maxResults are not part of the remembered input, so you can change them without starting over. Changing any other field starts a fresh state. To start over with the same input, delete the record in the key-value store.
Example: a daily run at 23:00 Swedish time on weekdays, after the EDGAR filing day has closed, that returns new filings for five large companies. In Apify Console, open Schedules, create a schedule with the cron expression 0 23 * * 1-5 and add this actor with the input below.
{"companies": ["AAPL", "MSFT", "NVDA", "AMZN", "GOOGL"],"formTypes": ["10-K", "10-Q", "8-K"],"onlyNew": true,"maxFilingsPerCompany": 10,"maxResults": 100}
The same schedule through the Apify API:
curl -X POST "https://api.apify.com/v2/schedules?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{"name": "daily-sec-edgar-filings", "cronExpression": "0 23 * * 1-5", "timezone": "Europe/Stockholm", "isEnabled": true, "isExclusive": true,"actions": [{"type": "RUN_ACTOR", "actorId": "nightwave-owner~sec-edgar-filings","runInput": {"contentType": "application/json; charset=utf-8", "body": "<the input above as a JSON string>"}}]}'
Connect a webhook or an integration (Slack, e-mail, Google Sheets) to the actor in Apify Console if you want the new rows sent somewhere when the run finishes.
Good to know
- Ownership reports are not included. Forms 3, 4 and 5 (insider holdings and trades), Form 144 (planned sales by insiders) and Schedules 13D and 13G (holdings above 5 %) are reports about individual people, so the actor leaves them out and rejects them in the input with a clear message. Insider trades are therefore not part of this actor.
- SEC's rules for automated access are followed. The SEC allows at most 10 requests per second and asks every automated client to declare who it is. This actor sends at most 8 requests per second through a simple queue, identifies itself with the User-Agent
Nightwave AB kontakt@nightwave.seand asks for gzip compressed responses. See Accessing EDGAR Data. A run with 200 companies takes well under a minute. - The SEC publishes continuously. New filings appear in EDGAR within minutes on business days, and the submissions API is updated shortly after. A filing made late in the day can show up in the next day's run. EDGAR dates filings in Eastern time, which is why the default end date is today in New York.
- Limits of the SEC full text search. It covers filings from 2001 onward. The SEC returns at most 10 000 matching documents per query, in pages of 100, so a very broad query over a long period is cut off; the run log then says so, and a narrower date range or fewer form types gets the rest. Several documents of one filing count separately in that limit.
- The actor lists the filings and links to them. It does not download or parse the documents, so a run stays small and fast.
- Requests are retried three times on network errors, rate limits (429) and server errors. A company that SEC does not know (404) gives a warning and the run moves on. A response in an unexpected format stops the run with a clear message instead of storing broken rows.
- The data describes what companies have filed. It is not investment advice.
Use cases
- Watch a list of tickers for new 8-K current reports (earnings releases, leadership changes, acquisitions) and get only the new ones each day with
onlyNew: true. - Collect the links to every 10-K and 10-Q for a set of companies as input to a document parser or an LLM pipeline.
- Filter 8-K filings by item number, for example
5.02(director or officer changes) or2.02(results of operations). - Build a filing calendar per company from
filingDate,reportDateandfiscalYearEnd. - Look up CIK, SIC code, exchange and state of incorporation for a list of tickers.
FAQ
How often is the data updated? Every run reads EDGAR live. New filings show up in EDGAR shortly after the SEC accepts them, also outside market hours.
What does 1 000 rows cost?
2 USD (0.002 USD per filing, event filing). Platform usage is included.
Can I schedule it?
Yes. Leave dateFrom and dateTo empty, set onlyNew: true and add the actor to an Apify schedule. See "Monitoring and scheduling" above.
Can I use the data commercially? Yes. EDGAR filings are U.S. federal government information in the public domain. The actor follows the SEC's fair access rules (declared user agent and a limited request rate).
Data source and license
The data comes from the SEC's public EDGAR APIs: https://www.sec.gov/files/company_tickers.json for tickers and https://data.sec.gov/submissions/CIK##########.json for the filings, and https://efts.sec.gov/LATEST/search-index for the full text search (the API behind EDGAR full text search), see EDGAR Application Programming Interfaces. No API key is needed. Information published by the SEC is U.S. federal government information and is not subject to copyright in the United States (17 U.S.C. § 105). The filed documents themselves are written by the companies; the actor only returns the index data (form, dates, description, links) that EDGAR publishes about them. Every row carries source and license so you can credit SEC EDGAR when you publish the data.
This actor is not affiliated with or endorsed by the U.S. Securities and Exchange Commission.
Pricing
Pay per result: 0.002 USD per row returned (event filing), which is 2 USD per 1 000 filings. Platform usage is included, so you pay only per result. maxResults caps how many rows a run returns, so you always know the highest possible cost.
Rows are delivered only after they have been charged. If you set a maximum cost per run (maxTotalChargeUsd), the run stops there and its status message says how many rows were delivered.
Contact
Built and maintained by Nightwave AB. Questions, bugs and feature requests: kontakt@nightwave.se
På svenska
Actorn hämtar bolagsfilings från SEC EDGAR, den amerikanska finansinspektionens (SEC) arkiv. Ange tickers eller CIK-nummer och få en rad per filing med formulär, datum, rapportperiod, 8-K-punkter, beskrivning och direkta länkar till dokumentet och filingens index på sec.gov.
- Formulär: 10-K, 10-Q, 8-K, 20-F, 6-K, S-1, DEF 14A och 13F-HR, med eller utan ändringar (/A). Standard är 10-K, 10-Q och 8-K under de senaste 365 dagarna.
- Upp till 200 bolag per körning. Ticker och CIK för samma bolag slås ihop, och okända bolag ger en varning i loggen.
- Ägarrapporter (formulär 3, 4, 5 och 144 samt Schedule 13D och 13G) handlar om enskilda personer och ingår inte. Insiderköp finns alltså inte i den här actorn.
- Actorn följer SEC:s regler för automatisk åtkomst: högst 8 anrop per sekund (SEC tillåter 10), User-Agent med företagsnamn och e-post och gzip-komprimering.
- SEC publicerar löpande under amerikanska arbetsdagar.
- Källa: SEC EDGAR, U.S. Securities and Exchange Commission. Amerikansk federal myndighetsinformation är fri att använda (public domain). Datan beskriver vad bolagen har lämnat in och är ingen investeringsrådgivning.
- Med
onlyNew: truelevereras bara filings som tidigare körningar med samma input inte har levererat, vilket passar för daglig bevakning (se "Monitoring and scheduling"). Tom input ger de senaste filingarna för Apple och Microsoft. - Pris: 0,002 USD per filing (2 USD per 1 000). Plattformsanvändningen ingår.
- Fulltextsökning: med
fullTextQuerysöker actorn i texten i alla filings sedan 2001, till exempel"cybersecurity incident"i 8-K. Citattecken ger exakt fras.companiesblir då ett valfritt filter och standardperioden är de senaste 7 dagarna. Varje rad får ävenmatchedQueryoch en länk till dokumentet där texten hittades. SEC returnerar högst 10 000 träffar per sökning. - Kontakt: kontakt@nightwave.se