Ricacorp Scraper – Hong Kong Listings for Sale & Rent (No API)
Pricing
from $2.00 / 1,000 listing searches
Ricacorp Scraper – Hong Kong Listings for Sale & Rent (No API)
Scrape Ricacorp Properties Hong Kong without an API: 20K for-sale and 5.9K for-rent listings with price, saleable area, price per saleable sq ft, bedrooms, floor zone, estate, phase, block, school net and coordinates. JSON/CSV/Excel export for HK property research and agency comparison.
Pricing
from $2.00 / 1,000 listing searches
Rating
0.0
(0)
Developer
Chad
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Ricacorp Properties Scraper (Hong Kong)
Scrape Ricacorp Properties' public Hong Kong listings: 20,211 for sale and 5,924 for rent. Public JSON API — no login, no API key, no browser.
Ricacorp is one of Hong Kong's three largest estate agencies (alongside Centaline and Midland). No other Actor on Apify Store covers this site.
Output fields
| Field | Type | Description |
|---|---|---|
post_no | string | Ricacorp listing number, e.g. CU88487564 |
deal_type | string | buy or rent |
title | string|null | Full property name, in the language you selected |
title_en / title_zh | string|null | English / Traditional Chinese names (both always returned, for cross-referencing) |
address | string|null | Street address |
region | string|null | Sub-region, e.g. Ho Man Tin / Kings Park / Kowloon Tong |
region_en / region_zh | string|null | Sub-region in English / Chinese |
district | string|null | District, e.g. Tin Shui Wai |
estate | string|null | Estate, e.g. Yau Yat Chuen Garden |
phase | string|null | Phase, e.g. Yau Yat Chuen Garden Phase 2 (null if the estate has no phases) |
building | string|null | Block / tower, e.g. Block B4 |
usage | string|null | Property usage, e.g. private residential |
price_hkd | number|null | Asking price, or monthly rent for rentals |
market_price_hkd | number|null | Same source as price_hkd. Before the September 2026 rework the API exposed both price (asking) and marketPrice; only the latter survives, so these two outputs are now always equal. The field is kept so existing integrations do not break, but do not subtract one from the other as an "above/below market" signal — that delta is now always 0 |
saleable_area_sqft / saleable_area_sqm | number|null | Saleable area (sq ft / m²) |
unit_price_per_sqft / unit_price_per_sqm | number|null | Price per saleable sq ft / m² |
monthly_mortgage_hkd | number|null | Ricacorp's estimated monthly mortgage payment |
room | number|null | Bedroom count |
floor_zone | string|null | Floor band, e.g. Medium Floor Zone |
flat | string|null | Flat, e.g. Flat A7 |
total_floors / units_per_floor | number|null | Total floors / units per floor |
total_units / estate_total_units | number|null | Units in this block / in the whole estate |
occupation_date | string|null | Occupation date (ISO 8601) |
school_net | string|null | Primary school net |
tags | string[]|null | Listing tags |
view_count | number|null | View count |
agent_name / agent_name_zh | string|null | Agent name |
latitude / longitude | number|null | Coordinates |
location_id | string|null | Ricacorp location ID |
gross_area_sqft / gross_area_sqm | number|null | Gross area (sq ft / sq m) |
gross_unit_price_per_sqft / gross_unit_price_per_sqm | number|null | Gross unit price per sq ft / sq m |
efficiency_ratio_pct | number|null | Efficiency ratio (%), saleable ÷ gross area |
hall_count | number|null | Number of halls (0 is a real answer, not a missing value) |
carpark_count | number|null | Number of car park spaces. 0 is a real answer, not a missing value — measured across 440 sampled listings, about 4% carry a parking space (private residential and village houses); the rest genuinely report 0 |
developer | string|null | Developer (Chinese name only — the API provides no English one) |
direction | string|null | Facing direction, e.g. 東北 (north-east) |
price_changes | object[]|null | Asking-price change history: price_old_hkd, price_new_hkd, price_changed_hkd, price_changed_pct, changed_at (ISO 8601). null for listings whose price never moved |
thumbnail_url / photo_urls | string|string[]|null | Thumbnail / all photos |
listing_url | string|null | Ricacorp listing page |
posted_at / updated_at | string|null | Posted / updated time (ISO 8601) |
scraped_at | string | Scrape time (ISO 8601) |
Field names are always English snake_case. Missing values are always
null— fields are never omitted.
⚠️ Fields that are always
nullsince September 2026. Ricacorp reworked their site in September 2026 and the property-listing API response shrank from 160 fields to 61. The following fields are no longer provided upstream. They are kept in the output so the shape stays stable, but they are alwaysnull:
address,region_en,region_zh,latitude,longitude,total_floors,units_per_floor,estate_total_units,view_count,posted_atLanguage note. Ricacorp's API now requires a fixed request header that pins the response locale, so
region,floor_zone,usageandtagscome back in Traditional Chinese even from this English Actor — the upstream payload carries no English variant for them.title,flat,district,estate,phaseandbuildingare returned in English.developeris Chinese-only for the same reason.The same change brought the
gross_area_*…price_changesfields listed above.price_changesis the useful one for price monitoring — about a third of listings carry a recorded price cut. Combined withupdated_at(now sourced from the upstreamoverallDateModified) it supports "has anything in this estate been reduced recently" monitoring.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | enum | search | Listings only for now |
dealType | enum | buy | buy or rent |
regions | string[] | all | HK Island / Kowloon / NT East / NT West; empty = all four |
bulkRegions | string | — | One per line, merged with the field above |
rooms | integer | — | Exactly N bedrooms |
language | enum | en-hk | en-hk or zh-hk |
maxItems | integer | 50 | Max rows for this run, max 500 |
proxyConfiguration | object | datacenter | Keep the default |
Input examples
1. 100 Kowloon listings for sale
{ "mode": "search", "dealType": "buy", "regions": ["Kowloon"], "maxItems": 100 }
2. Hong Kong Island rentals
{ "mode": "search", "dealType": "rent", "regions": ["Hong Kong Island"], "maxItems": 50 }
3. Three-bedroom listings across the New Territories, Chinese names
{ "mode": "search", "dealType": "buy", "regions": ["New Territories"], "rooms": 3, "language": "zh-hk", "maxItems": 200 }
4. Every region, for sale
{ "mode": "search", "dealType": "buy", "maxItems": 500 }
5. Paste regions in bulk
{ "mode": "search", "dealType": "buy", "bulkRegions": "Hong Kong Island\nKowloon", "maxItems": 100 }
Notes
- Ricacorp splits Hong Kong into four regions, not the usual three — the New Territories are split into East and West. Entering just "New Territories" expands to both.
- The only filters that work are region and bedroom count. Ricacorp's public API silently ignores price-range, area-range and keyword filters, so this Actor does not send them — you are never misled into thinking a filter applied. To filter by price or estate, filter the output yourself.
maxItemsis the total across all regions, not per region.- Some fields use
0in the source data to mean "not provided" (unpriced listings, missing floor counts). This Actor normalises those tonull, so you never see a "HK$0" property. - If new listings appear while scraping, pages shift and rows can repeat. This Actor de-duplicates across the whole run, so each row is output — and charged — only once.
- The site occasionally returns a truncated JSON response; the Actor retries that page automatically and only reports a gap (clearly, in the log) if the retries are exhausted.
- Public data only. No login, no authentication bypass.
Pricing
A single event, search-listing, at $0.002 per row output. Only rows successfully written to the dataset are charged; duplicates and filtered-out rows are not.
FAQ
Q: Can I scrape a single estate?
A: The API has no estate or keyword filter. Scrape the region and filter on the estate field — this Actor extracts the estate correctly from the location hierarchy, rather than mistaking the block name for it.
Q: What's the difference between estate, phase and building?
A: For "Yau Yat Chuen Garden Phase 2 Block B4": estate = Yau Yat Chuen Garden, phase = Yau Yat Chuen Garden Phase 2, building = Block B4. Estates without phases have phase: null.
Q: Is price_hkd the monthly rent for rentals?
A: Yes. With dealType: rent, price_hkd is the monthly rent and unit_price_per_sqft is rent per saleable square foot.
Q: Can I merge this with Centaline or Midland data? A: Yes — that's a primary use case. All three output snake_case fields, estate names and saleable area / price per sq ft, which suits agency-vs-agency inventory and pricing comparison. Estate naming differs slightly between sites, so fuzzy-match on district plus estate name.
Q: I got fewer rows than maxItems.
A: That filter combination is exhausted. Loosen the filters (drop rooms, say) or scrape another region.
Q: Does it need a residential proxy? A: No. Ricacorp is datacenter-friendly, so the default Apify datacenter proxy is enough and costs very little.
Disclaimer
This Actor is intended for lawful purposes only, such as personal research, academic analysis, market research and property trend studies. Please comply with Ricacorp Properties' (ricacorp.com) terms of service and applicable Hong Kong law. Do not scrape at excessive volume and do not resell raw data. The author accepts no liability for any damage arising from use of this tool.
Hong Kong property scraper Ricacorp scraper HK real estate data property listings for sale for rent saleable area price per square foot estate data Hong Kong estate agency property data export HK housing market research
📚 Related tutorials & tools
Hands-on guides and free tools built on this actor, at AI Social API:
- 📖 Tutorial: Hong Kong's CCL Index is up 12% in 2026 — and Sha Tin First City still sold at a HK$1M loss
- 📊 Data: Site coverage: modes, fields & pricing — 40 sites, their modes, the exact output fields each returns, and per-item pricing — generated from the actors' own schemas
- 🛠 Free tools: Hong Kong property lookup · Apify cost calculator
- 🤝 Rather not run it yourself? I run it for you — scheduled daily, delivered to your Google Sheet or Slack, from US$299/mo.
Maintained by an operator running 40+ live Apify actors.