POST /api/midland/properties
Price: 20 credits
Get one Midland Realty Hong Kong residential listing by its reference number (or listing URL). Returns the full listing page: asking price or rent with previous price and per-area figures, HOS pricing, gross and saleable area with the efficiency ratio, room breakdown (bedrooms, master bedrooms, guest and sitting rooms, bathrooms, covered carparks), floor band, flat and orientation, typed photos, agent video, static maps, unit features, estate facilities, walkable amenities and MTR stations, the eight-level geography, the neighbourhood profile with air quality and market stats, the estate profile (developer, vendor, occupation dates, block and storey breakdown, school nets, listing counts and price ranges, site plans, videos, other phases), the building, the monthly price and rent index for the phase, recent nearby sale and rental deals, nearby branches, the listing agents with EAA licence numbers, and mortgage assumptions.
Get a single Midland Realty Hong Kong listing by serial_no (e.g. 'M351962478'); a full listing URL is also accepted. Set lang (zh-hk / zh-cn / en), unit (feet / meter) and currency (HKD / CNY) to control the output locale — all names, areas and prices are converted. Sale listings populate price / price_per_net_area, rentals populate rent / rent_per_net_area. Use midland/properties/search to find serial numbers, midland/estates for the estate profile and midland/transactions/search for past deals in the same estate.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)lang string — Output language. Districts, estates, buildings and feature names are all translated. (default: "zh-hk"; one of: "zh-hk", "zh-cn", "en")unit string — Area unit used for areas and per-area prices. (default: "feet"; one of: "feet", "meter")currency string — Currency used for prices, rents and monthly payments. (default: "HKD"; one of: "HKD", "CNY")serial_no string required — Midland listing reference, or the full listing URL. (examples: "M351962478")@type string (default: "MidlandProperty")serial_no string requiredurl string nullableurl_zh_cn string nullableurl_en string nullabletransaction_types array (default: [])tags array (default: [])sale_tags array (default: [])rent_tags array (default: [])unit_type string nullableis_hos boolean nullableis_sole_agent boolean nullableis_tenancy boolean nullableis_hot_new boolean nullablehas_valuation boolean nullableis_deluxe_sale boolean nullableis_deluxe_rent boolean nullabledeluxe_star string nullabledeluxe_star_rate integer nullablelifestyle_themes array (default: [])@type string (default: "MidlandRef")id string nullablename string nullableprice number nullableprevious_price number nullableprice_hkd number nullableprice_per_area number nullableprice_per_net_area number nullablehos_price number nullableprevious_hos_price number nullablehos_price_hkd number nullablehos_price_per_area number nullablehos_price_per_net_area number nullablerent number nullableprevious_rent number nullablerent_hkd number nullablerent_per_area number nullablerent_per_net_area number nullablemonthly_payment number nullablemonthly_payment_hkd number nullablehos_monthly_payment number nullablehos_monthly_payment_hkd number nullablemortgage_percent number nullablehos_mortgage_percent number nullablearea number nullablenet_area number nullablenet_area_ratio number nullablebedroom_count integer nullablemaster_bedroom_count integer nullableguest_room_count integer nullablesitting_room_count integer nullablebathroom_count integer nullableother_room_count integer nullablecovered_carpark_count integer nullablefloor_level object nullable@type string (default: "MidlandRef")id string nullablename string nullableflat string nullableorientation object nullable@type string (default: "MidlandRef")id string nullablename string nullableimage string nullablephotos array (default: [])@type string (default: "MidlandPropertyPhoto")url string nullablename string nullabletype string nullablewidth integer nullableheight integer nullablevideos array (default: [])@type string (default: "MidlandPropertyVideo")id string nullableurl string nullablestream_url string nullablethumbnail string nullablevirtual_tours array (default: [])@type string (default: "MidlandVirtualTour")url string nullablethumbnail string nullableis_deluxe boolean nullablefloor_plans array (default: [])@type string (default: "MidlandFloorPlan")id string nullablename string nullableurl string nullablesource string nullablephase_id string nullablephase_name string nullablebuilding_id string nullablebuilding_name string nullablefloor_from string nullablefloor_to string nullablefloor_text string nullablestatic_maps array (default: [])features array (default: [])@type string (default: "MidlandRef")id string nullablename string nullablefacility_groups array (default: [])@type string (default: "MidlandRef")id string nullablename string nullableamenities array (default: [])@type string (default: "MidlandAmenity")type string nullablename string nullablewalking_minutes integer nullablemtr_stations array (default: [])@type string (default: "MidlandMtrStation")id string nullablename string nullableexit string nullablewalking_seconds integer nullablegeo object nullable@type string (default: "MidlandGeo")region object nullable@type string (default: "MidlandRef")id string nullablename string nullablesubregion object nullable@type string (default: "MidlandRef")id string nullablename string nullabledistrict object nullable@type string (default: "MidlandRef")id string nullablename string nullablesm_district object nullable@type string (default: "MidlandRef")id string nullablename string nullablecombined_district object nullable@type string (default: "MidlandRef")id string nullablename string nullableint_district object nullable@type string (default: "MidlandRef")id string nullablename string nullableint_sm_district object nullable@type string (default: "MidlandRef")id string nullablename string nullablelux_district object nullable@type string (default: "MidlandRef")id string nullablename string nullableneighbourhood object nullable@type string (default: "MidlandNeighbourhood")id string nullablename string nullableurl string nullableunit_rank_text string nullabletotal_unit_count integer nullablesell_count integer nullablerent_count integer nullableair_quality_level string nullablemarket_stat object nullable@type string (default: "MidlandMarketStat")net_ft_price number nullableprevious_net_ft_price number nullablenet_ft_price_change_percent number nullableft_price number nullableprevious_ft_price number nullableft_price_change_percent number nullablenet_ft_rent number nullabletransaction_count integer nullabletransaction_amount number nullableestate object nullable@type string (default: "MidlandPropertyEstate")id string nullablename string nullablephase_id string nullablephase_name string nullableaddress string nullabledeveloper string nullablevendor string nullablemanagement_company string nullableop_date_text string nullablefirst_op_at integer nullablelast_op_at integer nullableblock_count_text string nullablestorey_text string nullabletotal_flats_text string nullableschool_net object nullable@type string (default: "MidlandSchoolNet")kindergarten_id string nullablekindergarten_name string nullableprimary_id string nullableprimary_name string nullablesecondary_id string nullablesecondary_name string nullablesell_count integer nullablerent_count integer nullablemin_price number nullablemax_price number nullablemin_rent number nullablemax_rent number nullableavg_net_ft_price number nullableavg_net_ft_rent number nullablenet_ft_rent number nullablesite_plans array (default: [])videos array (default: [])@type string (default: "MidlandPropertyVideo")id string nullableurl string nullablestream_url string nullablethumbnail string nullableother_phases array (default: [])@type string (default: "MidlandRef")id string nullablename string nullableurl string nullablephase object nullable@type string (default: "MidlandRef")id string nullablename string nullablebuilding object nullable@type string (default: "MidlandBuilding")id string nullablename string nullableaddress string nullablefirst_op_at integer nullablefloor_count integer nullablebuilding_type string nullablelatitude number nullablelongitude number nullablestreetview_latitude number nullablestreetview_longitude number nullablestreetview_angle integer nullablemarket_stat object nullable@type string (default: "MidlandMarketStat")net_ft_price number nullableprevious_net_ft_price number nullablenet_ft_price_change_percent number nullableft_price number nullableprevious_ft_price number nullableft_price_change_percent number nullablenet_ft_rent number nullabletransaction_count integer nullabletransaction_amount number nullableprice_index array (default: [])@type string (default: "MidlandPriceIndexPoint")date_at integer nullabletransaction_count integer nullableavg_ft_price number nullableavg_net_ft_price number nullableavg_ft_rent number nullableavg_net_ft_rent number nullablenearby_sale_transactions array (default: [])@type string (default: "MidlandNearbyTransaction")price number nullablenet_area number nullablebedroom_count integer nullableestate_name string nullablephase_name string nullablebuilding_name string nullablefloor string nullablefloor_name string nullableflat string nullablegain_percent number nullableholding_period_years number nullablenearby_rent_transactions array (default: [])@type string (default: "MidlandNearbyTransaction")price number nullablenet_area number nullablebedroom_count integer nullableestate_name string nullablephase_name string nullablebuilding_name string nullablefloor string nullablefloor_name string nullableflat string nullablegain_percent number nullableholding_period_years number nullablebranches array (default: [])@type string (default: "MidlandBranchContact")name string nullablephone string nullableagents array (default: [])@type string (default: "MidlandAgent")licence_no string nullablename string nullablename_en string nullablenickname string nullablejob_title string nullableimage string nullablephone string nullablemobile_phone string nullablechina_mobile_phone string nullablewechat_id string nullablewechat_qr string nullabledepartment_id string nullableurl string nullableis_owner boolean nullablemortgage object nullable@type string (default: "MidlandMortgage")loan_percent number nullableloan_years integer nullableinterest_rate_percent number nullablecomparable_room_count string nullablecomparable_listing_net_ft_price number nullablecomparable_listing_price_change_percent number nullablecomparable_transaction_net_ft_price number nullablecomparable_listing_net_ft_rent number nullablecomparable_transaction_net_ft_rent number nullableestate_url string nullabletransactions_url string nullablenews_url string nullablefirst_published_at integer nullableposted_at integer nullableupdated_at integer nullableeaa_effective_at integer nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — No listing with this reference number (it may have been withdrawn). Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.