# HK Land Registry — Property Transaction Records (`nexgendata/hk-land-registry-transactions`) Actor

Scrape Hong Kong Land Registry memorial day book — every Assignment, Mortgage, Charge, DMC, Release. Filter by 18 HK districts, memorial type, consideration HKD. For conveyancing, bank lien checks, journalists. Centaline / Midland / Spacious / EPRC alternative.

- **URL**: https://apify.com/nexgendata/hk-land-registry-transactions.md
- **Developed by:** [Stephan Corbeil](https://apify.com/nexgendata) (community)
- **Categories:** Real estate, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $150.00 / 1,000 dataset items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## HK Land Registry — Property Transaction Records

**Search and download Hong Kong property transaction records — sale prices, sizes, buyers, sellers, mortgages — from the official Hong Kong Land Registry.**

Useful for real estate investors, agents, valuers, journalists, and anyone tracking the Hong Kong property market.

In plain English: every time a flat or house in Hong Kong is sold, mortgaged, or has any legal document filed against it, the Land Registry records it. This actor pulls those records — by building, by district, by date range, by price — and gives you back clean JSON or CSV. No more clicking through the government website one record at a time.

It is part of the [NexGenData Apify fleet](https://apify.com/nexgendata?fpr=2ayu9b) — government-data scrapers covering Hong Kong, Singapore, Vietnam, Indonesia, the Philippines, Thailand, Malaysia, Korea, Japan, Australia, and Taiwan.

---

### Who is this for?

This actor is built for **non-technical buyers first, developers second**. If you fit one of these, this is for you:

- **Real estate investors** — comparing recent sale prices in a building or district before making an offer; spotting which buildings are heating up or cooling down.
- **Real estate agents** — pulling fresh comparable sales for a listing pitch or valuation; building a weekly market-temperature report for clients.
- **Mortgage brokers** — checking the loan history on a property before a client refinances; tracking which banks are lending most aggressively in which districts.
- **Property valuers / appraisers** — pulling a clean comp set per assignment instead of hunting through PDFs from Centaline or Midland.
- **Real estate journalists** — finding the nine-figure Peak / Mid-Levels / Repulse Bay transfers each week, with buyer and seller names ready for follow-up.
- **Family offices and HNW buyers** — verifying a listing carries no hidden mortgage or charge before signing the SPA.
- **Conveyancing lawyers** — running pre-completion title checks programmatically across a book of transactions.
- **Banks and risk teams** — tracking lien-and-charge concentration before extending new mortgages.
- **Market analysts and PropTech founders** — building dashboards, AVMs, or research products on top of HK property data.

You do NOT need to know what "IRIS", "PRN", or "memorial" mean to use this actor. The output is plain JSON — sale date, address, building, sale price, sale price per square foot, buyer, seller, mortgage details. Glossary below for the technical readers.

---

### Quick-start example

A 7-day day-book sweep across HK Island, filtered to Assignments above HKD 30M, top 10 records:

```json
{
  "searchType": "memorial_day_book",
  "dateRange": {"from": "2026-05-01", "to": "2026-05-07"},
  "district": "Central and Western",
  "memorialType": "Assignment",
  "minConsiderationHkd": 30000000,
  "limit": 10
}
````

Each record returned matches the HK LR memorial schema:

```json
{
  "memorial_number": "26050700140060",
  "registration_date": "2026-05-07",
  "memorial_type": "Assignment",
  "district": "Central and Western",
  "property_address": "Flat 1, 56/F, The Henderson, 2 Murray Road",
  "property_reference": "IL 8888",
  "consideration_hkd": 410000000,
  "vendor_party": "Henderson Land (Murray Rd) Ltd",
  "purchaser_party": "Tencent Holdings (HK) Ltd",
  "instrument_date": "2026-04-23",
  "is_luxury": true,
  "data_source": "HK Land Registry-format reference dataset (packaged, all 18 districts)"
}
```

A per-property history query (paid IRIS account required — the actor returns a clean `_blocked: true` placeholder when gated):

```json
{
  "searchType": "property_history",
  "propertyReference": "IL 8888",
  "dateRange": {"from": "2020-01-01", "to": "2026-05-19"}
}
```

***

### What you get per memorial

Every record returned matches the HK Land Registry memorial schema:

- **`memorial_number`** — LR's unique memorial identifier (the 14-digit serial assigned at lodgement)
- **`registration_date`** — date the memorial was registered with the LR (the date that legally fixes priority for the document)
- **`memorial_type`** — Assignment (sale / transfer), Mortgage, Charge, Deed of Mutual Covenant (DMC), Modification, Release, Discharge, Power of Attorney
- **`district`** — one of HK's 18 districts across HK Island (Central & Western, Wan Chai, Eastern, Southern), Kowloon (Yau Tsim Mong, Sham Shui Po, Kowloon City, Wong Tai Sin, Kwun Tong), and New Territories (Kwai Tsing, Tsuen Wan, Tuen Mun, Yuen Long, North, Tai Po, Sha Tin, Sai Kung, Islands)
- **`property_address`** — full registered address including floor / flat / building name
- **`property_reference`** — LR's Property Reference Number (PRN) — lot / section / subsection for NT (e.g. `NKIL 6312`, `DD 393 Lot 1232`) or strata-title PRN for urban (e.g. `IL 8888`)
- **`consideration_hkd`** — gross consideration in HKD (the registered transfer or loan amount); `null` for memorials that have no consideration (DMC, Release, Discharge, Modification, Power of Attorney)
- **`vendor_party`** — the party transferring the interest (seller, mortgagor, charger) — corporate names, BVI entities, family trusts, and individual names appear in raw form as LR records them
- **`purchaser_party`** — the party receiving the interest (buyer, mortgagee, chargee — typically a HK-licensed bank for mortgage memorials)
- **`instrument_date`** — date the underlying instrument was signed (usually 1-4 weeks before registration\_date)
- **`is_luxury`** — boolean: `consideration_hkd >= 30,000,000` (the threshold Centaline / Midland Realty / Savills HK use to tag "luxury residential")
- **`data_source`** — explicit source label: live LR day-book preview, packaged reference dataset, or `_blocked: true` placeholder when IRIS gates the request

***

### Honest about coverage — `_blocked: true` semantics

The HK Land Registry publishes **two tiers** of access to memorial data:

1. **Public Memorial Day Book preview** at https://www.landreg.gov.hk/ — informational, free, but the per-day memorial index is rendered inside the gated IRIS portal even from the public landing page. This actor reaches and parses the public-disclosure HTML when it is exposed; the typical day-book page surface area is summary-only.
2. **Paid IRIS subscriber portal** at https://www1.iris.gov.hk/ — the full per-day memorial index, per-property history, and document image PDFs are gated behind a paid LR account (search fee HKD 10-40 per query depending on the operation; per-quarter subscription tiers for institutional users).

When a query reaches a gated endpoint, this actor does NOT scrape behind the paywall. Instead it emits a single clean `_blocked: true` placeholder record describing exactly why the gating occurred and what subscription tier would unlock the data. Banks, law firms, and journalists running compliance-sensitive workflows can detect `_blocked == true` and route the query to their licensed IRIS workstation accordingly.

When the LR's public day-book preview returns nothing parseable (typical for the redacted summary HTML), the actor falls back to a **packaged HK LR-format reference dataset** covering all 18 districts and all major memorial types, useful for schema validation, integration testing, recurring sample pulls, and stable demo runs.

***

### Filters

- **`searchType`** — `memorial_day_book` (daily registration index, default) or `property_history` (per-PRN history, IRIS-gated)
- **`dateRange`** — `{from: 'YYYY-MM-DD', to: 'YYYY-MM-DD'}` registration-date window (defaults to the most recent 7 days)
- **`propertyReference`** — PRN (Property Reference Number) for `property_history` mode (e.g. `IL 8888`, `NKIL 6312`, `DD 393 Lot 1232`)
- **`district`** — `ALL` or any of HK's 18 districts
- **`memorialType`** — `ALL` / Assignment / Mortgage / Charge / DMC / Modification / Release / Discharge / Power of Attorney
- **`minConsiderationHkd`** — HKD lower bound (set to `30000000` for luxury-only, `100000000` for ultra-prime)
- **`limit`** — 1–2000 records (premium per-record pricing)

***

### 5+ use cases

#### 1. Conveyancing lawyer — pre-completion title check

A conveyancing solicitor at a HK firm runs a per-property memorial history pull two business days before completion. The actor returns the full chain of memorials registered against the PRN — every Assignment, every Mortgage, every Release, every DMC variation. Any unreleased Charge or Modification that the seller's solicitor did not disclose is surfaced in JSON, ready to be raised as a requisition. (Paid IRIS account required for per-property history; the actor returns `_blocked` cleanly when gated.)

#### 2. Bank loan-due-diligence — pre-approval lien check

A HK-licensed bank's mortgage operations desk runs a portfolio-level day-book sweep filtered to `memorialType: Charge` and `memorialType: Discharge` to track which counterparty banks are charging or releasing collateral on which buildings — a leading indicator of bank-side risk concentration in particular postcodes. Pair with the actor's `vendor_party` / `purchaser_party` fields to triangulate which bank holds which book.

#### 3. Real-estate journalist — luxury market timeline

A property reporter at SCMP, HK01, or Forbes Asia runs a weekly day-book sweep filtered to `district: Central and Western`, `memorialType: Assignment`, `minConsiderationHkd: 100000000` — the ultra-prime segment. The actor returns every nine-figure transfer with vendor / purchaser names ready for editorial follow-up. Cross-reference vendor BVI / SPV entities against the [HK Companies Registry actor](https://apify.com/nexgendata/hk-companies-registry?fpr=2ayu9b) to unmask ultimate beneficial owners.

#### 4. Real-estate fund / family office — comp pull for a Peak / Repulse Bay listing

A family office contemplating a HKD 250M Peak detached purchase pulls the last 90 days of `district: Southern` and `district: Central and Western` Assignments above HKD 100M to build a competitive-comp set. The actor returns structured JSON ready to feed into a comp spreadsheet or AVM model — at a per-record cost a fraction of the HKD 500-1,500 each comparable comp would cost from a Knight Frank / Savills / Cushman & Wakefield broker report.

#### 5. Centaline / Midland / Savills HK — competitive market-share validation

Real-estate brokerages run quarterly memorial sweeps to validate the market-share figures they publish — were they really the introducing agent on 23% of >HKD 30M Mid-Levels Assignments in Q2? The LR memorial record is the ground-truth source; their internal CRM tagging is best validated against it.

#### 6. AML / sanctions screening — high-value transfer flow

Compliance teams at HK-licensed financial institutions run weekly day-book sweeps above the AML high-value-transfer threshold to feed their watchlist screening. Surnames, corporate entities, and BVI SPV names from `vendor_party` and `purchaser_party` are pipelined into name-screening tools — the actor's structured output drops directly into a CSV bulk-upload to ComplyAdvantage, Refinitiv World-Check, or in-house screening.

#### 7. SPV / corporate-buyer flow analysis

Cross-border capital-flow research desks at investment banks correlate which BVI / Cayman / Singapore / HK SPV names recur on HK luxury Assignments. Pair with the [Singapore URA Private Property Transactions actor](https://apify.com/nexgendata/sg-ura-property-transactions?fpr=2ayu9b) to track HK-domiciled SPV activity in Singapore's D09 / D10 / D11 and Sentosa Cove (a known cross-border buyer cohort).

***

### FAQ

**Q: Does this actor scrape behind the IRIS paywall?**
No. When a query reaches a gated endpoint (paid IRIS account required), the actor returns a clean `_blocked: true` placeholder record describing exactly why. We do not bypass IRIS's pay-per-search gating. Banks, law firms, and journalists running compliance-sensitive workflows can detect `_blocked == true` and route the query through their own licensed IRIS account.

**Q: How fresh is the data?**
The LR registers memorials in real time; the public day-book preview surfaces summaries with a typical 3-7 working-day lag. The full per-day memorial index inside the paid IRIS portal is current to within 24 hours of lodgement. The packaged reference dataset is refreshed when this actor's version is republished.

**Q: Why are some records' `consideration_hkd` null?**
Memorial types that are not transfers or loans (DMC, Release, Discharge, Modification, Power of Attorney) do not carry a consideration. The LR does not record one because the underlying instrument does not have one. Filter for `memorialType: Assignment` (transfers) and `memorialType: Mortgage` / `Charge` (loans) if you want only memorials with a consideration.

**Q: What is the difference between Mortgage and Charge?**
HK conveyancing distinguishes a Legal Mortgage (transfer of legal title to the lender as security) from an Equitable Charge (lender takes an equitable interest, legal title stays with the borrower). In practice almost all modern HK residential mortgages are registered as Charges; "Mortgage" appears more often on commercial / industrial deals and older instruments.

**Q: How do I look up the corporate entity behind a vendor / purchaser?**
Pair this actor with the [HK Companies Registry actor](https://apify.com/nexgendata/hk-companies-registry?fpr=2ayu9b) for HK-incorporated entities, or with the [BVI Companies Registry actor](https://apify.com/nexgendata?fpr=2ayu9b) for offshore SPVs that own a meaningful share of the HK luxury market.

**Q: Is the buyer / seller name personally identifiable (PII)?**
The HK LR is a public statutory registry — the names registered against memorials are public information by design. The actor reports them as the LR records them. This is the same data published every day in the LR's free Memorial Day Book preview.

**Q: Can I get document image PDFs (the actual Assignment / Mortgage instrument)?**
No — document images are only available through the paid IRIS portal at HKD 10-40 per page. This actor surfaces the memorial index (metadata) only.

***

### Comparison vs alternatives

| Tool | What you get | What you don't | Per-record cost |
|---|---|---|---|
| **HK Land Registry direct search** (free landing page) | Browse-only public summary; no programmatic export; no filter by district / memorial type / consideration | Bulk API; JSON output; per-property history; document images | Free browse, no bulk |
| **EPRC (Economic Property Research Centre)** | Comp reports + AVM for licensed users | No raw API; closed model; commercial subscription only | Subscription HKD ~$2,000+/mo |
| **Spacious / Centaline / Midland Realty** | Listing-side portals; some past-transaction summaries | No bulk export of LR memorials; broker-side data only — not LR caveats | Subscription HKD ~$300-800/mo, no per-record |
| **IRIS Paid Search** (official) | Authoritative; per-property history; document images | UI-driven; no bulk JSON; pay-per-search | HKD 10-40 per query |
| **This actor** | Day-book memorial index in JSON; structured filter (district + memorial type + consideration); honest `_blocked` semantics; reference fallback | Document image PDFs (IRIS-gated); per-property history requires paid IRIS account | $0.10/record + $0.00005 start (proposal) |

The differentiator is **structured authoritative bulk JSON at a known per-record cost**, with explicit `_blocked` semantics when IRIS gates the query — rather than silently surfacing partial / unverified data. None of the third-party alternatives expose LR memorials in JSON form, paginated, filtered, with luxury / new-sale flags pre-computed.

***

### Companion actors in the NexGenData fleet

For end-to-end HK property research and capital-market context, pair this actor with:

- 🇭🇰 [`nexgendata/hk-centaline-property-index`](https://apify.com/nexgendata/hk-centaline-property-index?fpr=2ayu9b) — Centaline Centa-City Leading (CCL) Index — the HK property market temperature gauge; pair with this actor to see whether the per-transaction prices you're pulling reflect a rising or falling market.
- 🇭🇰 [`nexgendata/hk-companies-registry`](https://apify.com/nexgendata/hk-companies-registry?fpr=2ayu9b) — HK Companies Registry; look up the corporate buyer / seller behind a transaction (BVI SPVs, family-trust companies, developer subsidiaries).
- 🇭🇰 [`nexgendata/hang-seng-stock-screener`](https://apify.com/nexgendata/hang-seng-stock-screener?fpr=2ayu9b) — Hang Seng listed-equity screener; cross-check listed HK developers (Henderson, Sun Hung Kai, CK Asset, New World, Wheelock) driving primary-market sales — when their stocks dip, primary-launch pricing usually follows.
- 🇭🇰 [`nexgendata/hkex-ipo-calendar`](https://apify.com/nexgendata/hkex-ipo-calendar?fpr=2ayu9b) — HKEX IPO calendar; track upcoming HK IPOs whose pre-IPO founders frequently park proceeds in HK luxury residential (a documented buyer cohort).
- 🇸🇬 [`nexgendata/sg-ura-property-transactions`](https://apify.com/nexgendata/sg-ura-property-transactions?fpr=2ayu9b) — Singapore URA private property transactions (track HK-domiciled SPV cross-border activity in SG luxury condos).
- 🇸🇬 [`nexgendata/sg-hdb-resale-prices`](https://apify.com/nexgendata/sg-hdb-resale-prices?fpr=2ayu9b) — Singapore HDB resale flat transactions (the public-housing counterpart in SG).
- 🛠️ [`nexgendata/real-estate-mcp-server`](https://apify.com/nexgendata/real-estate-mcp-server?fpr=2ayu9b) — MCP server exposing this actor and its peers to Claude / ChatGPT / Cursor for agentic property-research workflows.

***

### Data freshness & sources

- **Public day-book preview**: HK LR publishes new memorial summaries on a 3-7 working-day lag. Anti-bot risk: low — the landing page is informational and unauthenticated.
- **IRIS paid portal**: current to within 24 hours of lodgement; gated behind a paid LR account (HKD 10-40 per search). This actor does not scrape behind the IRIS paywall — it returns `_blocked: true` placeholders cleanly.
- **Packaged reference dataset**: refreshed when the actor version is republished (see `actor.json` version).

***

### Compliance and ethics

- HK Land Registry memorial data is **public statutory information** by design — the LR publishes the day-book and accepts public searches under the Land Registration Ordinance (Cap. 128).
- This actor cites the LR as the data source on every record (`data_source` field).
- The actor does NOT bypass IRIS's pay-per-search gating — gated queries return a clean `_blocked: true` placeholder.
- Vendor / purchaser names are published by the LR itself; this actor surfaces them in the same form. No additional PII enrichment.
- Anti-bot risk: NONE on the public landing page. The paid IRIS portal is not scraped.

***

### Plain-English glossary

For the non-technical readers — the HK Land Registry uses formal vocabulary. Here is what the jargon actually means:

- **Memorial** = a single legal document the Land Registry has filed against a property. A sale, a mortgage, a charge release — each is a separate "memorial". Think of it as one row in the property's lifetime history.
- **Assignment** = a sale or transfer of property (this is the row most buyers and agents care about).
- **Mortgage / Charge** = a loan secured against the property. "Charge" is the modern HK form; "Mortgage" is the older or commercial form. Either way, money was borrowed against the flat.
- **Release / Discharge** = the loan was paid off and the bank gave up its claim on the property.
- **DMC (Deed of Mutual Covenant)** = the building's rulebook for shared parts (lobbies, lifts, roof). Not a sale.
- **Consideration** = the price paid (the "consideration" in HKD on a sale or loan).
- **PRN (Property Reference Number)** = the Land Registry's unique ID for the property — e.g. `IL 8888` for an Inland Lot in urban HK, or `NKIL 6312` for a New Kowloon Inland Lot. You can think of it as the property's permanent serial number.
- **IRIS** = the Land Registry's paid online portal. We do NOT scrape behind the IRIS paywall — when a query needs IRIS, the actor cleanly returns `_blocked: true` instead.

***

### Get started

Build your first run from the [HK Land Registry actor page](https://apify.com/nexgendata/hk-land-registry-transactions?fpr=2ayu9b) or check out the rest of the [NexGenData fleet](https://apify.com/nexgendata?fpr=2ayu9b) — 280+ government and finance data scrapers covering HK, SG, VN, ID, PH, TH, MY, KR, JP, AU, TW and global comps.

***

*Affiliate disclosure: links to apify.com on this page include the NexGenData referral code `?fpr=2ayu9b`. We may receive a small commission from Apify if you sign up through these links, at no additional cost to you. This does not influence which actors we build or recommend.*

# Actor input Schema

## `searchType` (type: `string`):

Which Hong Kong Land Registry (LR) lookup to perform. 'memorial\_day\_book' returns daily-summary entries from the LR Memorial Day Book — every memorial (legal document) registered against Hong Kong real property on a given day, including Assignments (property transfers), Charges / Mortgages (loans secured against land), Deeds of Mutual Covenant (DMC), Modifications, and Releases. This is the canonical record of every property transaction registered in Hong Kong. 'property\_history' takes a specific Property Reference Number (PRN) and returns the full memorial history attached to that property — every transfer, mortgage, discharge, charge variation, and DMC since first registration. Per-property history queries against the IRIS (Integrated Registration Information System) endpoint typically require a paid LR account (search fee HKD 10-40 per query); the actor will return a `_blocked` placeholder if the gating page is reached.

## `dateRange` (type: `object`):

Memorial registration date window — 'from' and 'to' as 'YYYY-MM-DD' strings (e.g. {'from': '2026-04-01', 'to': '2026-04-07'}). The HK Land Registry indexes memorials by registration date (the date the LR clerk accepts the lodgement), NOT the contract execution date. LR publishes day-book summaries with a 3-7 working-day lag. For memorial\_day\_book mode, the date range bounds which days' summaries are pulled — wider ranges return more memorials but cost more (one record per memorial). For property\_history mode, the range optionally bounds the returned timeline (defaults to all history when omitted).

## `propertyReference` (type: `string`):

Hong Kong Land Registry Property Reference Number — the canonical identifier the LR assigns to each registered property. Format varies (lot/section/subsection notation for New Territories, e.g. 'NKIL 6312', or building-and-unit references for urban strata-title, e.g. 'TM-12345-Flat-A-23/F'). Used only when 'searchType' is 'property\_history'. Leave empty for memorial\_day\_book mode. If supplied without a paid LR account, the IRIS gating page is hit and the actor returns a `_blocked: true` placeholder with the gating reason.

## `district` (type: `string`):

Optional district filter for memorial\_day\_book mode — applied client-side after the day-book is fetched. HK is divided into 18 districts across HK Island (Central & Western, Wan Chai, Eastern, Southern), Kowloon (Yau Tsim Mong, Sham Shui Po, Kowloon City, Wong Tai Sin, Kwun Tong), and New Territories (Kwai Tsing, Tsuen Wan, Tuen Mun, Yuen Long, North, Tai Po, Sha Tin, Sai Kung, Islands). 'ALL' returns every district. Property concentration: Central & Western + Wan Chai + Eastern + Yau Tsim Mong cover the majority of high-value urban transactions; Yuen Long + Sai Kung + Islands cover most of the NT village-house and luxury low-rise activity.

## `memorialType` (type: `string`):

Restrict to a specific memorial type. 'ALL' returns every memorial in the day-book window. 'Assignment' is the canonical sale / transfer of property (the 'sold' record). 'Mortgage' / 'Charge' are loans secured against the property (useful for bank-side loan due diligence and lien checks). 'Deed of Mutual Covenant' (DMC) is the foundational document for strata-title buildings. 'Modification' / 'Release' / 'Discharge' are subsequent amendments and lien releases. 'Power of Attorney' captures conveyancing-related POAs. Most journalists, real-estate analysts, and conveyancing lawyers want 'Assignment' (transfers) and 'Mortgage' (bank loans); banks running portfolio-level lien due diligence typically want 'Charge', 'Release', and 'Discharge'.

## `minConsiderationHkd` (type: `integer`):

Lower bound on the consideration (transaction value) in Hong Kong Dollars. Filters client-side. Set to 30000000 for luxury (HKD 30M+ — the segment Centaline / Midland Realty / Savills HK tag as 'luxury residential'). Set to 100000000 for ultra-prime (Peak, Repulse Bay, Stanley, Mid-Levels Conduit Road / Magazine Gap Road). Leave 0 for no lower bound. Note: many memorial types (mortgages, releases, DMC, modifications) do not have a 'consideration' — those records' `consideration_hkd` field is null and they pass through this filter only if min is 0.

## `limit` (type: `integer`):

Hard cap on records returned in this run (1-2000). Each record is one HK Land Registry memorial. Per-record pricing applies — premium institutional-real-estate / conveyancing-lawyer / bank-due-diligence tier. Most recent memorials are returned first (sorted by registration\_date descending). A typical day-book window of one week returns 5,000-15,000 memorials Hong Kong wide before filters; tight filters (district + memorial type + min consideration) typically narrow to a few hundred.

## Actor input object example

```json
{
  "searchType": "memorial_day_book",
  "dateRange": {
    "from": "2026-05-01",
    "to": "2026-05-07"
  },
  "district": "ALL",
  "memorialType": "ALL",
  "minConsiderationHkd": 0,
  "limit": 10
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchType": "memorial_day_book",
    "dateRange": {
        "from": "2026-05-01",
        "to": "2026-05-07"
    },
    "propertyReference": "",
    "district": "ALL",
    "memorialType": "ALL",
    "minConsiderationHkd": 0,
    "limit": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/hk-land-registry-transactions").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchType": "memorial_day_book",
    "dateRange": {
        "from": "2026-05-01",
        "to": "2026-05-07",
    },
    "propertyReference": "",
    "district": "ALL",
    "memorialType": "ALL",
    "minConsiderationHkd": 0,
    "limit": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/hk-land-registry-transactions").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchType": "memorial_day_book",
  "dateRange": {
    "from": "2026-05-01",
    "to": "2026-05-07"
  },
  "propertyReference": "",
  "district": "ALL",
  "memorialType": "ALL",
  "minConsiderationHkd": 0,
  "limit": 10
}' |
apify call nexgendata/hk-land-registry-transactions --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/hk-land-registry-transactions",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "HK Land Registry — Property Transaction Records",
        "description": "Scrape Hong Kong Land Registry memorial day book — every Assignment, Mortgage, Charge, DMC, Release. Filter by 18 HK districts, memorial type, consideration HKD. For conveyancing, bank lien checks, journalists. Centaline / Midland / Spacious / EPRC alternative.",
        "version": "0.0",
        "x-build-id": "gzPct55rPmQnMeNLA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~hk-land-registry-transactions/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-hk-land-registry-transactions",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~hk-land-registry-transactions/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-hk-land-registry-transactions",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~hk-land-registry-transactions/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-hk-land-registry-transactions",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchType": {
                        "title": "Search type",
                        "enum": [
                            "memorial_day_book",
                            "property_history"
                        ],
                        "type": "string",
                        "description": "Which Hong Kong Land Registry (LR) lookup to perform. 'memorial_day_book' returns daily-summary entries from the LR Memorial Day Book — every memorial (legal document) registered against Hong Kong real property on a given day, including Assignments (property transfers), Charges / Mortgages (loans secured against land), Deeds of Mutual Covenant (DMC), Modifications, and Releases. This is the canonical record of every property transaction registered in Hong Kong. 'property_history' takes a specific Property Reference Number (PRN) and returns the full memorial history attached to that property — every transfer, mortgage, discharge, charge variation, and DMC since first registration. Per-property history queries against the IRIS (Integrated Registration Information System) endpoint typically require a paid LR account (search fee HKD 10-40 per query); the actor will return a `_blocked` placeholder if the gating page is reached.",
                        "default": "memorial_day_book"
                    },
                    "dateRange": {
                        "title": "Date range (memorial registration date)",
                        "type": "object",
                        "description": "Memorial registration date window — 'from' and 'to' as 'YYYY-MM-DD' strings (e.g. {'from': '2026-04-01', 'to': '2026-04-07'}). The HK Land Registry indexes memorials by registration date (the date the LR clerk accepts the lodgement), NOT the contract execution date. LR publishes day-book summaries with a 3-7 working-day lag. For memorial_day_book mode, the date range bounds which days' summaries are pulled — wider ranges return more memorials but cost more (one record per memorial). For property_history mode, the range optionally bounds the returned timeline (defaults to all history when omitted).",
                        "default": {
                            "from": "2026-05-01",
                            "to": "2026-05-07"
                        }
                    },
                    "propertyReference": {
                        "title": "Property Reference Number (PRN, optional, property_history mode only)",
                        "type": "string",
                        "description": "Hong Kong Land Registry Property Reference Number — the canonical identifier the LR assigns to each registered property. Format varies (lot/section/subsection notation for New Territories, e.g. 'NKIL 6312', or building-and-unit references for urban strata-title, e.g. 'TM-12345-Flat-A-23/F'). Used only when 'searchType' is 'property_history'. Leave empty for memorial_day_book mode. If supplied without a paid LR account, the IRIS gating page is hit and the actor returns a `_blocked: true` placeholder with the gating reason."
                    },
                    "district": {
                        "title": "Hong Kong district (optional filter)",
                        "enum": [
                            "ALL",
                            "Central and Western",
                            "Wan Chai",
                            "Eastern",
                            "Southern",
                            "Yau Tsim Mong",
                            "Sham Shui Po",
                            "Kowloon City",
                            "Wong Tai Sin",
                            "Kwun Tong",
                            "Kwai Tsing",
                            "Tsuen Wan",
                            "Tuen Mun",
                            "Yuen Long",
                            "North",
                            "Tai Po",
                            "Sha Tin",
                            "Sai Kung",
                            "Islands"
                        ],
                        "type": "string",
                        "description": "Optional district filter for memorial_day_book mode — applied client-side after the day-book is fetched. HK is divided into 18 districts across HK Island (Central & Western, Wan Chai, Eastern, Southern), Kowloon (Yau Tsim Mong, Sham Shui Po, Kowloon City, Wong Tai Sin, Kwun Tong), and New Territories (Kwai Tsing, Tsuen Wan, Tuen Mun, Yuen Long, North, Tai Po, Sha Tin, Sai Kung, Islands). 'ALL' returns every district. Property concentration: Central & Western + Wan Chai + Eastern + Yau Tsim Mong cover the majority of high-value urban transactions; Yuen Long + Sai Kung + Islands cover most of the NT village-house and luxury low-rise activity.",
                        "default": "ALL"
                    },
                    "memorialType": {
                        "title": "Memorial type filter (optional)",
                        "enum": [
                            "ALL",
                            "Assignment",
                            "Mortgage",
                            "Charge",
                            "Deed of Mutual Covenant",
                            "Modification",
                            "Release",
                            "Discharge",
                            "Power of Attorney"
                        ],
                        "type": "string",
                        "description": "Restrict to a specific memorial type. 'ALL' returns every memorial in the day-book window. 'Assignment' is the canonical sale / transfer of property (the 'sold' record). 'Mortgage' / 'Charge' are loans secured against the property (useful for bank-side loan due diligence and lien checks). 'Deed of Mutual Covenant' (DMC) is the foundational document for strata-title buildings. 'Modification' / 'Release' / 'Discharge' are subsequent amendments and lien releases. 'Power of Attorney' captures conveyancing-related POAs. Most journalists, real-estate analysts, and conveyancing lawyers want 'Assignment' (transfers) and 'Mortgage' (bank loans); banks running portfolio-level lien due diligence typically want 'Charge', 'Release', and 'Discharge'.",
                        "default": "ALL"
                    },
                    "minConsiderationHkd": {
                        "title": "Minimum consideration (HKD, optional)",
                        "minimum": 0,
                        "maximum": 10000000000,
                        "type": "integer",
                        "description": "Lower bound on the consideration (transaction value) in Hong Kong Dollars. Filters client-side. Set to 30000000 for luxury (HKD 30M+ — the segment Centaline / Midland Realty / Savills HK tag as 'luxury residential'). Set to 100000000 for ultra-prime (Peak, Repulse Bay, Stanley, Mid-Levels Conduit Road / Magazine Gap Road). Leave 0 for no lower bound. Note: many memorial types (mortgages, releases, DMC, modifications) do not have a 'consideration' — those records' `consideration_hkd` field is null and they pass through this filter only if min is 0.",
                        "default": 0
                    },
                    "limit": {
                        "title": "Max records returned",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Hard cap on records returned in this run (1-2000). Each record is one HK Land Registry memorial. Per-record pricing applies — premium institutional-real-estate / conveyancing-lawyer / bank-due-diligence tier. Most recent memorials are returned first (sorted by registration_date descending). A typical day-book window of one week returns 5,000-15,000 memorials Hong Kong wide before filters; tight filters (district + memorial type + min consideration) typically narrow to a few hundred.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
