SEC EDGAR Filings Scraper: 10-K, 10-Q, 8-K, Form 4
Pricing
from $9.23 / 1,000 results
SEC EDGAR Filings Scraper: 10-K, 10-Q, 8-K, Form 4
Scrape SEC EDGAR filings by ticker, CIK, company name or full-text search. Get 10-K, 10-Q, 8-K, Form 4 and every form with filing dates, accession numbers, item codes, direct document links, XBRL financials and insider transactions. No API key. Export JSON, CSV, Excel.
Pricing
from $9.23 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
SEC EDGAR Filings Scraper: 10-K, 10-Q, 8-K, Form 4
The most complete SEC EDGAR scraper on Apify. Pull US SEC filings data by ticker, CIK, company name, or EDGAR full-text search, with no API key and no rate-limit headaches. Get 10-K, 10-Q, 8-K, Form 4 and every other form, each with filing dates, accession numbers, item codes, direct sec.gov document links, the full company profile, optional XBRL financials, and parsed insider transactions. Export to JSON, CSV, or Excel.
Here is one real result, with every field the actor returns:
{"companyName": "Apple Inc.","ticker": "AAPL","cik": "0000320193","entityType": "operating","filerCategory": "Large accelerated filer","stateOfIncorporation": "CA","stateOfIncorporationDescription": "CA","fiscalYearEnd": "0926","ein": "942404110","phone": "(408) 996-1010","website": null,"investorWebsite": null,"businessAddress": {"street1": "ONE APPLE PARK WAY","street2": null,"city": "CUPERTINO","stateOrCountry": "CA","zipCode": "95014"},"mailingAddress": {"street1": "ONE APPLE PARK WAY","street2": null,"city": "CUPERTINO","stateOrCountry": "CA","zipCode": "95014"},"formerNames": [{ "name": "APPLE INC", "from": "2007-01-10", "to": "2019-08-05" },{ "name": "APPLE COMPUTER INC", "from": "1994-01-26", "to": "2007-01-04" }],"form": "10-K","filingDate": "2025-11-01","reportDate": "2025-09-27","acceptanceDateTime": "2025-11-01T06:01:00.000Z","accessionNumber": "0000320193-25-000073","primaryDocument": "aapl-20250927.htm","primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000073/aapl-20250927.htm","primaryDocDescription": "10-K","fileNumber": "001-36743","filmNumber": "251187456","items": null,"act": "34","size": 8130787,"isXBRL": true,"isInlineXBRL": true,"sicDescription": "Electronic Computers","sicCode": "3571","exchanges": ["Nasdaq"],"tickers": ["AAPL"],"filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000073/0000320193-25-000073-index.htm","financials": {"entityName": "Apple Inc.","revenue": { "value": 391035000000, "unit": "USD", "end": "2024-09-28", "fy": 2024, "fp": "FY", "form": "10-K" },"netIncome": { "value": 93736000000, "unit": "USD", "end": "2024-09-28", "fy": 2024, "fp": "FY", "form": "10-K" },"totalAssets": { "value": 364980000000, "unit": "USD", "end": "2024-09-28", "fy": 2024, "fp": "FY", "form": "10-K" },"stockholdersEquity": { "value": 56950000000, "unit": "USD", "end": "2024-09-28", "fy": 2024, "fp": "FY", "form": "10-K" },"epsDiluted": { "value": 6.08, "unit": "USD/shares", "end": "2024-09-28", "fy": 2024, "fp": "FY", "form": "10-K" }},"observedAt": "2026-09-04T14:40:59.443Z","error": null}
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Why this SEC EDGAR scraper
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
This is a SEC filings scraper and company filings API for the US Securities and Exchange Commission's EDGAR system. Give it stock tickers, CIK numbers, a company name substring, or a full-text search query, and it returns one clean record per filing, ready for research, compliance, monitoring, or a data pipeline.
Two ways to search:
- By company. Pass
tickers,ciks, and/or acompanyNamesubstring. The actor resolves each to its SEC CIK, reads that company's full EDGAR submissions history, applies your form-type and date filters, and writes one normalized record per filing. - By full-text search. Pass a
fullTextQuery(words or exact "phrases", 2001 to present) to find matching filings across every EDGAR filer, just like the EDGAR full-text search, narrowed by form type, date range, and optional CIKs.
Every filing record carries the full company profile (business and mailing addresses, EIN, phone, SIC code and description, exchanges, former names) alongside the filing metadata (form, filing and report dates, accession number, primary document URL and filing index URL, file and film numbers, 8-K item codes, size, and XBRL flags).
Optional paid add-ons enrich each record:
- Insider transactions (
withDetails): for ownership filings (Form 3, 4, 5), parse the ownership document into insider trades (reporting owner, role, security, shares, price, date, shares owned after) plus an aggregate bought/sold/net signal. - Company financials (
withFinancials): attach the company's latest reported XBRL financials (revenue, gross profit, operating and net income, assets, liabilities, equity, cash, long-term debt, EPS, shares outstanding, public float), each with its unit, period-end date, fiscal year, and source form.
No API key, no login, no proxy. The SEC asks clients to identify themselves and keep request rates modest, which the actor handles automatically. Data covers US SEC EDGAR filings.
Why this SEC EDGAR scraper
A strict superset of the other SEC / EDGAR filing scrapers on Apify: every input they accept, every output they return, plus more depth.
| Capability | This actor | Typical SEC EDGAR actors |
|---|---|---|
| Lookup by ticker | Yes | Yes |
| Lookup by CIK | Yes | Yes |
| Lookup by company name | Yes | Some |
| Full-text search (2001+, phrases and boolean) | Yes | Some |
| Form-type filter (10-K, 10-Q, 8-K, S-1, 13F, 13D, etc.) | Yes, any form | Usually a fixed list |
| Date-range filter | Yes | Some |
| Direct document + filing index URLs | Yes | Usually |
| 8-K item codes | Yes | Rarely |
| Full company profile (address, EIN, SIC, exchanges, former names) | Yes | Rarely |
| File number and film number | Yes | Rarely |
| XBRL financials attached | Yes (add-on) | Some |
| Parsed insider transactions + buy/sell signal | Yes (add-on) | Rarely |
| No API key or login | Yes | Varies |
| Export JSON, CSV, Excel | Yes | Varies |
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 of the most recent 10-K, 10-Q, and 8-K filings for Apple and Microsoft.
{"tickers": ["AAPL", "MSFT"],"formTypes": ["10-K", "10-Q", "8-K"],"maxFilings": 10}
Full-text search example (every 8-K that mentions "artificial intelligence" in early May 2024):
{"fullTextQuery": "\"artificial intelligence\"","formTypes": ["8-K"],"dateFrom": "2024-05-01","dateTo": "2024-05-15","maxFilings": 50}
Provide companies by ticker, by CIK, and/or by a company name substring, or use a full-text query. Leave formTypes empty to keep every form.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
tickers | string[] | one of these four | ["AAPL","MSFT"] | Stock ticker symbols to look up, for example AAPL, MSFT. Each is resolved to its SEC CIK. |
ciks | string[] | one of these four | (empty) | SEC Central Index Key numbers. Zero padding is optional, for example 320193 or 0000320193. |
companyName | string | one of these four | (empty) | Company name substring. Matches every company in the SEC ticker directory whose name contains this text. |
fullTextQuery | string | one of these four | (empty) | Full-text search across all EDGAR filers (2001 to present). Supports exact "phrases" and boolean operators. Combined with the form, date, and CIK filters. |
formTypes | string[] | no | ["10-K","10-Q","8-K"] | Keep only filings whose form matches one of these. Use 10-K/A for amendments. Empty keeps all forms. |
dateFrom | string | no | (empty) | Keep filings filed on or after this date (YYYY-MM-DD). |
dateTo | string | no | (empty) | Keep filings filed on or before this date (YYYY-MM-DD). |
withDetails | boolean | no | false | Paid add-on. For ownership filings (Form 3, 4, 5), parse insider transactions. |
withFinancials | boolean | no | false | Paid add-on. Attach the company's latest XBRL financials to each record. |
maxFilings | integer | no | 10 | Maximum filing records to collect across all companies. |
maxPerCompany | integer | no | (none) | Cap filings per company. Useful when scraping many companies in one run. |
At least one of tickers, ciks, companyName, or fullTextQuery is required. Filters combine with logical AND.
Output reference
One dataset item per filing. Types: string, integer, number, boolean, string[], object, object[], or null when the source value is absent. Fields marked (insider) appear only for Form 3/4/5 filings when withDetails is on. The financials field appears when withFinancials is on.
| Field | Type | Description |
|---|---|---|
companyName | string | Company legal name. |
ticker | string | Ticker used to resolve the company, or null when resolved by CIK/name/query. |
cik | string | Zero-padded SEC Central Index Key. |
entityType | string | SEC entity type, for example operating. |
filerCategory | string | Filer category, for example Large accelerated filer. |
stateOfIncorporation | string | State or country of incorporation code. |
stateOfIncorporationDescription | string | State or country of incorporation description. |
fiscalYearEnd | string | Fiscal year end as MMDD. |
ein | string | Employer Identification Number. |
phone | string | Company phone number. |
website | string | Company website, or null. |
investorWebsite | string | Investor relations website, or null. |
businessAddress | object | Business address (street1, street2, city, stateOrCountry, zipCode). |
mailingAddress | object | Mailing address (same shape). |
formerNames | object[] | Former company names, each with name, from, to. |
form | string | Filing form type, for example 10-K, 10-Q, 8-K, 4. |
filingDate | string | Date the filing was filed (YYYY-MM-DD). |
reportDate | string | Report or period-of-report date (YYYY-MM-DD). |
acceptanceDateTime | string | ISO timestamp the SEC accepted the filing. |
accessionNumber | string | SEC accession number. |
primaryDocument | string | Primary document filename. |
primaryDocumentUrl | string | Direct URL to the primary document. |
primaryDocDescription | string | Primary document description. |
fileNumber | string | SEC file number. |
filmNumber | string | SEC film (DCN) number. |
items | string | 8-K item codes, comma separated. |
act | string | Securities act reference, for example 34. |
size | integer | Filing size in bytes. |
isXBRL | boolean | Whether the filing includes XBRL. |
isInlineXBRL | boolean | Whether the filing includes inline XBRL. |
sicDescription | string | Standard Industrial Classification description. |
sicCode | string | SIC code. |
exchanges | string[] | Exchanges the company trades on. |
tickers | string[] | All tickers reported for the company. |
filingUrl | string | URL of the EDGAR filing index page. |
matchedQuery | string | The full-text query this filing matched (full-text mode only). |
financials | object | Latest XBRL financials when withFinancials is on. Each metric is an object with value, unit, end, fy, fp, form. Keys: revenue, costOfRevenue, grossProfit, operatingIncome, netIncome, totalAssets, totalLiabilities, stockholdersEquity, cashAndEquivalents, longTermDebt, epsBasic, epsDiluted, sharesOutstanding, publicFloat. |
insiderTransactions | object[] | Parsed insider trades (insider). Each has reporting owner, role, security, dates, code, shares, price, shares owned after. |
insiderTransactionCount | integer | Number of parsed insider transactions (insider). |
insiderTotalBoughtValue | number | Total dollar value of acquisitions (insider). |
insiderTotalSoldValue | number | Total dollar value of dispositions (insider). |
insiderNetValue | number | Net bought minus sold value (insider). |
insiderSignal | string | Aggregate direction: buy, sell, or neutral (insider). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"tickers": ["AAPL"], "formTypes": ["10-K"], "withFinancials": true, "maxFilings": 1}):
{"companyName": "Apple Inc.","ticker": "AAPL","cik": "0000320193","filerCategory": "Large accelerated filer","form": "10-K","filingDate": "2025-11-01","reportDate": "2025-09-27","accessionNumber": "0000320193-25-000073","primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000073/aapl-20250927.htm","fileNumber": "001-36743","filmNumber": "251187456","sicDescription": "Electronic Computers","sicCode": "3571","exchanges": ["Nasdaq"],"financials": {"revenue": { "value": 391035000000, "unit": "USD", "end": "2024-09-28", "fy": 2024, "fp": "FY", "form": "10-K" },"netIncome": { "value": 93736000000, "unit": "USD", "end": "2024-09-28", "fy": 2024, "fp": "FY", "form": "10-K" }},"filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000073/0000320193-25-000073-index.htm","observedAt": "2026-09-04T14:40:59.443Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sec-edgar-filings-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"tickers":["AAPL"],"formTypes":["10-K"],"maxFilings":5}'
Start a run asynchronously (insider transactions on Tesla Form 4s):
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sec-edgar-filings-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"tickers":["TSLA"],"formTypes":["4"],"withDetails":true,"maxFilings":50}'
Apify CLI:
apify call scrapers_lat/sec-edgar-filings-scraper \--input '{"fullTextQuery":"\"going concern\"","formTypes":["10-K"],"maxFilings":25}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per filing record returned (
resultevent). See the pricing tab for the current per-result price. - Add-ons billed only when they deliver. The
detailsevent is charged on a row only when an enrichment genuinely succeeds (parsed insider transactions whenwithDetailsis on, or attached XBRL financials whenwithFinancialsis on), and always after the base record is delivered. At most onedetailscharge per row. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run, base fields only. Upgrade for higher
maxFilingsand the paid add-ons. - Source politeness. The SEC rate-limits and requests client identification; the actor respects that automatically, so very large multi-company pulls run at a steady pace.
FAQ and troubleshooting
Do I need an SEC or API key? No. This actor reads public SEC EDGAR data directly. There is no key, login, or proxy to configure.
How does full-text search work?
Set fullTextQuery to your words or an exact "phrase". The actor searches the full text of EDGAR filings from 2001 to today across all filers, then applies your formTypes, dateFrom/dateTo, and optional ciks filters. Each returned record still carries the full company profile.
How do I get insider trades (Form 4)?
Set formTypes to ["4"] (or include 3 and 5) and turn withDetails on. The actor parses each ownership document into insiderTransactions and an aggregate insiderSignal.
How do I get financials (revenue, net income, EPS)?
Turn withFinancials on. Each record gains a financials object with the company's latest reported XBRL figures, each labeled with its period end, fiscal year, and source form.
Which forms are supported?
All of them. 10-K, 10-Q, 8-K, S-1, 4, 13F-HR, SC 13D, SC 13G, DEF 14A, and any other EDGAR form. Leave formTypes empty to keep everything, or list the forms you want.
A run returned 0 records. Why?
The company had no filings matching your formTypes and date range, the ticker/CIK did not resolve, or the full-text query had no matches. Loosen filters or verify the identifier. Zero-result runs are not charged.
Why is a field null?
The SEC submission did not include that value. Missing source values are returned as null, never invented.
Is this an official SEC tool? No. This actor is independent and has no affiliation with the SEC. It reads only data that is publicly available through SEC EDGAR. Use it in accordance with the SEC EDGAR access policies.
Related scrapers
- USPTO Trademark Search Scraper: US trademark registrations and applications.
- Crunchbase Company Scraper: company profiles, funding and people.
- OFAC Sanctions List Scraper: US Treasury OFAC SDN and Consolidated lists.
- USAspending Federal Award Scraper: US federal prime awards.
- openFDA Food Recall & Enforcement Scraper: US FDA food recalls and enforcement reports.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the SEC. Accesses only publicly available SEC EDGAR data. Use in accordance with the SEC EDGAR access policies.
