# Major Shareholder Change Monitor - SEC 13D & 13G

Track structured SEC 13D and optional 13G stakes, purpose text and saved ownership changes. Evidence links, bounded company watchlists and honest amendment coverage.

Canonical product page: https://mayd-it.com/data-tools/actors/major-shareholder-change-monitor/
Public Actor: https://apify.com/maydit/major-shareholder-change-monitor

## Example input

```json
{
  "filingUrls": [
    "https://www.sec.gov/Archives/edgar/data/11544/000119312526092603/primary_doc.xml"
  ],
  "maxResults": 5
}
```

## Full guide

![Reported shareholder stakes, stated purpose and SEC filing evidence](https://api.apify.com/v2/key-value-stores/nemaYfVcrTgloz8Wn/records/major-shareholder-change-monitor-e70412646daa.png?signature=1kVeauUQf2E60AaGhWjnk)

## Track ownership as it was disclosed

Build a reviewable ownership timeline from structured SEC Schedule 13D filings and optional 13G filings. Compare a reporting person’s disclosed stake and stated purpose with your saved observation. Useful for issuer research, ownership monitoring and document review.

[Open this Actor in Console](https://console.apify.com/actors/oVHvi3lcUtmQ24Rx4/input) · [First run](#try-this-actor) · [Results](#result-preview) · [Saved comparisons](#build-a-repeatable-workflow) · [Full guide](#full-guide)

## Try this Actor

Inspect five reporting-person observations from a historical W. R. Berkley Schedule 13D/A filed in March 2026. The source contains eight reporting persons; this first example deliberately caps output at five. Use the comparison example below to retain all eight. No API key or additional paid source subscription is required.

**Inspect W. R. Berkley Schedule 13D ownership** — paste this input into the Console JSON editor.

```json
{
  "filingUrls": [
    "https://www.sec.gov/Archives/edgar/data/11544/000119312526092603/primary_doc.xml"
  ],
  "maxResults": 5
}
```

Open the dataset to inspect the person, reported stake and filing evidence. The fixed example demonstrates document extraction; it is not a notice that holdings changed today.

**Read each person separately:** Related reporting persons can disclose the same shares. Their holdings can overlap and **must not be summed**.

## Result preview

One row identifies a reporting person, issuer, security CUSIP and schedule family.

| Research question | Output fields |
| --- | --- |
| Which issuer and security? | `issuerName`, `issuerCik`, `cusip`, `securityTitle` |
| Who disclosed the position? | `reportingPersonName`, `reportingPersonCik` |
| What stake was reported? | `aggregateOwned`, `ownershipPercent`, raw source values |
| What purpose is present? | `purposeText`, `purposeStatus`, `purposeMentions` |
| What differs from the saved document? | `ownershipPercentagePointChange`, `aggregateOwnedChange`, `changedFields` |
| Where and when was it disclosed? | `sourceUrl`, `formType`, `eventDate`, `filingDate`, `acceptedAt` |

Values remain as filed. Document differences do not establish a purchase, sale or activist intent. Missing publication metadata stays null.

## Usage and pricing

Base result rate on the FREE tier: **$5 per 1,000 saved ownership observations**. The [Pricing tab](https://apify.com/maydit/major-shareholder-change-monitor/pricing) shows your plan’s result rate and the **Actor Start** charge. Set `maxResults` and a platform spending limit before running a larger watchlist. A result cap is an upper bound, not a promise of that many results.

Saved unchanged observations are billable. `onlyChanges` skips unchanged rows after a baseline; skipped rows, source errors and summary files are not dataset-item charges.

## Build a repeatable workflow

1. **Choose the issuer and evidence.** Start with a small ticker/CIK watchlist or exact XML documents. Include 13G only when its separate disclosure context fits your research.
2. **Save the first document.** Use the comparison example below. Keep the watchlist, limits, `snapshotName` and named history store consistent for later runs.
3. **Review each changed person.** Inspect `previous`, the reported stake deltas and the linked filing. Read Item 4 and its status before drawing conclusions from a changed purpose field.
4. **Maintain a research register.** Use `id` as the destination key, retain filing links and keep related reporting persons separate. Export JSON for nested previous values or CSV for a flat review sheet.

After the baseline, `onlyChanges: true` can suppress unchanged observations. Run each namespace sequentially and review SUMMARY before interpreting missing output.

## Full guide

### Select company filings or exact documents

Choose `companies` (up to 10 tickers/CIKs) or `filingUrls` (up to 30 raw SEC XML URLs). Company queries use the SEC’s recent submissions index and never fall back to sample data. The index can include filings where the requested company is itself a reporting person; those documents are excluded if their issuer CIK does not match. A low filing cap can therefore miss issuer matches.

Company discovery uses `lookbackDays` and `maxFilingsPerCompany`; it does not traverse archived submissions indexes. Direct documents are inspected regardless of age. The empty-input default reads the historical W. R. Berkley document and returns its eight reporting-person observations, subject to the saved-result limit.

### Field reference

| Field | What it tells you |
| --- | --- |
| `issuerCik`, `issuerName`, `cusip`, `securityTitle` | Identity of the issuer and disclosed class. No ticker is guessed from a company name. |
| `reportingPersonName`, `reportingPersonCik` | Disclosing person/entity. CIK is null where the filing does not supply it. |
| `aggregateOwned`, `ownershipPercent` | Numeric reported stake when parsable, alongside raw values. Zero is preserved as zero. |
| `soleVotingPower`, `sharedVotingPower`, `soleDispositivePower`, `sharedDispositivePower` | Reported voting and disposition powers. These can overlap. |
| `stakeComment`, `groupMembershipRaw` | Filing qualifications and group indication, without resolving legal ownership relationships. |
| `purposeText`, `purposeStatus` | Schedule 13D Item 4 text actually present in this document. |
| `purposeMentions` | Literal keyword excerpts for navigation. Negated mentions still appear; no activist-intent classification is inferred. |
| `ownershipPercentagePointChange`, `aggregateOwnedChange` | Differences from your saved document, when both values are numeric. They do not establish a purchase or sale. |
| `eventDate`, `filingDate`, `acceptedAt`, `observedAt` | Event date, SEC publication metadata when discovery supplies it, and this run’s observation time. |
| `sourceUrl`, `accessionNumber`, `formType` | The underlying structured SEC filing and form type. |

### Read amendments correctly

An amendment can omit an unchanged item or refer to earlier filings. Missing Item 4 is labelled `absent_in_this_document_not_reconstructed`; it is not interpreted as withdrawal of earlier plans. This release does not reconstruct an amendment chain or resolve incorporated exhibits.

Only structured `SCHEDULE 13D`, `SCHEDULE 13D/A`, `SCHEDULE 13G` and `SCHEDULE 13G/A` XML is supported. Older unstructured `SC 13D`/`SC 13G` HTML and text are outside scope. For direct URLs, the SEC’s XSL viewer path is normalized to its raw XML document.

Schedule 13G uses a separate XML structure and disclosure context. Set `include13G` to include it. It has no 13D Item 4 narrative; the output says `not_applicable_13g`. These are disclosed positions with filing delays, not a live holdings feed.

### Comparison identity and document order

Enable `comparePrevious` and retain the same watchlist, limits, `snapshotName` and named history store. First observations are `new`. Later runs include prior document fields, changed fields and the time of the prior saved observation. Set `onlyChanges` to save only new or changed observations; a fully unchanged run correctly returns zero rows.

Identity uses issuer CIK + CUSIP + schedule family + reporting-person CIK when supplied, otherwise the normalized disclosed name. Name or identity changes can create a new record. 13D and 13G are tracked separately. Changed holdings can reflect transactions, class changes, share-count denominators or filing corrections; a document difference alone is not a trade.

Company mode selects the first/latest encountered document for each person within the bounded recent-index scan. Direct URL mode uses the first document for that identity in the supplied input order; put the intended document first. A direct URL provides no verified publication timestamp, so `filingDate` and `acceptedAt` remain null. Event/signature dates are never substituted for publication time.

Only confirmed saved rows update comparison history. A discovered filing older than the saved filing date cannot roll the baseline backward. There is no removal inference. Use one writer per namespace; a detected concurrent state change is not overwritten.

### Coverage, limits and failures

The dataset exports to JSON/CSV. **Run report** explains the outcome, and **SUMMARY** identifies successful, failed and unreached sources, filing caps, result limits and history updates. Source errors never become paid rows. Empty valid searches and unchanged comparisons are explicit outcomes.

SEC requests carry an identifying user agent, run sequentially at approximately one per second, and have bounded time and response size. Temporary server errors receive one retry. Access refusals are reported without bypass. Company discovery does not paginate archived submissions indexes or claim market-wide completeness.

### Three example inputs

The first exact example is [Inspect W. R. Berkley Schedule 13D ownership](#try-this-actor) above. The other saved examples are:

#### Inspect a structured Schedule 13G amendment

Read the September 2026 Inflection Point amendment, including reported zero ownership. 13G has no 13D Item 4 purpose narrative.

```json
{
  "filingUrls": [
    "https://www.sec.gov/Archives/edgar/data/11544/000162828026060471/primary_doc.xml"
  ],
  "include13G": true,
  "maxResults": 5
}
```

#### Save a major-shareholder comparison baseline

Establish a saved reporting-person baseline from the documented 13D example. Later changes preserve prior document fields.

```json
{
  "filingUrls": [
    "https://www.sec.gov/Archives/edgar/data/11544/000119312526092603/primary_doc.xml"
  ],
  "comparePrevious": true,
  "snapshotName": "berkley-ownership-example",
  "maxResults": 20
}
```

### Research use and sources

Combine ownership changes with earnings guidance, financing documents and insider disclosures to build a company evidence timeline. The Actor extracts and compares public disclosures; it does not label a stock as a buy or sell.

[SEC structured ownership release](https://www.sec.gov/submit-filings/edgar-news-announcements/edgar-release-23-4) · [SEC Schedule 13D/13G technical specification](https://www.sec.gov/file/schedule-13d-13g-tech-specs-20) · [SEC Developer Resources](https://www.sec.gov/about/developer-resources)

## Help with your run

Open **Run report** in the run’s Output tab for a readable outcome and **SUMMARY** for detailed coverage and source issues. Export CSV for flat spreadsheet columns or JSON to preserve nested evidence.

For help, open this Actor’s **Issues** tab with the run URL, relevant input and expected result. Remove credentials and private information before posting.

[Explore more Mayd-It Actors](https://apify.com/maydit)
