# Japan Corporate Events Monitor — M\&A & Board Changes (EDINET) (`kuroshio-data/japan-corporate-events-monitor`) Actor

Monitors Japanese listed companies' extraordinary reports (rinji hokokusho, Japan's 8-K equivalent) on EDINET and emits English structured JSON: M\&A decisions, major shareholder and parent-company changes, top-management changes, AGM voting results, and significant financial events.

- **URL**: https://apify.com/kuroshio-data/japan-corporate-events-monitor.md
- **Developed by:** [Hayato Yagi](https://apify.com/kuroshio-data) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $30.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

## Japan Corporate Events Monitor — M\&A, Shareholder & Board Changes (EDINET)

**What just happened at that Japanese listed company?**

Japanese listed companies must file an *extraordinary report* (臨時報告書, rinji hokokusho — the Japanese equivalent of a U.S. 8-K) with the Financial Services Agency whenever a material corporate event happens: an M\&A decision, a change of major shareholders or parent company, a change of representative directors, shareholders-meeting resolutions, or an event with significant impact on financial results.

Those filings are public on **EDINET**, but they are in Japanese and buried in XBRL. This actor turns them into a daily, machine-readable feed of **which company disclosed what kind of event, when** — as clean English structured JSON. No Japanese reading required.

A key trick: in EDINET's XBRL, the *element ID that carries the report body identifies the event type by itself*. So classification is exact, not guessed from free text.

### What you get (one record per filing)

```json
{
  "docId": "S100YST3",
  "submittedAt": "2026-07-29 09:12",
  "filingType": "extraordinary_report",
  "companyNameJa": "株式会社ニチリョク",
  "companyNameEn": "Nichiryoku Co.,Ltd.",
  "secCode": "7578",
  "edinetCode": "E03304",
  "eventCategories": ["business_transfer"],
  "hasMnaEvent": true,
  "events": [
    {
      "category": "business_transfer",
      "categoryEn": "Business transfer or acquisition decision (M&A)",
      "isMnaRelated": true,
      "titleJa": "事業の譲渡又は譲受けの決定",
      "eventDate": "2026-05-26",
      "bodyJa": "２【報告内容】１．当該事業譲渡先の名称、住所、代表者の氏名…",
      "element": "DecisionOnTransferOrAcquisitionOfBusinessTextBlock"
    }
  ],
  "reasonJa": "当社は、2026年５月26日開催の取締役会において…",
  "ordinanceItems": ["8-2"],
  "source": "EDINET"
}
```

- `eventCategories` / `hasMnaEvent` — machine-readable event classification, derived from the XBRL element, not from text guessing.
- `companyNameEn` — the company's official English name as registered in EDINET (not machine-translated).
- `eventDate` — best-effort first date found in the report body (board decision date, meeting date, …).
- `bodyJa` / `reasonJa` — the original Japanese text, kept for full detail (feed it to your LLM for translation or summaries).
- `ordinanceItems` — the legal item under Cabinet Office Ordinance Art. 19(2) that triggered the filing (e.g. `9-2` = shareholders-meeting resolutions).

### Event categories

| Category | Meaning |
|---|---|
| `merger`, `share_exchange`, `share_transfer`, `company_split`, `business_transfer`, `subsidiary_acquisition` | M\&A decisions (`hasMnaEvent: true`) |
| `reverse_stock_split` | Meeting called for a reverse stock split (often the step before a squeeze-out / delisting) |
| `major_shareholder_change` | Change in major shareholders |
| `parent_or_subsidiary_change` | Change in parent company or specified subsidiaries |
| `representative_director_change` | Change of representative directors (top management) |
| `auditor_change` | Change of independent auditors |
| `agm_resolution` | Shareholders-meeting resolutions, incl. voting results |
| `stock_option_issuance` | Stock option issuance not subject to registration |
| `significant_financial_event` | Impairments, debt waivers, special losses, etc. |
| `financial_covenants`, `uncollectible_receivables` | Debt covenant / receivable-risk disclosures |
| `other` | Anything else — still labeled with a readable English name derived from the XBRL element |

### Who it's for

- **Investors & analysts** watching Japanese equities for corporate events without reading Japanese.
- **M\&A / special-situations researchers** — filter with `categories` for M\&A decisions only.
- **Newsletter writers & AI agent builders** who want Japanese 8-K-style events as a normalized JSON stream.

Pairs well with our [Japan Activist & 5% Filings Tracker](https://apify.com/kuroshio-data/japan-activist-5pct-filings-tracker): that one tells you *who is accumulating shares*; this one tells you *what the company itself just disclosed*. For the U.S. market, see our [SEC Insider Trades Tracker (Form 4)](https://apify.com/kuroshio-data/sec-form4-insider-trades-tracker).

### Input

| Field | Default | Notes |
|---|---|---|
| `dateFrom` | 5 days ago | First disclosure date (JST), `YYYY-MM-DD`. |
| `dateTo` | `dateFrom` / today | Last disclosure date (JST). |
| `categories` | `[]` (all) | Keep only filings containing these event categories. |
| `includeCorrections` | `false` | Also scan correction reports (doc type 190). |
| `secCode` | — | Optional stock code filter (e.g. `7203` for Toyota). |
| `maxFilings` | `40` | Cap the run for a cheap sample (`0` = no limit). |
| `delayMs` | `500` | Politeness delay between EDINET requests. |
| `edinetApiKey` | — | Your EDINET API v2 key (free from the FSA). Falls back to `EDINET_API_KEY` env var. |

Volume guide: roughly **15–50 corporate extraordinary reports per business day**, spiking to 150+ in late June (AGM season voting results).

### Getting an EDINET API key

The key is free. Register at the EDINET site (Financial Services Agency) → API section → issue a subscription key. This actor calls only the official documented API (`documents.json` and document download), never scrapes the web UI.

### Notes & limitations

- Investment-trust filings ("臨時報告書（内国特定有価証券）" — fund accounting-period notices) are excluded on purpose; this actor is about *corporate* events.
- Report bodies are free-form Japanese; classification comes from the XBRL element and is exact, while `eventDate` is best-effort. The original text is always included.
- Data source: EDINET (FSA). Usage follows EDINET's terms (API access permitted; high-volume hammering is not — hence the built-in delay).

### Run locally

```bash
npm install
EDINET_API_KEY=your_key node src/main.js
```

Local input can be placed in `storage/key_value_stores/default/INPUT.json`.

# Actor input Schema

## `dateFrom` (type: `string`):

First disclosure date to scan (JST). Leave empty to scan the last 5 days.

## `dateTo` (type: `string`):

Last disclosure date to scan (JST). Defaults to dateFrom if dateFrom is set, otherwise today.

## `categories` (type: `array`):

Only keep filings containing at least one of these categories. Examples: agm\_resolution, major\_shareholder\_change, parent\_or\_subsidiary\_change, representative\_director\_change, auditor\_change, merger, share\_exchange, share\_transfer, company\_split, business\_transfer, subsidiary\_acquisition, reverse\_stock\_split, stock\_option\_issuance, significant\_financial\_event, financial\_covenants, uncollectible\_receivables. Leave empty for all events.

## `includeCorrections` (type: `boolean`):

Also scan correction reports (doc type 190) of extraordinary reports.

## `secCode` (type: `string`):

If set, only filings by this listed company stock code (e.g. 7203 for Toyota). Leave empty for all.

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

Cap the number of filings processed. Default 40 keeps a quick, cheap sample of recent activity.

## `delayMs` (type: `integer`):

Politeness delay to respect EDINET's high-volume-access rule. Do not set below 300.

## `edinetApiKey` (type: `string`):

Your EDINET API v2 subscription key. Free from the FSA EDINET site. Falls back to the EDINET\_API\_KEY environment variable.

## Actor input object example

```json
{
  "categories": [],
  "includeCorrections": false,
  "maxFilings": 40,
  "delayMs": 500
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("kuroshio-data/japan-corporate-events-monitor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("kuroshio-data/japan-corporate-events-monitor").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 '{}' |
apify call kuroshio-data/japan-corporate-events-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=kuroshio-data/japan-corporate-events-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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