# APAC Disclosure Monitor — New Market Announcement Alerts (`nexgendata/apac-disclosure-monitor`) Actor

- **URL**: https://apify.com/nexgendata/apac-disclosure-monitor.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $200.00 / 1,000 disclosure alerts

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

## APAC Disclosure Monitor — New Market Announcement Alerts

Monitor official APAC market announcements and receive delta alerts for new company disclosures across supported exchanges. This is not a bundle of raw scrapers — it watches issuers, companies, exchanges, or keywords, snapshots what it has seen, and emits only new announcements since the previous run.

### What it does

On each run it pulls recent disclosures from each selected exchange's official feed (via NexGenData's owned per-exchange disclosure Actors), normalizes them to a single schema, records what it has seen, and in delta mode emits only new announcements. Schedule it daily and you only ever see new disclosures. One exchange being temporarily unavailable never fails the whole run — the others still return, with a clear partial-results warning.

### Live coverage (v1)

- **ASX** — Australian Securities Exchange company announcements
- **HKEX** — Hong Kong Exchanges news/disclosures
- **TWSE** — Taiwan MOPS market disclosures
- **KRX** — Korea KIND disclosures
- **NSE / India** — India SEBI filings

**SGX** (Singapore Exchange) is **supported but intermittent** — its underlying feed uses live browser interception that occasionally returns nothing, so it is not in the default set and not claimed as reliable coverage. Include `SGX` explicitly to try it.

*Other APAC markets (e.g. Japan TDnet, Philippines PSE) are planned and not included in this version.*

### Who it's for

Funds and analysts with APAC coverage, investor relations, compliance, and corporate-development teams that need one recurring watch across multiple Asian markets.

### Recommended setup

**Run once in `full` mode to baseline, then schedule daily `delta` runs.** The first delta run per exchange records a baseline and emits nothing (expected); after that you get only new announcements.

### Inputs

`exchanges`, `tickers`, `company_names`, `keywords`, `categories`, `lookback_days` (default 3), `mode` (delta/full), `max_announcements` (per exchange), `include_raw`.

### Outputs

`exchange, ticker, company, announcement_title, announcement_type, category, published_at, announcement_date, document_url, source_url, change_type, matched_watch, detected_at` (plus `raw` when enabled).

### Delta mode vs full mode

- **full** — emits every matching announcement in the window per exchange and refreshes the snapshot.
- **delta** — emits only announcements whose source ID (or exchange + ticker/company + title + date fallback) has not been seen before. First delta run baselines and emits nothing; later runs emit only new disclosures.

### Limitations

This is an **alerting tool, not investment or legal advice**. It monitors **recent** disclosures on a rolling window via the owned per-exchange source Actors; coverage and timing follow each exchange's official feed. Some markets provide a company name but no ticker (e.g. India SEBI). Always confirm against the official exchange filing before acting.

# Actor input Schema

## `exchanges` (type: `array`):

Markets to monitor. Live: ASX, HKEX, TWSE, KRX, NSE. SGX is supported but intermittent (its source feed is flaky) — include it explicitly if you want it. Empty = the 5 live markets.
## `tickers` (type: `array`):

Only alert on announcements from these tickers; empty = all in the window.
## `company_names` (type: `array`):

Only alert on these companies (whole-word name match).
## `keywords` (type: `array`):

Only alert on announcements whose title/type/category contains one of these keywords.
## `categories` (type: `array`):

Only alert on announcements whose category matches one of these.
## `lookback_days` (type: `integer`):

How many days back to scan on each run.
## `mode` (type: `string`):

delta = only announcements not seen since last run (first run baselines). full = all in window.
## `max_announcements` (type: `integer`):

Cap on announcements pulled per exchange per run.
## `include_raw` (type: `boolean`):

Attach the raw source announcement record to each output row.

## Actor input object example

```json
{
  "exchanges": [
    "ASX",
    "HKEX",
    "TWSE",
    "KRX",
    "NSE"
  ],
  "tickers": [],
  "company_names": [],
  "keywords": [],
  "categories": [],
  "lookback_days": 3,
  "mode": "delta",
  "max_announcements": 100,
  "include_raw": 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/apac-disclosure-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("nexgendata/apac-disclosure-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 nexgendata/apac-disclosure-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "APAC Disclosure Monitor — New Market Announcement Alerts",
        "version": "0.0",
        "x-build-id": "3MKl6Vxqa41vUGj29"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~apac-disclosure-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-apac-disclosure-monitor",
                "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~apac-disclosure-monitor/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-apac-disclosure-monitor",
                "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~apac-disclosure-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-apac-disclosure-monitor",
                "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": {
                    "exchanges": {
                        "title": "Exchanges",
                        "type": "array",
                        "description": "Markets to monitor. Live: ASX, HKEX, TWSE, KRX, NSE. SGX is supported but intermittent (its source feed is flaky) — include it explicitly if you want it. Empty = the 5 live markets.",
                        "default": [
                            "ASX",
                            "HKEX",
                            "TWSE",
                            "KRX",
                            "NSE"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "tickers": {
                        "title": "Watched tickers (optional)",
                        "type": "array",
                        "description": "Only alert on announcements from these tickers; empty = all in the window.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "company_names": {
                        "title": "Watched companies (optional)",
                        "type": "array",
                        "description": "Only alert on these companies (whole-word name match).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "keywords": {
                        "title": "Keywords (optional)",
                        "type": "array",
                        "description": "Only alert on announcements whose title/type/category contains one of these keywords.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "categories": {
                        "title": "Categories (optional)",
                        "type": "array",
                        "description": "Only alert on announcements whose category matches one of these.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "lookback_days": {
                        "title": "Lookback window (days)",
                        "minimum": 1,
                        "maximum": 90,
                        "type": "integer",
                        "description": "How many days back to scan on each run.",
                        "default": 3
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "full",
                            "delta"
                        ],
                        "type": "string",
                        "description": "delta = only announcements not seen since last run (first run baselines). full = all in window.",
                        "default": "delta"
                    },
                    "max_announcements": {
                        "title": "Max per exchange",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on announcements pulled per exchange per run.",
                        "default": 100
                    },
                    "include_raw": {
                        "title": "Include raw record",
                        "type": "boolean",
                        "description": "Attach the raw source announcement record to each output row.",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
