# SEC EDGAR Scraper (`sheshinmcfly/sec-edgar-scraper`) Actor

Extract SEC EDGAR data for US public companies by ticker or CIK: filings with links, Form 4 insider transactions (who bought or sold, shares, price) and key XBRL financials. Plus 13F institutional holdings by fund name — see what hedge funds own. No API key needed.

- **URL**: https://apify.com/sheshinmcfly/sec-edgar-scraper.md
- **Developed by:** [Sheshinmcfly](https://apify.com/sheshinmcfly) (community)
- **Categories:** News, Lead generation
- **Stats:** 1 total users, 0 monthly users, 96.9% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## SEC EDGAR Scraper

Pull **filings, insider trades, financials and 13F fund holdings straight from the official SEC EDGAR database** — no login, no API key, no paid data provider. Give it a list of company tickers (or CIKs) and/or institutional fund names, and get clean structured JSON: recent filing history with document links, Form 4 insider transactions (who bought or sold, how many shares and at what price), key financial figures from XBRL, and the latest 13F holdings of any hedge fund or institutional manager. Built for investors, analysts, journalists and fintech apps that want primary-source data.

### What data you get

**Filings** — recent filing history per company: form type (10-K, 10-Q, 8-K, 4, …), filing date, report date, accession number, description and a direct link to the document.

**Insider transactions** — parsed from Form 4 filings: insider name, relationship (director / officer + title), transaction date, transaction code (P = buy, S = sell, G = gift, A = grant, …), shares, price per share, shares owned afterward, and a link to the filing.

**Financials** — key figures from XBRL company facts, latest annual (10-K) values: revenue, net income, total assets, total liabilities, stockholders' equity, cash, diluted EPS and shares outstanding — each with the period end, fiscal year and source form.

**13F holdings** — the latest 13F-HR portfolio of any institutional manager (by fund name or CIK): report period, total portfolio value, holdings count, and each holding's issuer, CUSIP, market value, shares and put/call. See exactly what Berkshire, Scion or any hedge fund owns.

### Agent-ready (x402)

> **Agent-ready via x402:** AI agents can run this actor directly with USDC on Base — no Apify account needed. See [x402 protocol docs](https://docs.apify.com/platform/integrations/x402).

### How to use

1. Open the Actor and enter one or more **Tickers or CIKs** (e.g. `AAPL`, `MSFT`, `NVDA`).
2. Under **Data to extract**, pick **Filings**, **Insider transactions**, **Financials**, or any combination.
3. (Optional) Adjust how many filings / Form 4s to pull per company.
4. Click **Start**. Results land in the dataset — export to JSON, CSV or Excel, or pull via the API.

### Use cases

- **Follow the insiders** — track Form 4 buys and sells for the companies you watch.
- **Track the hedge funds** — pull 13F holdings to see what Berkshire, Scion or any manager bought and sold.
- **Fundamental research** — pull revenue, net income, assets and EPS from the source, not a third party.
- **Filing monitoring** — watch for new 10-K, 10-Q and 8-K filings across a watchlist.
- **Journalism & due diligence** — verify figures and disclosures against the official record.
- **Fintech & dashboards** — feed primary SEC data into your own product without scraping EDGAR yourself.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `tickers` | array | Company ticker symbols or CIK numbers (for filings / insider / financials). |
| `institutions` | array | Fund manager names or CIKs (e.g. `Berkshire Hathaway`) for latest 13F holdings. |
| `dataTypes` | array | Any of `filings`, `insiderTransactions`, `financials`. Default `["filings"]`. |
| `maxFilings` | integer | Recent filings per company (default 40). |
| `maxInsiderFilings` | integer | Recent Form 4 filings to parse per company (default 15). |
| `proxyConfiguration` | object | Apify proxy settings. Datacenter works. |

### Output

Each dataset item is one company. Example (abridged):

```json
{
  "ticker": "AAPL",
  "cik": "0000320193",
  "name": "Apple Inc.",
  "filings": [
    { "form": "8-K", "filingDate": "2026-05-01", "accessionNumber": "...", "url": "https://www.sec.gov/Archives/edgar/data/320193/..." }
  ],
  "insiderTransactions": [
    { "ownerName": "LEVINSON ARTHUR D", "relationship": "Director", "transactionDate": "2026-05-27", "transactionCode": "S", "shares": 50000, "pricePerShare": 311.02, "sharesOwnedAfter": 3764576 }
  ],
  "financials": {
    "revenue": { "value": 416161000000, "periodEnd": "2025-09-27", "fiscalYear": 2025, "form": "10-K" },
    "epsDiluted": { "value": 7.46, "unit": "USD/shares", "fiscalYear": 2025 }
  },
  "scrapedAt": "2026-06-15T00:00:00.000Z"
}
```

Institution (13F) records look like:

```json
{
  "recordType": "institution",
  "query": "Berkshire Hathaway",
  "cik": "0001067983",
  "name": "BERKSHIRE HATHAWAY INC",
  "reportPeriod": "2026-03-31",
  "holdingsCount": 90,
  "totalValue": 263095703570,
  "holdings": [
    { "issuer": "APPLE INC", "cusip": "037833100", "value": 66800000000, "shares": 300000000, "putCall": null }
  ]
}
```

### Performance & cost

The Actor uses SEC's official JSON/XML endpoints — no headless browser — and respects SEC's fair-access rate limit with a built-in identifying User-Agent and request pacing. Filings and financials are one request each; insider transactions fetch one Form 4 per filing, so pulling many insider filings per company takes proportionally longer.

### Pricing

This Actor uses **pay per result**: you are charged only for the companies it returns.

| What you pay for | Price |
|------------------|-------|
| Per result (one company) | $0.005 |

No monthly rental and no platform fees beyond your Apify plan.

### Related actors

Part of a financial-data toolkit — combine SEC filings with prices, calendars and dividends:

- **[Yahoo Finance Scraper](https://apify.com/sheshinmcfly/yahoo-finance-scraper)** — real-time quotes, fundamentals and historical OHLCV by ticker.
- **[Dividend & ETF Scraper](https://apify.com/sheshinmcfly/dividend-etf-scraper)** — full dividend history and ETF holdings, expense ratio and yield.
- **[Financial Calendar Scraper](https://apify.com/sheshinmcfly/financial-calendar-scraper)** — earnings, dividends, splits and IPO calendars from Nasdaq.
- **[FinViz Stock Screener](https://apify.com/sheshinmcfly/finviz-stock-screener)** — top gainers, losers, valuation, technicals and ~50 fields per stock.
- **[Zacks Rank Stock Scraper](https://apify.com/sheshinmcfly/zacks-rank-scraper)** — Zacks Rank (1-5 rating) plus a full quote snapshot for any US stock ticker.
- **[Congressional Stock Trades Scraper](https://apify.com/sheshinmcfly/congress-stock-trades-scraper)** — every House member stock trade disclosed under the STOCK Act, with disclosure-delay signals.

### Keywords

SEC EDGAR, SEC filings, insider trading, Form 4, 13F holdings, hedge fund holdings, 10-K, 10-Q, 8-K, XBRL financials, insider transactions, company filings, EDGAR scraper, financial statements, SEC data.

### FAQ

**Does this require an API key or SEC login?**
No. SEC EDGAR is a public database. The Actor uses only a compliant User-Agent header as required by SEC's fair-access policy — no credentials, no third-party data provider.

**What's the difference between tickers and institutions inputs?**
`tickers` pulls company-centric data (filings, insider Form 4s, XBRL financials). `institutions` pulls 13F fund holdings — what a hedge fund or asset manager owns. You can use both in the same run.

**How current is the data?**
The Actor reads directly from EDGAR — as fresh as the SEC database, typically within 1 business day of a filing. 13F holdings are reported quarterly (45-day lag after quarter end by regulation).

**Can I get historical financials, not just the latest?**
The current `financials` block returns the most recent annual (10-K) value per metric. For full time series, use the raw XBRL companyfacts endpoint (`data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json`) which the Actor already calls internally.

### Changelog

| Version | Date | Changes |
|---------|------|---------|
| 0.2 | 2026-07-02 | Inter-ticker sleep for SEC fair-access; additionalProperties:false on input schema; FAQ + x402 note |
| 0.1 | 2026-06-15 | Initial release — filings, insider Form 4, XBRL financials, 13F institutional holdings |

### Disclaimer

This Actor collects publicly available data from the U.S. Securities and Exchange Commission's EDGAR system for informational purposes only. It requires no login and accesses no private or personal data beyond what issuers publicly disclose. The output is **not** financial advice — always verify figures against the official filings before making decisions. The Actor respects SEC's fair-access policy (identifying User-Agent and rate limiting).

# Actor input Schema

## `tickers` (type: `array`):

Company ticker symbols (e.g. AAPL, MSFT) or CIK numbers, for filings / insider transactions / financials. Tickers are resolved to CIKs automatically.

## `institutions` (type: `array`):

Fund / institutional manager names or CIKs (e.g. Berkshire Hathaway, Scion Asset Management) to pull their latest 13F-HR holdings. Leave empty if you only want company data.

## `dataTypes` (type: `array`):

Which data blocks to include per company.

## `maxFilings` (type: `integer`):

How many recent filings to return (when Filings is selected).

## `maxInsiderFilings` (type: `integer`):

How many recent Form 4 filings to parse per company (when Insider transactions is selected). Higher = more requests per company.

## `proxyConfiguration` (type: `object`):

Apify datacenter proxies work for SEC EDGAR. Switch to Residential only if you hit rate limits.

## Actor input object example

```json
{
  "tickers": [
    "AAPL",
    "MSFT",
    "NVDA"
  ],
  "institutions": [
    "Berkshire Hathaway",
    "Scion Asset Management"
  ],
  "dataTypes": [
    "filings"
  ],
  "maxFilings": 40,
  "maxInsiderFilings": 15,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

All extracted companies stored in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "tickers": [
        "AAPL",
        "MSFT"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("sheshinmcfly/sec-edgar-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "tickers": [
        "AAPL",
        "MSFT",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("sheshinmcfly/sec-edgar-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "tickers": [
    "AAPL",
    "MSFT"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call sheshinmcfly/sec-edgar-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sheshinmcfly/sec-edgar-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/vf14EZG7WgkhxhSfl/builds/PTDh179NWbz8c4GIo/openapi.json
