# Scion Asset Management 13F Holdings Scraper (`automation-lab/scion-asset-management-13f-holdings-export`) Actor

Export Scion Asset Management SEC 13F filing summaries and normalized holdings for quarterly portfolio research and change monitoring.

- **URL**: https://apify.com/automation-lab/scion-asset-management-13f-holdings-export.md
- **Developed by:** [Automation Lab](https://apify.com/automation-lab) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.94 / 1,000 item extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

## Scion Asset Management 13F Holdings Scraper

Export **Scion Asset Management 13F holdings** directly from public SEC EDGAR filings. The Actor returns one filing summary plus normalized row-level positions for each selected quarter, ready for portfolio comparison, spreadsheets, databases, dashboards, and scheduled research workflows.

It is purpose-built for Scion Asset Management, LLC (SEC CIK `0001649339`). No SEC API key, brokerage account, or website login is required.

### What this Actor does

The Actor discovers Scion's newest Form 13F-HR submissions from the official SEC submissions API. For each selected filing it resolves the SEC archive package, reads the information-table XML, and saves:

- a filing summary with period, accession, holding count, and total reported value;
- one normalized row for every reported security;
- direct links to the SEC primary filing and information table;
- issuer, class, CUSIP, value, shares or principal amount;
- put/call, investment discretion, other-manager, and voting fields.

Use date filters to retrieve a specific quarter, or export several quarters for downstream change analysis.

### Who is it for

- **Investment researchers** comparing Michael Burry and Scion portfolio disclosures.
- **Analysts** loading normalized 13F rows into Excel, Google Sheets, SQL, or BI tools.
- **Data engineers** maintaining a repeatable quarterly SEC ingestion pipeline.
- **Journalists and students** checking positions against first-party filing evidence.
- **Portfolio-monitoring teams** scheduling snapshots and calculating adds, trims, new positions, and exits downstream.

This Actor exports source records. It does not provide investment advice, infer trades after quarter end, or claim that a 13F is Scion's complete current portfolio.

### Why use this Scion 13F exporter

SEC filings are authoritative, but each quarter is packaged as XML and its value units changed historically. This Actor handles filing discovery, package resolution, XML parsing, stable identifiers, and old/new value normalization in one run.

The implementation uses official SEC JSON and XML endpoints rather than browser automation. Requests are sequential, carry an identifying User-Agent, retry temporary failures with bounded backoff, and pause between filing packages.

### Data you receive

Each dataset row has `recordType` set to `filing` or `holding`.

| Field | Meaning |
| --- | --- |
| `recordType` | Filing summary or individual holding row |
| `managerName`, `managerCik` | Scion manager identity and SEC CIK |
| `form` | `13F-HR`, or `13F-HR/A` when amendments are enabled |
| `accessionNumber` | Stable SEC filing accession |
| `filingDate` | Date submitted to the SEC |
| `reportDate` | Portfolio quarter end |
| `filingUrl` | Direct SEC primary-document URL |
| `informationTableUrl` | Direct SEC holding-table XML URL |
| `holdingsCount` | Number of positions in the filing summary |
| `totalValueUsd` | Sum of normalized filing values in US dollars |
| `issuer`, `titleOfClass`, `cusip` | Reported security identity |
| `valueReported` | Number exactly represented in SEC XML |
| `valueUsd` | Value normalized to dollars across SEC formats |
| `sharesOrPrincipalAmount` | Reported shares or principal amount |
| `sharesOrPrincipalType` | `SH` or `PRN` |
| `putCall` | Put/call designation, or `null` |
| `investmentDiscretion` | Reported discretion code |
| `otherManager` | Other-manager reference, or `null` |
| `votingSole`, `votingShared`, `votingNone` | Reported voting authority |
| `scrapedAt` | UTC extraction timestamp |

Fields that apply only to one row type are absent from the other row type.

### Getting started

1. Open the Actor input page.
2. Keep `maxFilings` at `1` for the newest quarter, or increase it for history.
3. Optionally enter `fromReportDate` and `toReportDate` as `YYYY-MM-DD`.
4. Enable amendments only if you want 13F-HR/A snapshots alongside originals.
5. Set `maxItems` high enough for filing summaries plus holding rows.
6. Click **Start**.
7. Open the Dataset tab and export JSON, CSV, Excel, XML, or RSS.

The default input exports up to four recent original filings and 1,000 combined rows.

### Input parameters

| Input | Type | Default | Description |
| --- | --- | --- | --- |
| `maxFilings` | integer | `4` | Newest matching filings to retrieve, from 1 to 40 |
| `maxItems` | integer | `1000` | Combined filing and holding rows to save, from 1 to 10,000 |
| `fromReportDate` | string | unset | Earliest report quarter in `YYYY-MM-DD` format |
| `toReportDate` | string | unset | Latest report quarter in `YYYY-MM-DD` format |
| `includeAmendments` | boolean | `false` | Include amended `13F-HR/A` filings |

If the date range contains no matching filings, the run succeeds with an empty dataset. Invalid dates, reversed ranges, and out-of-range limits fail clearly rather than silently changing scope.

### Input examples

Latest quarter:

```json
{
  "maxFilings": 1,
  "maxItems": 100,
  "includeAmendments": false
}
```

Exact Q2 2025 report period:

```json
{
  "maxFilings": 1,
  "maxItems": 100,
  "fromReportDate": "2025-06-30",
  "toReportDate": "2025-06-30",
  "includeAmendments": false
}
```

Four-quarter monitoring snapshot:

```json
{
  "maxFilings": 4,
  "maxItems": 500,
  "includeAmendments": true
}
```

### Output example

A holding row from current behavior looks like this:

```json
{
  "recordType": "holding",
  "managerName": "Scion Asset Management, LLC",
  "managerCik": "0001649339",
  "form": "13F-HR",
  "accessionNumber": "0001649339-25-000007",
  "filingDate": "2025-11-03",
  "reportDate": "2025-09-30",
  "issuer": "BRUKER CORP",
  "titleOfClass": "6.375 PREF SER A",
  "cusip": "116794207",
  "valueReported": 13137181,
  "valueUsd": 13137181,
  "sharesOrPrincipalAmount": 48334,
  "sharesOrPrincipalType": "SH",
  "putCall": null,
  "investmentDiscretion": "DFND",
  "otherManager": "1,2",
  "votingSole": 48334,
  "votingShared": 0,
  "votingNone": 0
}
```

The actual row also includes direct SEC URLs and `scrapedAt`.

### How much does it cost to export Scion 13F holdings?

Pay-per-event pricing consists of a **$0.005 start fee** plus one `item` charge for every useful filing summary or holding row saved. The BRONZE item price is **$0.01656 per item**; higher plan tiers receive the discounts shown on the Actor pricing tab.

Examples at BRONZE pricing:

- 1 filing summary + 8 holdings (9 items): about **$0.154**.
- 25 combined items: about **$0.419**.
- 100 combined items: about **$1.661**.

`maxItems` is a direct cost control. Failed, duplicate, or rejected rows are not charged as items. Apify applies the pricing tier associated with your plan, so the live pricing tab remains authoritative.

### Quarterly portfolio-change workflow

Run the Actor on a quarterly schedule after the SEC filing deadline. Store or export each dataset keyed by `accessionNumber`, `reportDate`, and `cusip`. In your database or spreadsheet, join consecutive quarters on CUSIP and compare:

1. `sharesOrPrincipalAmount` for additions or reductions;
2. CUSIPs appearing for the first time for potential new positions;
3. CUSIPs absent from the next filing for potential exits;
4. `valueUsd` and filing totals for reported value changes;
5. `putCall` so option rows are not mixed with common-stock positions.

The Actor produces snapshots, not calculated trade signals. A downstream automation can perform those comparisons without re-parsing SEC XML.

### Export and integrations

Apify datasets can be downloaded as JSON, CSV, Excel, XML, or RSS. Common integrations include:

- scheduled export to Google Sheets;
- webhook notification after a successful run;
- Make or Zapier workflows triggered by a Task;
- SQL ingestion keyed by accession and CUSIP;
- Python notebooks for quarter-over-quarter analysis;
- BI dashboards filtered by report period and record type.

Use `recordType=holding` when a downstream table should contain positions only. Keep filing rows separately when you need filing-level counts and totals.

### API usage

Replace `<APIFY_TOKEN>` with your token.

#### cURL

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~scion-asset-management-13f-holdings-export/runs?token=<APIFY_TOKEN>&waitForFinish=300" \
  -H "Content-Type: application/json" \
  -d '{"maxFilings":1,"maxItems":100,"includeAmendments":false}'
```

#### JavaScript

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/scion-asset-management-13f-holdings-export').call({
  maxFilings: 1,
  maxItems: 100,
  includeAmendments: false,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient(token="<APIFY_TOKEN>")
run = client.actor("automation-lab/scion-asset-management-13f-holdings-export").call(
    run_input={"maxFilings": 1, "maxItems": 100, "includeAmendments": False}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
```

### Use with Apify MCP

Add the Actor to Claude Code:

```bash
claude mcp add --transport http apify \
  "https://mcp.apify.com?tools=automation-lab/scion-asset-management-13f-holdings-export"
```

#### Claude Desktop, Cursor, and VS Code setup

Use the same remote MCP configuration in Claude Desktop, Cursor, or VS Code:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=automation-lab/scion-asset-management-13f-holdings-export"
    }
  }
}
```

Example prompts:

- “Export Scion Asset Management's latest 13F holdings and summarize the largest reported values.”
- “Get the last four Scion 13F quarters so I can compare CUSIP-level share changes.”
- “Retrieve Scion's filing for the quarter ended 2025-06-30 and return holding rows only.”

### Reliability and SEC fair access

The Actor uses official `data.sec.gov` and SEC archive endpoints with an identifying User-Agent. Filing packages are fetched sequentially with a short delay. HTTP 429 and server errors receive two bounded retries; deterministic errors fail the run.

SEC availability and filing structure remain upstream dependencies. Avoid launching many concurrent Tasks against the same filings. If SEC temporarily throttles access, wait and rerun instead of adding aggressive concurrency.

### Important 13F limitations

- Form 13F is generally filed up to 45 days after quarter end, so it is not real-time.
- It covers reportable securities and does not disclose every asset, short position, or trade.
- Values and shares are reported by the filing manager and may be amended.
- `putCall` distinguishes reported option positions but does not describe a complete strategy.
- Historical SEC XML before January 2023 represented values in thousands; `valueUsd` normalizes those rows while `valueReported` preserves the source number.
- Date filtering currently uses filings in the SEC submissions feed, with a maximum of 40 selected filings.

Always open `filingUrl` or `informationTableUrl` when exact source verification matters.

### Legality and responsible use

SEC 13F filings are public government records. Use the exported data for lawful research, reporting, and automation. Respect SEC fair-access guidance and Apify's terms. Do not present delayed public disclosures as current investment positions, guaranteed ownership, or personalized financial advice.

The Actor extracts source records and performs format normalization; users remain responsible for analysis, retention, and decisions made from the data.

### Troubleshooting

#### The dataset is empty

Check whether the date range matches a Scion report period, such as `2025-06-30`, rather than a filing date. Remove the date filters to inspect the newest available reports.

#### The run says the date range is invalid

Use exact `YYYY-MM-DD` dates and ensure `fromReportDate` is not later than `toReportDate`.

#### Fewer holdings were saved than expected

Increase `maxItems`. The limit includes one filing summary per filing as well as holding rows.

#### SEC returned 429 or a temporary server error

The Actor retries automatically. If all bounded attempts fail, wait before retrying; do not run many copies concurrently.

#### Why does the newest SEC quarter look old?

13F filings are delayed disclosures, and the Actor can only return filings currently available from the SEC.

### FAQ

#### Does it scrape all hedge funds?

No. This Actor deliberately targets Scion Asset Management, LLC. That fixed scope makes scheduled Scion research simple and prevents ambiguous manager-name matching.

#### Does it calculate buys, sells, and exits?

It exports normalized quarterly snapshots. Compare consecutive holding rows by CUSIP downstream to calculate changes.

#### Are amendments included?

Not by default. Set `includeAmendments` to `true` to include 13F-HR/A filings as separate snapshots.

#### Are values really in dollars?

`valueUsd` is normalized to dollars. `valueReported` preserves the numeric XML value so analysts can audit historical conversions.

#### Can I schedule it?

Yes. Save the input as an Apify Task and use a quarterly or more frequent schedule. A run only returns what the SEC has published at that time.

#### Is a proxy required?

No. The current implementation uses anonymous official SEC endpoints and no paid proxy.

### Related Automation Lab Actors

For a different SEC filing workflow, see [SEC Form D Scraper](https://apify.com/automation-lab/sec-form-d-scraper), which exports private-offering notices. It is complementary rather than a substitute for Scion 13F holdings.

For this Actor's primary job, keep Scion filing and holding records together through `accessionNumber` and `reportDate` so every derived comparison remains traceable to its SEC source.

# Actor input Schema

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

Number of newest matching quarterly filings to retrieve (1–40).

## `maxItems` (type: `integer`):

Maximum combined filing and holding records to save.

## `fromReportDate` (type: `string`):

Optional earliest portfolio report date in YYYY-MM-DD format.

## `toReportDate` (type: `string`):

Optional latest portfolio report date in YYYY-MM-DD format.

## `includeAmendments` (type: `boolean`):

Include 13F-HR/A amended filings as separate filing snapshots.

## Actor input object example

```json
{
  "maxFilings": 4,
  "maxItems": 20,
  "includeAmendments": false
}
```

# Actor output Schema

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

Default dataset with filing and holding records.

# 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 = {
    "maxFilings": 4,
    "maxItems": 20,
    "includeAmendments": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/scion-asset-management-13f-holdings-export").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 = {
    "maxFilings": 4,
    "maxItems": 20,
    "includeAmendments": False,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/scion-asset-management-13f-holdings-export").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "maxFilings": 4,
  "maxItems": 20,
  "includeAmendments": false
}' |
apify call automation-lab/scion-asset-management-13f-holdings-export --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/scion-asset-management-13f-holdings-export"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/YKia1jyHct3fl8YWa/builds/LbVa2RdNEDtaiBYuc/openapi.json
