δΈζη: δΈζηζ¬
TL;DR. HKEXnews is the canonical disclosure portal for all ~2,600 companies listed on the Hong Kong Stock Exchange's Main Board and GEM. Every regulatory announcement β earnings, profit warnings, connected-party transactions, change-of-substantial-shareholder, share buybacks, suspension notices β must be filed here before market sensitive distribution. HKEX exposes a basic announcement listing on the site, but no full-coverage public API. For compliance teams running cross-border A/H surveillance, equity research desks tracking dual-listed names, and SFC-regulated managers running their own disclosure monitoring, you need announcements as structured data. This guide covers the HKEXnews structure, the disclosure types that matter, and a working Python pipeline using the HKEX News Announcements actor.
How HKEX disclosure actually works
HKEX's continuous-disclosure obligations are set out in the Main Board Listing Rules (Chapters 13 and 17 in particular) and the parallel GEM Rules. Listed issuers must publish "inside information" β anything that a reasonable person would consider material to share price β through HKEXnews before any other distribution channel. The portal accepts filings around the clock; trading-sensitive announcements typically appear before the 9:30am HKT open or after the 4:00pm close.
Each announcement has:
- Stock code β the four-digit HKEX ticker (00700 = Tencent, 00005 = HSBC)
- Headline category β HKEX's structured taxonomy (Announcements and Notices, Circulars, Listing Documents, Monthly Returns, Next Day Disclosure Returns, etc.)
- Document type code β within category, e.g., "Profit Warning," "Connected Transaction," "Trading Halt"
- Published date/time β HKT timestamp
- PDF link β the actual filing document
The HKEXnews search at https://www1.hkexnews.hk/search/titlesearch.xhtml exposes filtering by stock code, date range, headline category, and document type β driven by an internal XHR endpoint that returns paginated JSON results. The endpoint is public and stable but undocumented for third-party use.
Disclosure types that matter for monitoring
- Profit warning / profit alert β the canonical pre-announcement of material earnings deviation. Almost always moves the stock at next open.
- Connected transaction announcements β Chapter 14A. Hong Kong's RPT regime is materially stricter than US 8-K Item 1.01 β a meaningful share of HK announcement volume.
- Change of substantial shareholder β disclosure of interest filings under Part XV of the SFO.
- Trading halt / suspension β frequently precedes a material announcement; the suspension itself is the signal.
- Share buyback monthly returns β under the Buybacks Code, companies must disclose monthly repurchase activity.
- Inside information announcements β the catch-all under SFO Β§307 covering anything materially price-sensitive that doesn't fit the structured categories.
Why cross-border matters
The single biggest reason to pull HKEX programmatically is cross-listing surveillance. Approximately 150 mainland Chinese issuers maintain both an A-share (mainland) and an H-share (Hong Kong) listing β Bank of China, Ping An Insurance, ICBC, BYD, and most large state-owned enterprises. Material announcements must be published on both venues but timing is not always perfectly aligned, and the A/H price premium (typically tracked via the Hang Seng AH Premium Index) is one of the most-watched cross-border indicators in Asian equities.
For desks running dual-listed strategies, pulling HKEX announcements in parallel with A-share data from Eastmoney turns HKEXnews from a static portal into a real-time information edge.
Working Python example
The HKEX News Announcements actor wraps the HKEXnews search with stock-code resolution, headline taxonomy normalization, and PDF link extraction. Curl:
curl -X POST "https://api.apify.com/v2/acts/nexgendata~hkex-news-announcements/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"stockCodes": ["00700","00005","09988"], "since": "2026-05-01", "categories": ["PROFIT_WARNING","INSIDE_INFORMATION"]}'
Python β A/H dual-listed monitoring:
import os, json, urllib.request
APIFY_TOKEN = os.environ["APIFY_TOKEN"]
ACTOR = "nexgendata~hkex-news-announcements"
ah_dual = ["00939","01398","02628","00386","00857","02318","02628","01088"]
payload = json.dumps({
"stockCodes": ah_dual,
"since": "2026-05-01",
"categories": ["PROFIT_WARNING","INSIDE_INFORMATION",
"CONNECTED_TRANSACTION","SHARE_BUYBACK"],
}).encode("utf-8")
url = f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items?token={APIFY_TOKEN}"
req = urllib.request.Request(url, data=payload, method="POST",
headers={"Content-Type": "application/json"})
with urllib.request.urlopen(req, timeout=600) as r:
items = json.loads(r.read())
for a in items:
print(f"{a['publishedAt']} | {a['stockCode']} {a['issuerName']} | {a['category']}")
print(f" {a['headline']}")
print(f" {a['pdfUrl']}")
Returned shape:
{
"stockCode": "00700",
"issuerName": "TENCENT HOLDINGS LIMITED",
"publishedAt": "2026-05-29T18:30:00+08:00",
"category": "ANNOUNCEMENTS_AND_NOTICES",
"documentType": "INSIDE_INFORMATION",
"headline": "Inside Information - Voluntary Announcement Regarding ...",
"pdfUrl": "https://www1.hkexnews.hk/listedco/listconews/sehk/2026/0529/...pdf",
"language": "en"
}
How this compares to commercial feeds
| Source | Coverage | Structured | Annual cost |
|---|---|---|---|
| Bloomberg Terminal (HK announcements) | Full + Bloomberg news overlay | Yes | ~$24k per seat |
| Refinitiv Eikon (HK filings) | Full | Yes | ~$22k per seat |
| FactSet | Full | Yes | ~$15kβ$25k per seat |
| HKEXnews own site / Bahasa search | Full | No β HTML + PDF only | Free, manual |
| HKEX's iASR API | Limited β issuer self-service | Yes but restricted | Subscription, HK-issuer-only practical use |
| HKEX Announcements actor | Full HKEXnews coverage | Yes β JSON normalized | PPE per announcement |
HKEX's own iASR (Issuer Annual Report) system is designed for issuers preparing filings, not for third-party monitoring β its API is not the right tool if what you want is "tell me every profit warning in real time." For that use case, the public HKEXnews search is the right source; the question is just whether to write the scraper yourself or pay PPE.
SFC compliance use cases
SFC-licensed asset managers running long-short HK strategies have a continuous obligation to monitor disclosures on positions held. For a 200-name portfolio, manual HKEXnews polling is workable but error-prone β a profit warning published at 18:30 HKT can sit unread until the next trading day. Automated polling at 5-minute cadence with email alerts on the issuer's holdings list closes that gap for under $50/month in PPE costs.
Adjacent surveillance feeds you'll likely want: A-share data for cross-border, Chinese ADRs for US triangulation, and (for global mandates) the SGX announcements feed covering Singapore.
Trading-halt detection patterns
HK trading halts under the Listing Rules are typically announced via a short "Trading Halt" notice followed within hours by the underlying inside-information announcement. The 30-minute window between halt and substantive announcement is the highest-value real-time monitoring window for HK equity research. Polling cadence under one minute and a webhook downstream of the actor turns this into a usable signal source rather than a post-hoc record.
Language considerations
HKEX requires bilingual filings for Main Board issuers β English and Traditional Chinese versions are typically published simultaneously. The actor returns both PDF URLs when available; downstream pipelines that key off English headlines should fall back to the Chinese version for issuers whose English filing lags.
Get started: Pull your first HKEX announcement batch free at the HKEX News Announcements actor page. Filter by stock code, headline category, or date range.
Related Reading
More from this China / APAC series:
- Eastmoney China A-Shares Data API: Build Your Own Bloomberg for Chinese Equities
- Chinese ADRs Stock Screener: API for US-Listed Chinese Equities (Alibaba, JD, Pinduoduo)
- Korea KIND Disclosures API: KOSPI/KOSDAQ Corporate Filings in Real Time
From the SEC/SGX/ASX and PR-newswire series:


