# Japan EDINET Insider Filings Tracker (`nexgendata/japan-edinet-insider-filings`) Actor

Japan FSA EDINET filings: large-shareholder reports (大量保有報告書, 5% rule), change reports (変更報告書), treasury-share repurchase reports. Canonical insider-flow disclosures under Japan's Financial Instruments and Exchange Act. Bloomberg Japan terminal alternative.

- **URL**: https://apify.com/nexgendata/japan-edinet-insider-filings.md
- **Developed by:** [Stephan Corbeil](https://apify.com/nexgendata) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $200.00 / 1,000 insider filings

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Japan EDINET Insider Filings Tracker

**The Bloomberg Japan / Quick-Astra Manager / Refinitiv Eikon Japan alternative for Japanese regulatory insider-flow disclosures.** Pull every large-shareholder report (大量保有報告書), change report (変更報告書), and treasury-share repurchase report (自己株券買付状況報告書) filed with Japan's **Financial Services Agency (FSA / 金融庁)** through the EDINET (Electronic Disclosure for Investors' NETwork) system, in a single structured JSON dataset — at less than 1% of the cost of a Bloomberg, Refinitiv Eikon Japan, S&P CapitalIQ, Quick-Astra Manager, or LSEG Workspace Japan seat.

Built for **Japan-focused hedge funds, long-only equity managers, FPI / FII desks running Japan exposure, sell-side equity analysts covering TOPIX / Nikkei 225 / JPX Prime 150 / TSE Standard / TSE Growth, M&A bankers tracking activist-investor stakebuilding, financial journalists (Nikkei, Toyo Keizai, Bloomberg Japan, Reuters Tokyo, Diamond, Shukan Diamond, Diamond Zai, ZUU online) covering tender offers and proxy fights, IR teams monitoring their own shareholder register, compliance officers running insider-trading surveillance, quant funds backtesting 5%-rule-trigger drift on Japanese equities, and corporate-defense advisors building takeover defense playbooks** — anyone who needs clean programmatic access to Japan's canonical insider / shareholder disclosure register without paying ¥3,000,000+/year per terminal license.

> [Start scraping with Apify](https://apify.com/?fpr=2ayu9b) — free $5/mo credit, no credit card required.

---

### Why EDINET matters: Japan's disclosure framework in plain English

Japan's securities-market disclosure framework is governed by the **Financial Instruments and Exchange Act (金融商品取引法 / Kin'yū Shōhin Torihiki Hō / FIEA)** — the 2007 successor to the Securities and Exchange Law of 1948. The FIEA was modelled on the US Securities Acts of 1933/1934 but adapted to Japan's bank-centric capital market, *keiretsu* cross-shareholding tradition, and corporate-governance reforms following the 1990s asset-price collapse. The act covers:

- **Public offerings + secondary trading** (Sections 4 + 24) — annual securities reports (有価証券報告書), quarterly reports (四半期報告書) discontinued for fiscal years starting April 2024, semi-annual reports (半期報告書) reinstated thereafter.
- **The 5% rule** (Sections 27-23 ~ 27-30) — any entity acquiring 5% or more of a TSE-listed company's voting shares must file a **大量保有報告書 (Large Shareholder Report)** within 5 business days. Subsequent ≥1% holdings changes trigger a **変更報告書 (Change Report)**. This is Japan's equivalent of SEC Schedule 13D (active) / 13G (passive). Distinct from the SEC: the threshold is 5% (vs SEC 5%), the timeline is **5 business days** (vs SEC 10 calendar days for 13D and 45 days for 13G), and the filing is electronic-only via EDINET since 2007.
- **Treasury share repurchase reporting** (Sections 24-6) — every TSE-listed company must file a **自己株券買付状況報告書 (Treasury Share Repurchase Status Report)** in months when it executes an open-market buyback under a board-authorized program. Discloses month-end shares repurchased, total amount in JPY, average price, and program-to-date cumulative. Filed within 15 days after month-end.
- **Tender offer disclosure** (Sections 27-2 ~ 27-22) — public tender offers (TOB / 公開買付け) require a **公開買付届出書 (Tender Offer Statement)** plus daily status updates throughout the offer period.
- **Officer / director shareholding** (Section 24 + Article 19 of the Cabinet Office Order) — directors' and executive officers' personal shareholdings are disclosed inside the annual securities report. Insider trading is regulated separately under FIEA Section 166 (the Japanese 10b-5 analogue).

