hkex_disclosure_interests
Concert parties, controlled corporations and capacity behind each HKEX SDI filing
Download a file
CSV · Excel · Parquet · JSON. Filtered exports.
See pricingQuery with SQL
DBeaver, DuckDB, MotherDuck, or HTTPS. Sub-second latency.
Open connection detailsConnect to AI
MCP for Claude Desktop, Cursor, ChatGPT, Goose. 1-line install.
See setupDetail companion to the HKEX Insider Disclosures dataset: the named parties behind each Part-XV (SDI) filing. Where HKEX Insider Disclosures carries only presence flags for the nested interest blocks, this dataset lists them — persons acting in concert, other parties to a s.317 agreement, controlled corporations, joint shareholders, trusts, the capacity in which shares are held, and derivative interests — each with its party names, codes and long/short share counts. One row per disclosure form; join to HKEX Insider Disclosures on form_serial_number. Multi-valued blocks are flattened to single, pipe-delimited (" | ") cells, aligned by element index across a block's columns. Dependent (child/spouse) deemed interests are included, as HKEX's own mandatory SDI filing already discloses them publicly.
Evaluate it in full below: the evidence and a working sample are open to everyone. Buy or subscribe to unlock the complete dataset — your account is created automatically at checkout.
The evidence
Rows over time
monthSchema & column quality (34 columns)
Scroll table sideways to see more columns →
| Column | Type | Description | Populated | Distinct |
|---|---|---|---|---|
| form_serial_number | Nullable(String) | Disclosure form serial number — join key to the HKEX Insider Disclosures dataset | — | — |
| stock_code | Nullable(String) | HKEX stock code of the listed corporation the interests concern | — | — |
| corporation_name | Nullable(String) | Name of the listed corporation | — | — |
| discloser_name | Nullable(String) | Full name of the discloser as stated on the form (the substantial shareholder / director / chief executive making the disclosure) | — | — |
| event_date | Nullable(Date) | Date of the relevant event triggering the disclosure | — | — |
| concert_party_names | Nullable(String) | Names of persons acting in concert with the discloser under a s.317(1)(a) agreement (' | '-delimited) | — | — |
| concert_party_relationship_codes | Nullable(String) | Relationship code for each concert party, aligned to concert_party_names (decode via HKEX Disclosure Codes) | — | — |
| concert_party_percents | Nullable(String) | Percentage of control stated for each concert party, aligned to concert_party_names | — | — |
| agreement_party_names | Nullable(String) | Names of other parties to the s.317 agreement (' | '-delimited) | — | — |
| agreement_party_shares | Nullable(String) | Share count for each s.317 agreement party, aligned to agreement_party_names. Unlike the other blocks on this form, the s.317 section reports a single undivided figure per party rather than separate long and short positions, so this is the party's whole disclosed holding. | — | — |
| controlled_corporation_names | Nullable(String) | Names of controlled corporations through which the discloser holds an interest (' | '-delimited) | — | — |
| controlled_corporation_long_shares | Nullable(String) | Long-position share count held via each controlled corporation, aligned to controlled_corporation_names | — | — |
| controlled_corporation_short_shares | Nullable(String) | Short-position share count held via each controlled corporation, aligned to controlled_corporation_names | — | — |
| controlled_corporation_control_percents | Nullable(String) | Percentage of control the discloser has over each controlled corporation, aligned to controlled_corporation_names | — | — |
| joint_shareholder_names | Nullable(String) | Names of joint shareholders holding the interest jointly with the discloser (' | '-delimited) | — | — |
| joint_shareholder_long_shares | Nullable(String) | Long-position share count for each joint shareholding, aligned to joint_shareholder_names | — | — |
| joint_shareholder_short_shares | Nullable(String) | Short-position share count for each joint shareholding, aligned to joint_shareholder_names | — | — |
| trust_names | Nullable(String) | Names of trusts under which the interest is held (' | '-delimited) | — | — |
| trust_status_codes | Nullable(String) | Trust status code for each trust interest, aligned to trust_names (decode via HKEX Disclosure Codes) | — | — |
| trust_long_shares | Nullable(String) | Long-position share count for each trust interest, aligned to trust_names | — | — |
| capacity_codes | Nullable(String) | Capacity codes describing the capacity in which the discloser holds the shares (' | '-delimited; decode via HKEX Disclosure Codes) | — | — |
| capacity_long_shares | Nullable(String) | Long-position share count for each capacity line, aligned to capacity_codes | — | — |
| capacity_short_shares | Nullable(String) | Short-position share count for each capacity line, aligned to capacity_codes | — | — |
| derivative_codes | Nullable(String) | Codes describing the derivative interests disclosed (' | '-delimited; decode via HKEX Disclosure Codes) | — | — |
| derivative_shares | Nullable(String) | Number of underlying shares for each derivative interest, aligned to derivative_codes | — | — |
| event_code_2 | Nullable(String) | Event code for the secondary relevant-event position, where the form records more than one event (decode via HKEX Disclosure Codes) | — | — |
| dependent_names | Nullable(String) | Names of the discloser's children/spouse whose deemed interests are disclosed on the form (' | '-delimited). PII already disclosed in the mandatory HKEX SDI filing. | — | — |
| dependent_relationships | Nullable(String) | Relationship (child or spouse) for each dependent, aligned to dependent_names | — | — |
| sfc_central_number | Nullable(String) | SFC central entity number (CE number) of the discloser, where stated — links the filing to the SFC licensed-persons corpus | — | — |
| previous_form_serial | Nullable(String) | Serial number of the previous disclosure form this one supersedes/amends, where stated | — | — |
| number_of_attachments | Nullable(Int32) | Number of attachments accompanying the disclosure form | — | — |
| supplementary_info | Nullable(String) | Free-text supplementary information provided on the form | — | — |
| updated_at | Nullable(DateTime) | Timestamp when the record was scraped/ingested | — | — |
| id | String | Stable unique identifier for this row — the last column of every export. Use it to deduplicate, to key an incremental load, or to reference one specific row. It is additive: the entity and join keys you already use (race_id, horse_id, and the like) are unchanged. | — | — |
Every SDI interest breakdown filed in the last 12 months, full schema and no row cap.
Choose your access
A Pass gives you freshness within a rolling window. The Full Archive gives you the full history we hold for the dataset, frozen at purchase. They solve different problems, and they work together.
Pass subscription
HK Corporate Diligence — Compliance Pass
Continuously updated, with API access.
View full package →- Access window
- Full history (no window)
- Updates
- Continuous, within hours of the source
- Delivery
- API, SQL and downloads
- Exports
- 1,000,000 rows/month included
Included Datasets
Get notified when this dataset is updated.
Questions about this data?
Our data experts are ready to help clarify any aspects of this dataset.
Contact Our Team