# SEC EDGAR Filings Scraper – 10-K, 10-Q, 8-K (`sfoln/sec-edgar-filings`)

SEC EDGAR filings by ticker, CIK or company name: form, filing and report dates, 8-K items, accession number and document links, filtered by form and date, or by EDGAR full-text search. Optional XBRL snapshot: revenue, net income, EPS, assets. $2 per 1,000 filings.

- Family: Compliance & public records
- Categories: News, AI, Automation
- Store: https://apify.com/sfoln/sec-edgar-filings (Markdown: https://apify.com/sfoln/sec-edgar-filings.md)
- JSON: https://www.sfoln.com/actors/sec-edgar-filings.json
- MCP: https://mcp.apify.com?tools=sfoln/sec-edgar-filings
- REST (sync): POST https://api.apify.com/v2/actors/sfoln~sec-edgar-filings/run-sync-get-dataset-items
- REST (async): POST https://api.apify.com/v2/actors/sfoln~sec-edgar-filings/runs

Get SEC EDGAR filings for any company by ticker, CIK or name: one clean row per filing with the form (10-K, 10-Q, 8-K, S-1, DEF 14A, 13F, Form 4 and every other form), filing and report dates, accession number, 8-K item numbers with their titles, and links to the primary document and the filing index. Filter by form type and date range, or run an EDGAR full-text search across all filers. An optional company snapshot adds key XBRL financials (revenue, net income, EPS, assets, liabilities, cash, shares outstanding) for the latest annual and quarterly periods. Built for investors, analysts, compliance teams, journalists and AI agents.

## Price per delivered record

| Event | Price | Per 1,000 | Charged for |
| --- | --- | --- | --- |
| SEC filing (`filing`) | $0.002 | $2 / 1,000 | One SEC EDGAR filing row: form, filing and report dates, accession number, 8-K items and document links. |
| Company financial snapshot (`company-snapshot`), paid plans only | $0.004 | $4 / 1,000 | Key XBRL financials of one company (latest annual and quarterly revenue, income, EPS, assets, liabilities, equity, cash; shares outstanding). |

Pay-per-event, USD, billed by Apify; no platform usage charge. Only records with status `ok` are charged. Cap a run with `maxTotalChargeUsd`. Apify free plan: up to 10 per run.

## Run

```bash
curl -X POST "https://api.apify.com/v2/actors/sfoln~sec-edgar-filings/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"companies":["AAPL"],"forms":["10-K","10-Q","8-K"],"maxFilingsPerCompany":5}'
```