**EDINET** is the FSA's mandatory electronic filing system — operated since 2001 (mandatory since 2008 for listed companies), it is the **single canonical repository** for every FIEA-mandated disclosure. As of 2024, EDINET holds ~3 million filings going back 10+ years, with an average ~80-150 new filings per business day across all doctypes.

What this means in practice for institutional research workflows:

- **Activist-investor surveillance**: Every meaningful stakebuild by Murakami Fund (村上ファンド), Oasis Management, Dalton Investments, Effissimo Capital Management, ValueAct Capital, Elliott Management, 3D Investment Partners, Argyle Street Management, RMB Capital, Asset Value Investors, and the broader Japan-activist ecosystem hits EDINET within 5 business days.
- **Cross-shareholding unwind**: Japan's *keiretsu* cross-shareholding network is collapsing (driven by Corporate Governance Code reforms 2015 + 2018 + 2021). Every unwind transaction by a *seimei* (life insurer), trust bank, or corporate stakeholder ≥5% of an issuer hits EDINET as a 変更報告書 — the highest-signal data point for tracking the multi-trillion-yen Japan cross-shareholding rotation.
- **Buyback signal**: Japanese buybacks have surged from ¥3 trillion (2013) to ¥12+ trillion (2024) per fiscal year, driven by ROE-focused activism and TSE's 2023 "PBR < 1.0 disclosure" push. Every monthly buyback execution is in EDINET as a 自己株券買付状況報告書.
- **Foreign-fund accumulation**: FPI / FII accumulation in TOPIX large-caps is captured in real-time — every time BlackRock, Vanguard, State Street, Capital Group, Norges Bank, GIC, Temasek, or T. Rowe Price crosses 5% in a Japanese name, EDINET is the proof.

