# Japan Company Disclosure Monitor — 適時開示・法人情報 API (`agentworkflowlab/japan-company-intel`) Actor

Monitor TSE company watchlists and query TDnet, EDINET, and gBizINFO as agent-friendly JSON with stable disclosure IDs.

- **URL**: https://apify.com/agentworkflowlab/japan-company-intel.md
- **Developed by:** [Agent Workflow Lab](https://apify.com/agentworkflowlab) (community)
- **Categories:** AI, Integrations, News
- **Stats:** 2 total users, 0 monthly users, 86.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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 Company Disclosure Monitor — 適時開示・法人情報 API

Monitor **Japanese company disclosures** and query company intelligence in one call: TDnet timely disclosures (適時開示), EDINET filings (有価証券報告書・大量保有報告書), and gBizINFO corporate registry data — unified into clean JSON.

Built for scheduled watchlists, analysts, investors, n8n/Dify workflows, and AI agents that need structured Japanese market data without navigating Japanese-only government portals.

### What you get

| Source | Data | Key required? |
|---|---|---|
| **TDnet** (Tokyo Stock Exchange) | Timely disclosures: earnings revisions, buybacks, M\&A, executive changes, dividend announcements | No |
| **EDINET** (Financial Services Agency) | Official filings: annual/quarterly securities reports, large shareholding reports | Free key (bring your own) |
| **gBizINFO** (METI) | Corporate registry: corporate number, address, representative, capital, employees | Free token (bring your own) |

All sources are **official government/exchange data** — no scraping of private websites, no ToS gray zones.

### Modes

#### 1. Watchlist monitor (recommended)

Monitor selected TSE securities codes over a recent time window. Use multiple title keywords with OR matching, or leave `keywords` empty to return every disclosure for the watchlist.

```json
{
    "mode": "watchlist",
    "watchlist": ["7203", "6758", "8306"],
    "keywords": ["業績予想", "自己株式", "M&A"],
    "sinceHours": 24,
    "maxDisclosures": 50
}
```

Each TDnet record includes a stable `disclosureId`, so schedulers, webhooks, n8n, Dify, and AI agents can deduplicate repeated lookback windows safely.

#### 2. Company report

Query one company by **name** (トヨタ自動車) or **4-digit securities code** (7203) and get its recent disclosures, filings, and registry profile.

```json
{
    "mode": "company_report",
    "query": "7203",
    "maxDisclosures": 30
}
```

#### 3. Market feed

Get the latest disclosures across the whole market, optionally filtered by one keyword — e.g. every 自己株式 (buyback), 上方修正 (upward revision), or MBO announcement.

```json
{
    "mode": "market_feed",
    "keyword": "自己株式",
    "maxDisclosures": 50
}
```

### Schedule a disclosure monitor

1. Run the Actor once with `mode: watchlist` and confirm the records you want.
2. Save the input as an Apify Task.
3. Add an hourly or daily Schedule. For hourly schedules, use `sinceHours: 2` to provide overlap.
4. Connect the finished run or dataset to an Apify webhook/integration, then deduplicate downstream on `disclosureId`.

The Actor intentionally returns overlapping records rather than keeping shared hidden state. This makes scheduled runs reproducible and prevents one user's watchlist state from affecting another user's results.

### Output example

```json
{
    "type": "tdnet_disclosure",
    "disclosureId": "tdnet_2f4f8d07d9f8a2b73c10",
    "source": "TDnet (official site)",
    "companyCode": "72030",
    "companyName": "トヨタ自動車",
    "title": "自己株式取得に係る事項の決定に関するお知らせ",
    "pubdate": "2026-07-27 15:00",
    "publishedAt": "2026-07-27T06:00:00.000Z",
    "watchlistMatched": true,
    "matchedKeywords": ["自己株式"],
    "documentUrl": "https://www.release.tdnet.info/...pdf"
}
```

A `report_summary` item is always appended with source counts and any warnings.

**Pay-per-event note:** Apify charges each default dataset item as one result event. Therefore a run with 5 disclosure records produces 6 billable result events: 5 disclosures plus 1 `report_summary`. A zero-result run still produces the summary so that automation receives a structured status.

### Why bring your own EDINET/gBizINFO keys?

Both keys are **free** and take ~5 minutes to obtain:

- EDINET: https://api.edinet-fsa.go.jp/ (email registration)
- gBizINFO: https://info.gbiz.go.jp/hojin/api\_registration/form

The Actor works without them (TDnet-only mode), but adding them unlocks the full report. Keys are marked secret and never stored.

### Notes & limitations

- Company-name queries against TDnet match recent disclosures only; securities codes are more reliable.
- gBizINFO lookup requires a company **name** (the registry has no securities-code index).
- English company names are not yet supported for TDnet queries — use the securities code instead.
- This Actor returns public regulatory data as-is. It is not investment advice.

### Use cases

- **AI agents / RAG**: feed structured Japanese disclosure data into LLM pipelines (MCP-friendly output).
- **Investor monitoring**: schedule daily runs with keyword filters (buybacks, revisions, MBO) and pipe to Slack/email via Apify integrations.
- **Due diligence**: one-call company snapshot combining exchange, regulator, and registry data.
- **Market research**: track disclosure activity across the Japanese market without reading Japanese portals.

### Support

Open an issue on the Actor's Issues tab — maintained actively, typical response within 1–2 business days.

# Actor input Schema

## `query` (type: `string`):

Japanese company name (e.g. トヨタ自動車, ソニー) or 4-digit TSE securities code (e.g. 7203). Leave empty with mode=market\_feed to get the latest market-wide disclosures.

## `mode` (type: `string`):

watchlist: monitor selected TSE securities codes within a recent time window. company\_report: full intelligence report for one company. market\_feed: latest disclosures across the market.

## `keyword` (type: `string`):

Optional single keyword for market\_feed or watchlist mode. For multiple watchlist terms, use keywords below.

## `watchlist` (type: `array`):

TSE securities codes to monitor in watchlist mode, for example 7203, 6758, 8306. Up to 50 codes.

## `keywords` (type: `array`):

Optional title keywords. A disclosure is returned when any term matches. Leave empty to return every disclosure for the watchlist.

## `sinceHours` (type: `integer`):

Return watchlist disclosures published within this many hours. Use 24 for daily schedules or 2 for hourly schedules with overlap.

## `maxDisclosures` (type: `integer`):

Maximum number of timely disclosures to return.

## `includeEdinet` (type: `boolean`):

Include recent EDINET filings (annual/quarterly reports, large shareholding reports). Requires edinetApiKey.

## `includeGbiz` (type: `boolean`):

Include corporate registry basics (address, corporate number, representative, employees, subsidies, procurement awards). Requires gbizApiToken.

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

Your own EDINET v2 API subscription key (free at https://api.edinet-fsa.go.jp/). If omitted, EDINET section is skipped.

## `gbizApiToken` (type: `string`):

Your own gBizINFO API token (free at https://info.gbiz.go.jp/hojin/api\_registration/form). If omitted, gBizINFO section is skipped.

## `edinetLookbackDays` (type: `integer`):

How many days back to scan EDINET filing lists (each day = 1 API call).

## `language` (type: `string`):

Language for summary labels in the output report.

## Actor input object example

```json
{
  "query": "7203",
  "mode": "market_feed",
  "watchlist": [
    "7203",
    "6758",
    "8306"
  ],
  "keywords": [],
  "sinceHours": 24,
  "maxDisclosures": 30,
  "includeEdinet": true,
  "includeGbiz": true,
  "edinetLookbackDays": 14,
  "language": "en"
}
```

# Actor output Schema

## `items` (type: `string`):

All result items from the default dataset: TDnet disclosures, EDINET filings, gBizINFO registry records, and a final report\_summary item.

## `overview` (type: `string`):

Run results in Apify Console table view.

# 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("agentworkflowlab/japan-company-intel").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("agentworkflowlab/japan-company-intel").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 agentworkflowlab/japan-company-intel --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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