MCP client configuration:

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=sfoln/sec-edgar-filings"
    }
  }
}
```

Example prompt: List Apple's five most recent 10-K, 10-Q and 8-K filings from SEC EDGAR with links to the documents.

## Input

Companies by ticker, CIK or name (one dataset row per filing plus one summary per company), or a full-text search across all EDGAR filers.

| Field | Type | Default | Meaning |
| --- | --- | --- | --- |
| `companies` | array | — | Companies: Tickers (AAPL, BRK.B), CIKs (320193 or 0000320193) or company names (Apple), one per line. A ticker wins over a name; use the CIK for an exact match. Leave empty to run only the full-text search below. Accounts on the Apify free plan can process up to 10 companies per run and 20 filings per company. |
| `searchQuery` | string | — | Full-text search: Optional EDGAR full-text search (filings since 2001; put exact phrases in double quotes, e.g. "artificial intelligence"). With companies: only their filings that match. Without companies: matching filings of every filer. |
| `forms` | array | — | Form types: Only these forms, e.g. 10-K, 10-Q, 8-K, S-1, DEF 14A, 13F-HR, 4, SC 13D (case, spaces and hyphens do not matter: 10k means 10-K). Empty: every form. |
| `includeAmendments` | boolean | `true` | Include amendments: Also return amendments of the selected forms (10-K/A for 10-K, …). |
| `dateFrom` | string | — | Filed from: Earliest filing date: YYYY-MM-DD, or a span back from today such as "30 days", "6 months" or "2 years". |
| `dateTo` | string | — | Filed to: Latest filing date (YYYY-MM-DD or a span such as "7 days"). Empty: today. |
| `maxFilingsPerCompany` | integer | `20` | Max filings per company: Filings returned per company, newest first (for a search without companies: filings returned in total). |
| `includeCompanySnapshot` | boolean | `false` | Company financial snapshot (paid add-on): Add key XBRL financials to each company's summary record: revenue, gross profit, operating and net income, EPS, assets, liabilities, equity and cash for the latest annual and quarterly periods, plus shares outstanding. Charged once per company (company-snapshot), only when the company reports XBRL financials. Paid Apify plans only. |
| `maxCompanies` | integer | `100` | Max companies: Safety cap on companies processed in this run; the rest are ignored and counted as inputItemsDropped in the OUTPUT record. |
| `concurrency` | integer | `3` | Concurrency: Companies processed in parallel. All requests share SEC's rate limit (8 requests per second). |
| `includeRaw` | boolean | `false` | Include raw upstream data: Attach the filing as EDGAR lists it (submissions columns or the search hit) to each filing row. |

Example input:

```json
{
  "companies": [
    "AAPL"
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "maxFilingsPerCompany": 5
}
```

## Output

One record per input item with `status` (`ok` is charged; `not_found`, `error`, `skipped_*` are free) and `charged`. The run stores an `OUTPUT` summary record.

| Field | Type | Meaning |
| --- | --- | --- |
| `input` | string | object | Input: The company (or search query) this record belongs to, as entered. |
| `recordType` | string | Record type: filing (one per delivered filing, charged) \| summary (one per input, not charged). |
| `position` | integer | Position: 1-based position of the filing within its input (newest first). |
| `cik` | integer | null | CIK: SEC Central Index Key of the company. |
| `companyName` | string | null | Company |
| `ticker` | string | null | Ticker |
| `form` | string | Form |
| `filingDate` | string | null | Filed: YYYY-MM-DD. |
| `reportDate` | string | null | Period of report: YYYY-MM-DD (end of the reporting period or event date). |
| `acceptanceDateTime` | string | null | Accepted at: EDGAR acceptance timestamp (null for search results). |
| `accessionNumber` | string | Accession number |
| `fileNumber` | string | null | SEC file number |
| `filmNumber` | string | null | Film number |
| `items` | array | 8-K items: Item numbers of an 8-K, e.g. 2.02, 9.01. |
| `itemDescriptions` | array | 8-K item titles |
| `size` | integer | null | Size (bytes) |
| `isXBRL` | boolean | null | XBRL |
| `isInlineXBRL` | boolean | null | Inline XBRL |
| `documentName` | string | null | Document: Primary document (or, for search results, the document that matched). |
| `documentDescription` | string | null | Document description |
| `documentUrl` | string | null | Document URL |
| `filingIndexUrl` | string | Filing index URL: EDGAR index page listing every document of the filing. |
| `query` | string | Query: Summary records: the company as entered. |
| `searchQuery` | string | null | Search query: Summary of a full-text search without companies. |
| `totalHits` | integer | null | Search hits: Documents EDGAR full-text search matched (several can belong to one filing). |
| `found` | boolean | Found: false when no SEC registrant matches the input. |
| `matchedBy` | string | Matched by: cik \| ticker \| name \| name-search (EDGAR company search). |
| `tickers` | array | Tickers |
| `exchanges` | array | Exchanges |
| `sic` | string | null | SIC code |
| `sicDescription` | string | null | Industry (SIC) |
| `entityType` | string | null | Entity type |
| `filerCategory` | string | null | Filer category |
| `stateOfIncorporation` | string | null | State of incorporation |
| `fiscalYearEnd` | string | null | Fiscal year end: MM-DD. |
| `ein` | string | null | EIN |
| `lei` | string | null | LEI |
| `phone` | string | null | Phone |
| `website` | string | null | Website |
| `businessAddress` | object | null | Business address: { street1, street2, city, stateOrCountry, zipCode, country } |
| `mailingAddress` | object | null | Mailing address |
| `formerNames` | array | Former names: [{ name, from, to }] |
| `companySnapshot` | object | null | Company snapshot: Add-on: { cik, entityName, taxonomy, sharesOutstanding, sharesOutstandingAsOf, publicFloat, publicFloatAsOf, latestAnnual, latestQuarter }; each period: { periodType, fiscalYear, fiscalPeriod, periodStart, periodEnd, form, filed, accessionNumber, currency, revenue, grossProfit, operatingIncome, netIncome, epsBasic, epsDiluted, assets, liabilities, stockholdersEquity, cash, sourceTags }. |
| `resultsDelivered` | integer | Filings delivered: Summary records: filing rows delivered (and charged) for this input. |
| `stopReason` | string | Stop reason: limit \| free_plan \| end \| budget \| aborted \| deadline \| empty_pages \| max_pages \| error |
| `status` | string | Status: ok \| not_found \| error \| skipped_budget \| skipped_free_plan \| skipped_unmetered |
| `charged` | boolean | Charged: Whether this record incurred a pay-per-event charge. |
| `chargedEvent` | string | Charged event: Pay-per-event event charged for this record (present only when charged). |
| `chargedCount` | integer | Events charged: Events actually charged when the charge came back short (present only then). |
| `source` | string | Source: sec-edgar |
| `fetchedAt` | string | Fetched at: ISO timestamp. |
| `error` | object | Error: { code, message, provider?, status? } when status is not ok. Runtime codes: budget_exhausted, free_plan_limit, unmetered, aborted, charge_failed, record_too_large, invalid_record, dataset_push_failed; upstream codes: auth, rate_limit, timeout, network, server, client, invalid_response, not_found. |
| `warnings` | array | Warnings |
| `raw` | object | Raw: The filing as EDGAR lists it (only with includeRaw). |

Example record:

```json
[
  {
    "input": "AAPL",
    "recordType": "filing",
    "position": 1,
    "cik": 320193,
    "companyName": "Apple Inc.",
    "ticker": "AAPL",
    "form": "10-K",
    "filingDate": "2025-10-31",
    "reportDate": "2025-09-27",
    "acceptanceDateTime": "2025-10-31T14:01:26.000Z",
    "accessionNumber": "0000320193-25-000079",
    "fileNumber": "001-36743",
    "filmNumber": "251437791",
    "items": [],
    "itemDescriptions": [],
    "size": 9392337,
    "isXBRL": true,
    "isInlineXBRL": true,
    "documentName": "aapl-20250927.htm",
    "documentDescription": "10-K",
    "documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm",
    "filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.htm",
    "status": "ok",
    "charged": true,
    "chargedEvent": "filing",
    "source": "sec-edgar",
    "fetchedAt": "2026-10-14T10:00:00.000Z"
  },
  {
    "input": "AAPL",
    "query": "AAPL",
    "cik": 320193,
    "companyName": "Apple Inc.",
    "ticker": "AAPL",
    "tickers": [
      "AAPL"
    ],
    "exchanges": [
      "Nasdaq"
    ],
    "matchedBy": "ticker",
    "sic": "3571",
    "sicDescription": "Electronic Computers",
    "entityType": "operating",
    "filerCategory": "Large accelerated filer",
    "stateOfIncorporation": "CA",
    "fiscalYearEnd": "09-26",
    "ein": "942404110",
    "lei": null,
    "phone": "(408) 996-1010",
    "website": null,
    "businessAddress": {
      "street1": "ONE APPLE PARK WAY",
      "street2": null,
      "city": "CUPERTINO",
      "stateOrCountry": "CA",
      "zipCode": "95014",
      "country": null
    },
    "mailingAddress": {
      "street1": "ONE APPLE PARK WAY",
      "street2": null,
      "city": "CUPERTINO",
      "stateOrCountry": "CA",
      "zipCode": "95014",
      "country": null
    },
    "formerNames": [
      {
        "name": "APPLE INC",
        "from": "2007-01-10",
        "to": "2019-08-05"
      }
    ],
    "companySnapshot": {
      "cik": 320193,
      "entityName": "Apple Inc.",
      "taxonomy": "us-gaap",
      "sharesOutstanding": 14594180000,
      "sharesOutstandingAsOf": "2026-07-17",
      "publicFloat": 3253431000000,
      "publicFloatAsOf": "2025-03-28",
      "latestAnnual": {
        "periodType": "annual",
        "fiscalYear": 2025,
        "fiscalPeriod": "FY",
        "periodStart": "2024-09-29",
        "periodEnd": "2025-09-27",
        "form": "10-K",
        "filed": "2025-10-31",
        "accessionNumber": "0000320193-25-000079",
        "currency": "USD",
        "revenue": 416161000000,
        "grossProfit": 195201000000,
        "operatingIncome": 133050000000,
        "netIncome": 112010000000,
        "epsBasic": 7.49,
        "epsDiluted": 7.46,
        "assets": 359241000000,
        "liabilities": 285508000000,
        "stockholdersEquity": 73733000000,
        "cash": 35934000000,
        "sourceTags": {
          "revenue": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
          "netIncome": "us-gaap:NetIncomeLoss"
        }
      },
      "latestQuarter": {
        "periodType": "quarterly",
        "fiscalYear": 2026,
        "fiscalPeriod": "Q3",
        "periodStart": "2026-03-29",
        "periodEnd": "2026-06-27",
        "form": "10-Q",
        "filed": "2026-07-31",
        "accessionNumber": "0000320193-26-000020",
        "currency": "USD",
        "revenue": 109417000000,
        "grossProfit": 54770000000,
        "operatingIncome": 35695000000,
        "netIncome": 29789000000,
        "epsBasic": 2.03,
        "epsDiluted": 2.02,
        "assets": 383266000000,
        "liabilities": 275746000000,
        "stockholdersEquity": 107520000000,
        "cash": 39544000000,
        "sourceTags": {
          "revenue": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
          "netIncome": "us-gaap:NetIncomeLoss"
        }
      }
    },
    "recordType": "summary",
    "resultsDelivered": 20,
    "stopReason": "limit",
    "status": "ok",
    "charged": false,
    "source": "sec-edgar",
    "fetchedAt": "2026-10-14T10:00:00.000Z"
  }
]
```

## FAQ

**Which companies and forms are covered?**

Every EDGAR filer (listed companies, funds, individuals filing Forms 3/4/5) and every form type, from the company's full filing history. Tickers come from SEC's ticker list; companies without a ticker can be found by CIK or name.

**What is in the company snapshot?**

XBRL figures from SEC's company facts: revenue, gross profit, operating income, net income, basic and diluted EPS, assets, liabilities, equity and cash for the latest annual (10-K, 20-F, 40-F) and quarterly (10-Q) periods, plus shares outstanding and public float, each with the XBRL tag it came from.


## Related

- [SEC Insider Trading Tracker – Form 4](https://www.sfoln.com/actors/sec-insider-trading.md) (`sfoln/sec-insider-trading`)
- [SEC Form D Startup Funding Leads](https://www.sfoln.com/actors/sec-form-d-leads.md) (`sfoln/sec-form-d-leads`)
- [Website Contact Details Scraper](https://www.sfoln.com/actors/company-contacts-finder.md) (`sfoln/company-contacts-finder`)
- [LinkedIn Company Details Scraper (No Login)](https://www.sfoln.com/actors/linkedin-company-lookup.md) (`sfoln/linkedin-company-lookup`)

Publisher: SFOLN LLC, contact@sfoln.com. Catalogue: https://www.sfoln.com/catalog.json. Agent guide: https://www.sfoln.com/agents.md.