For any investor, banker, journalist, IR officer, compliance officer, or quant desk running a Japan strategy, clean programmatic access to EDINET is non-negotiable. This actor is the cheapest reliable JSON source you can plug into your pipeline — billed at the proposed **$0.15 per filing** institutional tier, matching our **[HKEX Insider/Short Tracker](https://apify.com/nexgendata/hkex-insider-short-tracker)** premium-Asia disclosure pricing.

---

### What you get per filing

Every record returned is a complete EDINET filing snapshot pulled directly from the **Japan FSA's official REST API v2** (`api.edinet-fsa.go.jp`). No HTML scraping, no anti-bot battles, no cookie warm-up — these are the same structured JSON + XBRL documents that power the FSA's public investor pages.

- `filer_name_jp` — Japanese filer name (e.g. `"ブラックロック・ジャパン株式会社"`, `"野村アセットマネジメント株式会社"`, `"村上世彰"`).
- `filer_name_en` — Latin transliteration when EDINET provides one (e.g. `"BlackRock Japan Co., Ltd."`). Many domestic-only filers ship Japanese-only.
- `issuer_name` — Japanese issuer name when distinct from filer. For 5% rule filings the filer is the **holder** (e.g. BlackRock) and the issuer is the **target company** (e.g. Toyota).
- `issuer_ticker` — 4-digit TSE securities code (e.g. `"7203"` Toyota, `"6758"` Sony Group, `"9984"` SoftBank Group, `"7974"` Nintendo). EDINET stores it as a 5-digit field with trailing check digit `0`; this actor strips that automatically.
- `holdings_shares` — post-filing total shares held by the filer (parsed from XBRL when `enrich_xbrl=true`).
- `holdings_pct` — post-filing percent of voting rights held, as a decimal percentage (e.g. `5.21` = 5.21%). Parsed from the XBRL `HoldingRatioOfShareCertificatesEtcAfter` element.
- `change_pct` — change in holdings ratio vs the previous filing — populated on 変更報告書 (change reports) only.
- `filing_date` — ISO-8601 date EDINET accepted the filing (FSA's `submitDateTime` field, date-portion).
- `doc_type` — normalized tag: `large_shareholder`, `large_shareholder_change`, `treasury_buyback`, or `officer_trade`.
- `doc_type_code` — raw EDINET docTypeCode (e.g. `"350"` = 大量保有報告書, `"360"` = 変更報告書, `"220"` = 自己株券買付状況報告書).
- `doc_type_jp` / `doc_type_en` — human-readable Japanese + English doctype names.
- `doc_id` — EDINET document ID (e.g. `"S100UABC"`) — globally unique, stable forever.
- `doc_url` — deep-link to the EDINET viewer for the filing.
- `edinet_code` — filer's EDINET registration code (the unique Japan FSA filer ID).
- `data_source` — provenance string identifying the data source on every row.

When `enrich_xbrl=true`, the actor downloads the XBRL filing instance for each 5% rule filing and parses the post-filing holdings %, total shares, and (for change reports) the delta. XBRL parsing adds ~1.5s per filing (EDINET rate limit ~3 req/s) — disable for fast metadata-only scans.

---

### Inputs

| Input | Type | Default | What it does |
|---|---|---|---|
| `apiKey` | string (secret) | — | Free EDINET API v2 subscription key. **Required.** Register at https://api.edinet-fsa.go.jp/ (email + phone, no credit card). |
| `date_from` | string | 30d ago | Filing-date lower bound (YYYY-MM-DD). Leave blank → 30 days ago (UTC). |
| `date_to` | string | today | Filing-date upper bound (YYYY-MM-DD). Leave blank → today (UTC). |
| `doc_type` | string | `all` | One of: `large_shareholder` / `large_shareholder_change` / `treasury_buyback` / `officer_trade` / `all`. |
| `filer_name` | string | — | Optional case-insensitive substring on filer name (Japanese or English). |
| `issuer_ticker` | string | — | Optional 4-digit TSE ticker filter. |
| `max_filings` | integer | `100` | Hard cap on rows returned (1-2000). |
| `enrich_xbrl` | boolean | `true` | Download XBRL for 5% filings → extract holdings %, shares, change. |
| `proxyConfiguration` | object | none | Optional Apify proxy. EDINET has no geofence; leave off unless 429-ing. |

#### Recipe examples

**1. Last 30 days of all institutional disclosures (most common):**
```json
{
  "apiKey": "YOUR_EDINET_KEY",
  "date_from": "2026-04-20",
  "date_to": "2026-05-20",
  "doc_type": "large_shareholder",
  "max_filings": 200
}
````

Returns every 大量保有報告書 + 変更報告書 filed across all TSE listings in the last 30 days — the canonical institutional surveillance view.

**2. Activist-fund stake watch:**

```json
{
  "apiKey": "YOUR_EDINET_KEY",
  "date_from": "2026-01-01",
  "doc_type": "large_shareholder",
  "filer_name": "Oasis"
}
```

Returns every YTD 5% rule filing by Oasis Management — useful for M\&A bankers tracking activist stakebuilding and corporate-defense advisors building target-list dashboards.

**3. Single-issuer insider register (Toyota Motor):**

```json
{
  "apiKey": "YOUR_EDINET_KEY",
  "date_from": "2025-04-01",
  "doc_type": "all",
  "issuer_ticker": "7203",
  "max_filings": 50
}
```

Returns every large-shareholder + treasury-buyback filing on Toyota (7203) over the trailing fiscal year — the canonical shareholder-register reconstruction for a single name.

**4. Buyback-pipeline monitor:**

```json
{
  "apiKey": "YOUR_EDINET_KEY",
  "date_from": "2026-05-01",
  "doc_type": "treasury_buyback",
  "max_filings": 300
}
```

Returns every monthly treasury-share repurchase status report — leading buyback execution data for TOPIX / JPX Prime 150 companies.

***

### How EDINET compares — Japan disclosure data costs

| Source | Coverage | Update lag | Annual cost |
|---|---|---|---|
| **This actor (Japan EDINET Insider Filings Tracker)** | All FIEA mandatory disclosures (350 / 360 / 220 / 230 / 120 / 140) | Real-time (~5 min after FSA acceptance) | **~$0.15/filing — pay-as-you-go** |
| Bloomberg Japan Terminal | All disclosures + analytics + chat + execution | Real-time | ¥3,000,000+ / seat / year (~$20,000) |
| Refinitiv Eikon Japan | All disclosures + Reuters newswire | Real-time | ¥2,500,000+ / seat / year (~$17,000) |
| Quick-Astra Manager (Nikkei) | All disclosures + Nikkei content | Real-time | ¥2,000,000+ / seat / year (~$13,000) |
| S\&P CapitalIQ Pro | All disclosures + global filings | ~15-30 min lag | ~$15,000 / seat / year |
| LSEG Workspace Japan | All disclosures | Real-time | ¥2,200,000+ / seat / year (~$15,000) |
| FactSet Japan | All disclosures + estimates | Real-time | ~$15,000 / seat / year |
| FSA EDINET web viewer | All disclosures | Real-time | Free — but no API, no bulk export |
| EDINET official REST API | All disclosures | Real-time | Free with subscription key — but no parsing, no normalization, no XBRL extraction |

This actor sits on top of the free EDINET API and adds the layer institutional users actually need: **normalized JSON output, doctype filtering, filer / issuer / ticker filters, XBRL holdings-pct extraction, English transliteration, and rate-limit-aware paging** — all priced at <0.001% of a Bloomberg seat.

***

### Field semantics

#### `holdings_pct` — what exactly is this?

The XBRL `HoldingRatioOfShareCertificatesEtcAfter` element. FIEA Section 27-23 defines this as the post-filing percentage of total voting rights held by the filer plus joint-holders (共同保有者), computed as the filer's voting-rights count divided by the issuer's total issued voting rights count (after any treasury-share exclusion). Surface value in decimal-percentage form (e.g. `5.21` = 5.21%).

#### `change_pct` — what's the trigger?

FIEA Section 27-25 requires a 変更報告書 (change report) when the filer's holdings ratio moves by ≥1 percentage point from the prior filing, OR when a joint-holder relationship changes, OR when the purpose-of-holding changes (e.g. from "passive investment" to "control / management influence"). The `change_pct` field is the delta in holdings ratio between this filing and the immediately prior filing in the same filer-issuer chain.

#### `doc_type_code` reference

| Code | JP | EN | Mapped tag |
|---|---|---|---|
| 350 | 大量保有報告書 | Large Shareholder Report (5% rule) | `large_shareholder` |
| 360 | 変更報告書 | Change Report to Large Shareholder | `large_shareholder_change` |
| 220 | 自己株券買付状況報告書 | Treasury Share Repurchase Status Report | `treasury_buyback` |
| 230 | 訂正自己株券買付状況報告書 | Correction — Treasury Share Repurchase | `treasury_buyback` |
| 120 | 有価証券報告書 | Annual Securities Report | `officer_trade` |
| 140 | 四半期報告書 | Quarterly Report | `officer_trade` |

***

### Getting your free EDINET API key

EDINET API v2 launched in late 2023 and closed the previous unauthenticated endpoint shortly after. The new key is free and takes 2 minutes:

1. Visit https://api.edinet-fsa.go.jp/
2. Click **APIキーを発行する** (Issue API key)
3. Enter email + phone number (the SMS code is for fraud prevention only)
4. Confirm via the verification email
5. Copy the key from your dashboard (format: 40 hex characters)

**Rate limit:** ~3 requests/second per key. Sufficient for any institutional workflow — a full 30-day all-doctype sweep with XBRL enrichment takes ~5 minutes wall-clock.

**Privacy:** This actor never logs the key, never persists it to the dataset, and never sends it to any service other than `api.edinet-fsa.go.jp`. For scheduled runs, set it once as the `EDINET_API_KEY` env var on your task — it survives across runs and never appears in input logs.

***

### Output schema

```json
{
  "filer_name_jp": "ブラックロック・ジャパン株式会社",
  "filer_name_en": "BlackRock Japan Co., Ltd.",
  "issuer_name": "トヨタ自動車株式会社",
  "issuer_ticker": "7203",
  "holdings_shares": 815432100,
  "holdings_pct": 5.42,
  "change_pct": 0.18,
  "filing_date": "2026-05-15",
  "doc_type": "large_shareholder_change",
  "doc_type_code": "360",
  "doc_type_jp": "変更報告書",
  "doc_type_en": "Change Report to Large Shareholder",
  "doc_id": "S100UABCDEFG",
  "doc_url": "https://disclosure2.edinet-fsa.go.jp/WEEK0040.aspx?...",
  "edinet_code": "E12345",
  "data_source": "Japan FSA EDINET REST API v2 — official electronic disclosure system..."
}
```

***

### Related NexGenData actors

If you're running a global insider / shareholder surveillance pipeline, the following NexGenData actors compose perfectly with this one — same dataset shape, same `$0.10-$0.15/filing` institutional tier, same pay-as-you-go pricing.

| Actor | Coverage | Use case |
|---|---|---|
| [China A-Share Insider Trades](https://apify.com/nexgendata/china-ashare-insider-trades) | CSRC executive shareholding changes — SSE / SZSE / BSE A-shares | Mainland-China director / supervisor / senior officer transactions |
| [India SEBI Filings Tracker](https://apify.com/nexgendata/india-sebi-filings-tracker) | SEBI DRHP / SAST takeover / buyback / QIP register | Indian IPO + takeover + buyback pipeline |
| [SEC Form 13F Tracker Pro](https://apify.com/nexgendata/sec-form-13f-tracker-pro) | Quarterly US institutional holdings (Schedule 13F) | US large-fund holdings consolidation |
| [TSE Japan Stock Screener](https://apify.com/nexgendata/tse-japan-stock-screener) | TOPIX / Nikkei 225 / JPX Prime 150 fundamentals | Pair this actor's filings with issuer-level fundamentals |
| [APAC IPO Calendar Sweep](https://apify.com/nexgendata/apac-ipo-calendar-sweep) | TSE / HKEX / SGX / KRX / TWSE / ASX IPO calendar | Asia-wide primary-market pipeline |

Together these five actors give you a **single unified Asian + US insider / institutional flow dataset** — every 5%-rule trigger, every director transaction, every IPO, every takeover, across the world's deepest equity markets — for less than the cost of a single Bloomberg seat.

***

### FAQ

**Q: Does this actor cover insider transactions by directors / officers?**
A: For the canonical director / officer transaction signal under Japan FIEA, the equivalent of US Form 4 lives **inside** the annual securities report (有価証券報告書 / docTypeCode 120) and quarterly reports (四半期報告書 / docTypeCode 140) as the *Directors' Shareholding* section. Set `doc_type=officer_trade` to ingest those filings. Note: Japan does not publish a separate per-trade director-transaction register like SEC EDGAR Form 4 — the FSA folded that disclosure into the periodic-report shareholding section in 2014.

**Q: How fast is EDINET after a filing is accepted?**
A: Real-time. FSA accepts the filing, validates the XBRL, and exposes it via the API within ~5 minutes. The EDINET viewer (web UI) typically lags by an additional ~5-15 minutes.

**Q: What about TOB / tender offer disclosures?**
A: TOB-related docTypes (公開買付届出書 etc.) are not in the default coverage of this actor — they live under docTypeCode `040` / `050` and behave differently from the 5%-rule register. If you need them, contact support@thenextgennexus.com — a dedicated `japan-tob-tender-offer-tracker` actor is on the roadmap.

**Q: What does the data look like during Japanese holidays?**
A: EDINET accepts zero filings on weekends, January 1-3 (New Year), Golden Week (April 29 + May 3-5), Bon Festival closures (mid-August varies by year), and December 31. The actor scans those days normally and gets back `0 results` — neither blocks nor charges anything.

**Q: Is XBRL parsing reliable?**
A: For docTypeCode 350 / 360 (the 5% rule register) — yes, ~95% of filings post-2020 publish the canonical `HoldingRatioOfShareCertificatesEtcAfter` element. Pre-2020 XBRL taxonomy varied slightly; the actor handles all common variants. For the ~5% of filings where the element isn't present (extremely old filings or non-standard filers), `holdings_pct` returns `null` — you can still cross-reference the `doc_url`.

***

### Pricing

**Proposed:** $0.00005 / actor start + **$0.15 / filing** (institutional Asian disclosure tier — matches our [HKEX Insider/Short Tracker](https://apify.com/nexgendata/hkex-insider-short-tracker)). At this price, a typical 30-day large-shareholder sweep (~150 filings) costs ~$22.50 — vs ¥3,000,000+/year for a Bloomberg Japan seat.

***

### Build with NexGenData

> Need bespoke Japan + Asia disclosure data piped into your trading / research / compliance stack? [Get in touch](mailto:support@thenextgennexus.com) — we build custom Japan-FSA / China-CSRC / Korea-FSC / Taiwan-FSC scrapers, MCP servers, and aggregator dashboards on top of the same NexGenData infrastructure powering this actor.

[Start scraping with Apify (free $5/mo)](https://apify.com/?fpr=2ayu9b) · [NexGenData on Apify Console](https://apify.com/nexgendata)

# Actor input Schema

## `apiKey` (type: `string`):

Free Japan FSA EDINET API v2 subscription key. Register at https://api.edinet-fsa.go.jp/ (email + phone, no credit card). Required — EDINET v2 closed the unauthenticated endpoint in 2023 and all requests now need a key. Pass via this input field for one-off runs, OR set the EDINET\_API\_KEY environment variable on your Apify task for scheduled runs. Rate limit: ~3 requests/second per key, generous enough for any institutional workflow. The key is never logged or persisted by this actor.

## `date_from` (type: `string`):

Filing-date lower bound (inclusive). EDINET retains roughly 5 years of filings. For breaking insider-flow surveillance use a 7-30 day window; for backtesting M\&A / takeover events use a 90-365 day window. Leave blank to default to 30 days before today (UTC). EDINET accepts roughly 50-200 filings/day on weekdays and zero on weekends/Japanese public holidays.

## `date_to` (type: `string`):

Filing-date upper bound (inclusive). Leave blank to default to today (UTC). Maximum window is 365 days — for longer-horizon studies, paginate by running multiple windowed jobs.

## `doc_type` (type: `string`):

Which EDINET filing categories to sweep. `large_shareholder` covers 大量保有報告書 (initial 5% Schedule 13D / 13G equivalent) AND 変更報告書 (≥1% holdings change update) — the canonical Japanese insider / activist-investor signal. `large_shareholder_change` returns ONLY 変更報告書 (movement filings). `treasury_buyback` returns 自己株券買付状況報告書 (the company's own repurchase activity — a leading bullish signal historically). `officer_trade` is the catch-all for director/officer-shareholding disclosures embedded in annual / quarterly reports (noisier, larger volume). `all` returns large\_shareholder + treasury\_buyback combined — the institutional default.

## `filer_name` (type: `string`):

Optional case-insensitive substring match on the filer name. EDINET stores filer names primarily in Japanese (filerName), with English transliteration in filerNameEn when available. Examples: 'ブラックロック' or 'BlackRock', '野村' or 'Nomura', 'バリュー・パートナーズ' or 'Value Partners'. Useful for tracking specific activist funds (Murakami Fund / 村上ファンド, Oasis Management, Dalton Investments, Effissimo, ValueAct Capital).

## `issuer_ticker` (type: `string`):

Optional 4-digit Tokyo Stock Exchange securities code (e.g. '7203' for Toyota, '6758' for Sony, '9984' for SoftBank Group, '7974' for Nintendo). Accepts suffix-tagged forms too ('7203.T', 'TYO:7203'). Leave blank to scan all issuers — useful for activist-fund flow analysis where you don't know the target in advance. EDINET surfaces the issuer's TSE code in 5% rule filings via the `secCode` field (5-digit format with check digit '0').

## `max_filings` (type: `integer`):

Hard cap on dataset rows pushed. Each row is one EDINET filing. A 7-day large-shareholder scan typically returns 60-150 rows across the whole TSE; a 30-day all-doctype scan returns 400-1500. Cap accordingly — at the proposed institutional pricing of $0.15/filing, $30 buys roughly 200 filings.

## `enrich_xbrl` (type: `boolean`):

When true (default), the actor downloads the XBRL filing instance for each 350/360 (large-shareholder) row and extracts the post-filing holdings %, total shares held, and change vs previous filing. Each XBRL download is ~50-300KB and adds ~1.5s per filing (EDINET rate limit). Disable for fast metadata-only scans when you don't need precise holding ratios.

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

Optional. EDINET API v2 is normally reachable from any IP — Japan FSA does not geofence the public API. Enable Apify proxy only if you see HTTP 429 / 503 errors during peak TSE open or after a major activist disclosure event. RESIDENTIAL with country=JP is the most robust setting; DATACENTER works for low-volume scans.

## Actor input object example

```json
{
  "date_from": "",
  "date_to": "",
  "doc_type": "large_shareholder",
  "filer_name": "",
  "issuer_ticker": "",
  "max_filings": 25,
  "enrich_xbrl": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "date_from": "",
    "date_to": "",
    "doc_type": "large_shareholder",
    "filer_name": "",
    "issuer_ticker": "",
    "max_filings": 25,
    "enrich_xbrl": true,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/japan-edinet-insider-filings").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 = {
    "date_from": "",
    "date_to": "",
    "doc_type": "large_shareholder",
    "filer_name": "",
    "issuer_ticker": "",
    "max_filings": 25,
    "enrich_xbrl": True,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/japan-edinet-insider-filings").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 '{
  "date_from": "",
  "date_to": "",
  "doc_type": "large_shareholder",
  "filer_name": "",
  "issuer_ticker": "",
  "max_filings": 25,
  "enrich_xbrl": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call nexgendata/japan-edinet-insider-filings --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/japan-edinet-insider-filings",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Japan EDINET Insider Filings Tracker",
        "description": "Japan FSA EDINET filings: large-shareholder reports (大量保有報告書, 5% rule), change reports (変更報告書), treasury-share repurchase reports. Canonical insider-flow disclosures under Japan's Financial Instruments and Exchange Act. Bloomberg Japan terminal alternative.",
        "version": "0.0",
        "x-build-id": "PH7LGNBePD80N9lMb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~japan-edinet-insider-filings/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-japan-edinet-insider-filings",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~japan-edinet-insider-filings/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-japan-edinet-insider-filings",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~japan-edinet-insider-filings/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-japan-edinet-insider-filings",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "apiKey": {
                        "title": "EDINET API subscription key",
                        "type": "string",
                        "description": "Free Japan FSA EDINET API v2 subscription key. Register at https://api.edinet-fsa.go.jp/ (email + phone, no credit card). Required — EDINET v2 closed the unauthenticated endpoint in 2023 and all requests now need a key. Pass via this input field for one-off runs, OR set the EDINET_API_KEY environment variable on your Apify task for scheduled runs. Rate limit: ~3 requests/second per key, generous enough for any institutional workflow. The key is never logged or persisted by this actor."
                    },
                    "date_from": {
                        "title": "Date from (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Filing-date lower bound (inclusive). EDINET retains roughly 5 years of filings. For breaking insider-flow surveillance use a 7-30 day window; for backtesting M&A / takeover events use a 90-365 day window. Leave blank to default to 30 days before today (UTC). EDINET accepts roughly 50-200 filings/day on weekdays and zero on weekends/Japanese public holidays.",
                        "default": ""
                    },
                    "date_to": {
                        "title": "Date to (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Filing-date upper bound (inclusive). Leave blank to default to today (UTC). Maximum window is 365 days — for longer-horizon studies, paginate by running multiple windowed jobs.",
                        "default": ""
                    },
                    "doc_type": {
                        "title": "Document type",
                        "enum": [
                            "large_shareholder",
                            "large_shareholder_change",
                            "treasury_buyback",
                            "officer_trade",
                            "all"
                        ],
                        "type": "string",
                        "description": "Which EDINET filing categories to sweep. `large_shareholder` covers 大量保有報告書 (initial 5% Schedule 13D / 13G equivalent) AND 変更報告書 (≥1% holdings change update) — the canonical Japanese insider / activist-investor signal. `large_shareholder_change` returns ONLY 変更報告書 (movement filings). `treasury_buyback` returns 自己株券買付状況報告書 (the company's own repurchase activity — a leading bullish signal historically). `officer_trade` is the catch-all for director/officer-shareholding disclosures embedded in annual / quarterly reports (noisier, larger volume). `all` returns large_shareholder + treasury_buyback combined — the institutional default.",
                        "default": "all"
                    },
                    "filer_name": {
                        "title": "Filer name filter (optional, Japanese or English substring)",
                        "type": "string",
                        "description": "Optional case-insensitive substring match on the filer name. EDINET stores filer names primarily in Japanese (filerName), with English transliteration in filerNameEn when available. Examples: 'ブラックロック' or 'BlackRock', '野村' or 'Nomura', 'バリュー・パートナーズ' or 'Value Partners'. Useful for tracking specific activist funds (Murakami Fund / 村上ファンド, Oasis Management, Dalton Investments, Effissimo, ValueAct Capital).",
                        "default": ""
                    },
                    "issuer_ticker": {
                        "title": "Issuer TSE ticker filter (optional, 4-digit code)",
                        "type": "string",
                        "description": "Optional 4-digit Tokyo Stock Exchange securities code (e.g. '7203' for Toyota, '6758' for Sony, '9984' for SoftBank Group, '7974' for Nintendo). Accepts suffix-tagged forms too ('7203.T', 'TYO:7203'). Leave blank to scan all issuers — useful for activist-fund flow analysis where you don't know the target in advance. EDINET surfaces the issuer's TSE code in 5% rule filings via the `secCode` field (5-digit format with check digit '0').",
                        "default": ""
                    },
                    "max_filings": {
                        "title": "Max filings returned",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Hard cap on dataset rows pushed. Each row is one EDINET filing. A 7-day large-shareholder scan typically returns 60-150 rows across the whole TSE; a 30-day all-doctype scan returns 400-1500. Cap accordingly — at the proposed institutional pricing of $0.15/filing, $30 buys roughly 200 filings.",
                        "default": 100
                    },
                    "enrich_xbrl": {
                        "title": "Enrich with XBRL holding %",
                        "type": "boolean",
                        "description": "When true (default), the actor downloads the XBRL filing instance for each 350/360 (large-shareholder) row and extracts the post-filing holdings %, total shares held, and change vs previous filing. Each XBRL download is ~50-300KB and adds ~1.5s per filing (EDINET rate limit). Disable for fast metadata-only scans when you don't need precise holding ratios.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration (optional)",
                        "type": "object",
                        "description": "Optional. EDINET API v2 is normally reachable from any IP — Japan FSA does not geofence the public API. Enable Apify proxy only if you see HTTP 429 / 503 errors during peak TSE open or after a major activist disclosure event. RESIDENTIAL with country=JP is the most robust setting; DATACENTER works for low-volume scans.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
