crhk_companies
Hong Kong Companies Registry company directory
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 setupDirectory of every registered Hong Kong company from the Companies Registry: over 3.6 million companies, active and dissolved, dating back decades. Search by company name or business registration number; check incorporation and dissolution dates, active/dissolved status, company type, and winding-up mode. Includes enrichment from the modern ICRIS electronic filing system. Registered- office address coverage is strong for active companies and sparse for long- dissolved ones (see the registered_office_address column).
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
Schema & column quality (60 columns)
| Column | Type | Description | Populated | Distinct |
|---|---|---|---|---|
| business_registration_number | String | Business Registration Number (BRNO) — primary identifier for the company | — | — |
| cr_number | Nullable(String) | Company Registration Number (CRN) — empty when no CRN is on record for the company. See has_no_cr_number to distinguish a registry-confirmed absence from a value we simply don't have | — | — |
| has_no_cr_number | Bool | True when the registry confirms the company has NO Company Registration Number (post-2023 UBI companies), as opposed to a CRN we just don't have on record (in which case cr_number is empty and this is false) | — | — |
| english_name | Nullable(String) | Company name in English | — | — |
| chinese_name | Nullable(String) | Company name in Chinese characters | — | — |
| status | Nullable(String) | Reconciled legal lifecycle state (Active, Dissolved, Ceased, Ceased Registration, Amalgamated; null if unknown). 'Ceased Registration' is a registered non-Hong Kong company (Cap. 622 Part 16) that has ceased its Hong Kong registration (Form NN13) — it is NOT dissolved; it may still exist under its home jurisdiction. 'Struck off' is a MECHANISM of dissolution, not a status — a struck-off company reads status='Dissolved' with dissolution_mode='Struck Off'; compose the two for display (e.g. 'Dissolved — struck off') | — | — |
| is_active | Bool | True if company has a Live/registered status | — | — |
| is_dissolved | Bool | True if status indicates dissolution/amalgamation/struck-off, or a dissolution date exists with a non-active status | — | — |
| is_dormant | Bool | True if the company currently has an OPEN dormancy interval (registry's own dates) | — | — |
| dormant_since | Nullable(String) | Date the company's current dormancy interval commenced (null if not currently dormant) | — | — |
| lifecycle_substatus | Nullable(String) | Detailed lifecycle sub-status (e.g. live-but-dormant, ceased place of business), best-effort label | — | — |
| money_lender_licence_status | Nullable(String) | Money Lenders Ordinance (Cap. 163) register status for this company — licensed, application_pending, licence_expired, application_dismissed or application_withdrawn; empty for the vast majority of companies (no register entry). Linked by deterministic company-name match; full register entries and match rules in the crhk_money_lenders dataset | — | — |
| company_type | Nullable(String) | Legal entity form — the classification that cleanly splits every organisation, each mapping to its governing HK ordinance: Local company (Companies Ordinance Cap. 622), Registered non-Hong Kong company (Cap. 622 Part 16), Limited partnership (Cap. 37), Limited partnership fund (Cap. 637), Open-ended fund company (Cap. 571), Registered trustees (Cap. 306), Statutory body corporate, Mutual fund, Unregistered company, Overseas corporation with registered charge. Ownership and liability (below) further describe local companies | — | — |
| ownership | Nullable(String) | Ownership class of a local Hong Kong company (Companies Ordinance Cap. 622): Private (restricted share transfer, ≤50 members, no invitation to the public — s.11) or Public (s.12). Null for companies limited by guarantee (no share-ownership axis) and for all non-Cap.622 forms (funds, partnerships, non-Hong-Kong companies) | — | — |
| liability | Nullable(String) | Members' liability form of a local Hong Kong company (Companies Ordinance Cap. 622): Limited by shares (s.8), Limited by guarantee (s.9 — no share capital), or Unlimited (s.10). Null for non-Cap.622 forms (funds, partnerships, non-Hong-Kong companies) | — | — |
| incorporation_date | Nullable(String) | Date the company was incorporated in Hong Kong (YYYY-MM-DD format) | — | — |
| incorporation_year | Nullable(Int32) | Year the company was incorporated | — | — |
| years_since_incorporation | Nullable(Int64) | Number of years since the company was incorporated (calculated from today) | — | — |
| dissolution_date | Nullable(String) | Date the company was dissolved (null if still active) | — | — |
| dissolution_mode | Nullable(String) | How the company dissolved, best-effort label paired with dissolution_date | — | — |
| redomicile_date | Nullable(String) | Date the company re-domiciled into/out of Hong Kong (null if not applicable) | — | — |
| amalgamation_date | Nullable(String) | Date the company was amalgamated (merged), null if not applicable | — | — |
| ceased_business_date | Nullable(String) | Date a foreign company ceased its Hong Kong place of business (foreign analogue of dissolution) | — | — |
| registered_office_address | Nullable(String) | Registered-office address, reconciled to the last known value across legacy and open-data sources (a withdrawn modern value never overwrites a real one). Coverage is strong for active companies (~81%) and sparse for long-dissolved ones (~40% overall) — the registry stops exposing addresses for long-dead companies | — | — |
| has_address | Bool | True if a registered-office address is on record for the company | — | — |
| address_as_of | Nullable(Date) | Date we last observed the registered-office address on record (full history in crhk_address_history) | — | — |
| charges_register | Nullable(String) | Charges register indicator from legacy registry data (有 = charges exist) | — | — |
| has_charges | Bool | True if charges are registered against the company (from legacy registry data) | — | — |
| winding_up_mode | Nullable(String) | Winding-up mode if the company is being wound up: Compulsory Winding Up, Members' Voluntary Winding Up, Creditors' Voluntary Winding Up, or Others (ICRIS canonical). Empty if not in winding up. | — | — |
| remarks | Nullable(String) | Registry remarks about the company (Chinese text, often procedural notes) | — | — |
| important_notes | Nullable(String) | Important notes from the Companies Registry (Chinese text) | — | — |
| is_one_member_company | Bool | True if registered as a one-member (sole-member) company | — | — |
| has_receiver_appointed | Bool | True if a receiver has been appointed (insolvency-distress signal, modern API, rare) | — | — |
| is_deregistered | Bool | True if the company is/was deregistered (voluntary deregistration; legacy ICRIS registry signal) | — | — |
| deregistration_date | Nullable(String) | Deregistration commencement date (ISO YYYY-MM-DD), when recorded | — | — |
| strike_off_date | Nullable(String) | Striking-off commencement date (ISO YYYY-MM-DD), when recorded | — | — |
| is_s291_striking_off | Bool | True if flagged for striking off under s.291 as a defunct company (legacy ICRIS registry signal) | — | — |
| is_winding_up | Bool | True if in winding-up (liquidation) proceedings, reconciled across the legacy and modern captures | — | — |
| winding_up_date | Nullable(String) | Winding-up commencement date (ISO YYYY-MM-DD), when recorded | — | — |
| restoration_date | Nullable(String) | Date the company was restored to the register after striking-off/deregistration (ISO YYYY-MM-DD) | — | — |
| accounting_reference_date | Nullable(String) | Registry accounting reference date (ISO YYYY-MM-DD), when recorded | — | — |
| last_agm_date | Nullable(String) | Date of the last annual general meeting on record (ISO YYYY-MM-DD) | — | — |
| one_member_status_date | Nullable(String) | Date the one-member (sole-member) status was last updated on the register (ISO YYYY-MM-DD) | — | — |
| dissolution_reason | Nullable(String) | Human-readable dissolution/cessation reason in English (e.g. Deregistration, Striking Off, Winding Up) | — | — |
| dissolution_reason_chinese | Nullable(String) | Human-readable dissolution/cessation reason in Traditional Chinese | — | — |
| registry_remark | Nullable(String) | Registry public caveat / amalgamation notice (free text), when present | — | — |
| is_on_watch_list | Bool | True if the company appears on the registry watch list (legacy ICRIS registry signal) | — | — |
| has_prosecution | Bool | True if a prosecution has been recorded against the company (legacy ICRIS registry signal) | — | — |
| modern_activity_status | Nullable(String) | Activity status from ICRIS API (Live, Dissolved, Ceased, Amalgamated, Struck Off) | — | — |
| modern_has_charges | Bool | True if charges are registered against the company (from ICRIS API) | — | — |
| modern_is_winding_up | Bool | True if company is in winding-up proceedings (from ICRIS API) | — | — |
| modern_winding_up_mode | Nullable(String) | Winding-up mode from the ICRIS register: Compulsory Winding Up, Members' Voluntary Winding Up, Creditors' Voluntary Winding Up, or Others (ICRIS canonical labels). | — | — |
| modern_remarks_english | Nullable(String) | English-language remarks from ICRIS API | — | — |
| modern_remarks_chinese | Nullable(String) | Chinese-language remarks from ICRIS API | — | — |
| chapter_number | Nullable(String) | Hong Kong Ordinance chapter number for statutory bodies (modern API), where applicable | — | — |
| incorporation_country | Nullable(String) | Country of incorporation in English (foreign companies only, e.g., 'British Virgin Islands', 'Cayman Islands'). Reconciled across the modern ICRIS API and the legacy base-information capture for broader coverage. Empty for local Hong Kong companies. | — | — |
| incorporation_country_code | Nullable(String) | Country of incorporation code (foreign companies only, e.g., 'VGB', 'CYM', 'BMU'). Empty for local Hong Kong companies. | — | — |
| incorporation_country_chinese | Nullable(String) | Country of incorporation in Traditional Chinese (foreign companies only). Reconciled across the modern ICRIS API and the legacy base-information capture for broader coverage. Empty for local Hong Kong companies. | — | — |
| updated_at | DateTime64(3, 'UTC') | Timestamp when record was last updated | — | — |
| 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. | — | — |
500 companies stratified across active local / dissolved local / foreign / ceased-amalgamated-struck-off / funds & special forms. Regenerated quarterly.
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.
One-off purchase
Full Archive
The full history we hold, frozen at purchase. Yours to keep.
Full details →- What you get
- The full history we hold, to your purchase date
- History depth
- All current + dissolved companies, refreshed monthly, in full
- Updates
- None. Frozen at purchase
- Delivery
- Gzipped CSV, opens in Excel; link valid 7 days
- API access
- Not included
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