>
, ,

港交所上市公司公告 API:大规模港股披露监控与 A/H 跨境合规

Reading Time: 2 minutes

核心要点。HKEXnews 是港交所主板与 GEM 约 2,600 家上市公司的官方披露门户。所有监管公告 —— 业绩、盈警、关联交易、主要股东权益变动、股份回购、停牌通知 —— 都必须在向市场分发前先在此发布。港交所网站提供基础公告检索,但没有面向第三方的全量公开 API。对于跑 A/H 跨境监控的合规团队、追踪两地上市公司的港股研究台、需要自建披露监控的 SFC 持牌资管,你需要把公告拉成结构化数据。本文讲清楚 HKEXnews 数据结构、关键披露类型,以及基于 港交所公告 Actor 的 Python 实战代码。

English version: HKEX Listed Company Announcements API

港交所披露机制怎么运作

港交所的持续披露义务源自主板上市规则(主要是第 13 章与第 17 章)以及对应的 GEM 规则。上市公司必须在 HKEXnews 上发布”内幕消息” —— 任何理性投资者会认为对股价有重大影响的信息 —— 之后才能通过其他渠道分发。门户全天候接受文件提交;对交易敏感的公告通常出现在港股开盘前(早 9:30 HKT 前)或收盘后(下午 4 点后)。

每条公告包含:

  • 股票代码 —— 港交所四位代码(00700 = 腾讯,00005 = 汇丰)
  • 标题分类 —— 港交所结构化分类(“公告及通告”、”通函”、”上市文件”、”月报表”、”翌日披露报表”等)
  • 文件类型代码 —— 分类内细分,如”盈利警告”、”关联交易”、”暂停买卖”
  • 发布时间 —— 港股时间
  • PDF 链接 —— 实际文件

HKEXnews 检索接口在 https://www1.hkexnews.hk/search/titlesearch.xhtml,支持按股票代码、日期、分类、文件类型筛选 —— 背后是返回分页 JSON 的 XHR 接口。接口公开稳定,但未官方开放给第三方使用。

对监控有价值的披露类型

  • 盈利警告 / 盈利预喜 —— 重大业绩偏离的”预公告”。几乎必然在次日开盘引发股价异动。
  • 关联交易公告 —— 主板规则第 14A 章。港股关联方交易披露门槛远低于美股 8-K Item 1.01,公告量占比相当可观。
  • 主要股东权益变动 —— 依据证券及期货条例第 XV 部的权益披露。
  • 暂停买卖 / 复牌 —— 常常是重大公告的前置信号;停牌本身就是事件。
  • 股份回购月报表 —— 依据回购守则,公司须按月披露回购活动。
  • 内幕消息公告 —— SFO 第 307 条下不归入结构化类别的”兜底”披露。

为什么跨境监控是头号场景

用程序化方式拉港交所公告,最大动机就是 A/H 两地上市监控。约 150 家中国内地公司同时在 A股与 H股挂牌 —— 中国银行、中国平安、工商银行、比亚迪、绝大多数大型央企。重大公告必须在两地同步披露,但时间不总是完全对齐,A/H 溢价(通常通过恒生 AH 溢价指数追踪)是亚洲股票最受关注的跨境指标之一。

对运行两地上市策略的研究台,把港交所公告与东方财富 A股数据并行拉取,可以把 HKEXnews 从静态门户升级为实时信息优势源。

Python 实战代码

港交所公告 Actor 封装了 HKEXnews 检索接口,包含股票代码解析、分类规范化、PDF 链接提取。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 两地上市监控:

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']}")

返回结构:

{
  "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"
}

与商业数据源的对比

数据源覆盖结构化年费
Bloomberg(港股公告)全覆盖 + 彭博新闻单席位约 16 万元
Refinitiv Eikon(港股)全覆盖单席位约 15 万元
万得 Wind 港股模块全覆盖 + 估值与基本面单席位约 20 万 – 50 万元
AAStocks大部分公告 + 行情部分港币百元级 / 月
HKEXnews 官网搜索全覆盖否 —— 仅 HTML + PDF免费、手工
港交所公告 ActorHKEXnews 全覆盖是,规范化 JSONPPE 按条计费

港交所自家的 iASR(发行人年报)系统服务发行人本身的报送,不是第三方监控工具 —— “实时告诉我谁发了盈警”这种需求它不解决。对于这种用例,公开的 HKEXnews 检索接口才是正确数据源,问题只是自己写爬虫还是按调用付费。

SFC 合规场景

SFC 持牌资管运行港股多空策略时,对持仓的披露监控是持续合规义务。200 只股票的组合,人工轮询 HKEXnews 勉强可做但极易出错 —— 18:30 HKT 发布的盈警,可能要到次个交易日才被发现。按 5 分钟节奏自动轮询、按持仓清单推邮件告警,每月成本不到 50 美元的 PPE 就能补上这个缺口。

同时会用到的配套数据源:A股数据用于跨境分析中概股用于美股三角验证

停牌检测模式

港交所根据上市规则实施的停牌,通常先发短”暂停买卖”通知,几小时内再发实际的内幕消息公告。这 30 分钟窗口是港股研究最有价值的实时监控时段。Actor 调用频率低于 1 分钟,加上下游 webhook,就能把它变成可用的信号源,而不是事后记录。

双语披露说明

港交所要求主板发行人提交双语文件 —— 英文与繁体中文版本通常同步发布。Actor 在可得时同时返回两版 PDF 链接;以英文标题为 key 的下游 pipeline 应回退到中文版以处理英文版滞后的情况。

开始使用:港交所公告 Actor 页面免费拉第一批数据。支持按股票代码、分类、日期筛选。

系列相关阅读

中国/亚太系列:

English version: HKEX Listed Company Announcements API: Hong Kong Disclosure Monitoring at Scale

Run it yourself in minutes

New users get $5 free credit (no card). Browse the full 300+ actor catalog and run any tool on pay-per-use pricing.

More from the blog