io.github.simonmak-ascent/hkex-filings

HKEx Filings

Live HKEx (Hong Kong Stock Exchange) regulatory filings for AI agents.

2.4.2
Version
remote + pypi
Transport
4
Tools

Security review

Review passed

Reviewed 1d ago.

  • tools: 4 tools scanned
  • metadata: scanned
  • packages: 1 checked

No findings.

Tools (4)

  • get_server_info

    Report this live gateway's version, transport, and hard limits. Reads nothing.

  • search_filings

    Search live HKEx filings in a date window (at most 31 days). ``from_date``/``to_date`` accept YYYY-MM-DD or DD/MM/YYYY. All filters are optional and combine with AND semantics: ``stock_code`` matches exactly (e.g. ``01461`` or ``1461``); ``title_query``, ``category`` and ``stock_name`` are case-insensitive substrings (e.g. category ``Dividend``); ``document_type`` matches the file type exactly (e.g. ``PDF`` or ``HTML``). Filters are applied to the fetched window, so widen ``max_results`` to catch rarer matches. ``max_results`` caps the number of filings fetched and returned (hard cap 200). Returns the matching filings — each carrying ``fileType``, ``sizeText``, ``category`` and ``newsId`` metadata — plus the HKEx-reported total for the window. Use list_filing_facets first to see which categories, types and codes exist in a window.

  • list_filing_facets

    Browse what filings exist in a date window (at most 31 days) without downloading. ``from_date``/``to_date`` accept YYYY-MM-DD or DD/MM/YYYY. Returns counts of the categories (headline categories), document types, and stock codes present in the window, each sorted by frequency and capped at 50 values, plus the distinct counts. Optionally narrow to one ``stock_code``. Use this to discover valid filter values before calling search_filings; it fetches the window once and extracts no document text.

  • get_filing

    Download one HKEx document by its URL and read, page through, or search its text. ``link`` must be an HKEx document URL from search_filings (host ``www1.hkexnews.hk``); any other host is rejected. With ``extract=True`` (default) the response includes up to 30 ``tables`` and a window of extracted ``document_text``: ``max_chars`` characters starting at ``offset``. Long reports return ``next_offset``; call again with it to read the next window. Pass ``query`` to search the whole document instead: the response then lists up to 20 case-insensitive matches with their offsets and surrounding text, plus ``match_count`` — use a match offset to read that part. Set ``extract=False`` for size and content type only.