POST /api/centaline/commercial/properties/search
Price: 10 credits
Search Centaline Commercial (中原工商舖) Hong Kong listings — offices, industrial space, shops and commercial carparks for sale or lease. Filter by free-text keyword, sub-district, property class, floor band, outlook, listing highlights, existing fit-out, whole-asset investment format, suitable shop trades, special programmes such as the Capital Investment Entrant Scheme, a specific building, and price, rent and area ranges. Each listing carries its property number, building, address, floor, sale price and monthly rent with per-sq-ft rates, area, air conditioning, nearest MTR station and walking time, occupation year, sole-agency, key, hot-listing, director-pick and open-day flags, the parking space class on carpark listings, media availability, feature and label lists, the district hierarchy, the handling agents with their licence numbers and coordinates.
Search Centaline Commercial (中原工商舖) Hong Kong office / industrial / retail / carpark listings — a separate market from the residential centaline/properties/search. Set count, listing_type ('B' both, 'S' sale, 'R' lease) and usage ('Any'/'Office'/'Industrial'/'Retail'/'Carpark'). Narrow by keyword, districts (sub-district codes such as 'WS004' for Central), floor_types, views, themes, decorations, investment_types, shop_types, campaigns, building_id, min_price/max_price, min_rent/max_rent and min_area/max_area. Areas are square feet, money is HKD. views/decorations/shop_types only apply to the usage classes that have them (shop_types to Retail, views to Office and Industrial).
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)lang string — Language of the returned names, addresses and labels. (default: "hk"; one of: "hk", "sc", "en")count integer required — Max number of results to return (min: 1)keyword string nullable — Free-text keyword (district, building, street or property number).districts array nullable — Sub-district codes, e.g. 'WS004' (Central). (examples: ["WS004"])usage string — Property class to search. (default: "Any"; one of: "Any", "Office", "Industrial", "Retail", "Carpark")listing_type string — For sale, for lease, or both. (default: "B"; one of: "B", "S", "R")floor_types array nullable — Floor bands to include. (one of: "H", "M", "L", "G", "Whole Floor")views array nullable — Outlook the unit faces. (one of: "City View", "Sea View", "Open View", "Mountain View", "Garden View", "Race Course View", "River View", "Fountain View")themes array nullable — Listing highlights such as video tours or open days. (one of: "Video", "360View", "HotListing", "WithKey", "SoleAgent", "VR", "OpenDay")decorations array nullable — Fit-out already in place. (one of: "Fitted", "Ceiling", "Warehouse", "Carpet", "Water supply and drainage system", "Split-Type A/C", "Light Box", "Raised Floor", "Painted Wall", "Business Centre", "Wallpaper", "Plastic Floor")investment_types array nullable — Whole-asset investment formats (whole block, commercial podium, hotel). (one of: "Whole Block", "CommPodium", "Hotel")shop_types array nullable — Trades the shop space suits (retail listings). (one of: "Catering", "Snack Food/Bread", "Market/Household Goods /Convenient Store", "Property/Bank/Finance/Investment/Insurance", "Beauty/Fitness/Salon", "Medical", "Fashion", "Toy/Gift", "Pharmacy", "Foot Masage", "Wholesale", "Pets", "Electrica Appliances/IT/Audio-Visua Equipment", "Accessories", "Educational and Tutorial Classes", "Construction and Decoration", "Jewellery/Watches", "Leather/Shoes", "Religion", "Professional Services", "Art/Design", "Sports", "Trading - Import/Export", "Furniture/Lighting", "Investor", "Entertainment", "Business Centre", "Tourism", "Manufacturing/Engineering", "Studio/Photographic Studio", "Broadband Network", "Textile/Garment", "Home for the aged", "Hotel/Service Apartment", "Others")campaigns array nullable — Special programmes the listing qualifies for. (one of: "CIES")building_id string nullable — Centaline building id to restrict to. (examples: "1330400400")min_price integer nullable — Minimum sale price in HKD. (min: 0)max_price integer nullable — Maximum sale price in HKD. (min: 0)min_rent integer nullable — Minimum monthly rent in HKD. (min: 0)max_rent integer nullable — Maximum monthly rent in HKD. (min: 0)min_area integer nullable — Minimum area in sq ft. (min: 0)max_area integer nullable — Maximum area in sq ft. (min: 0)@type string (default: "CentalineCommercialProperty")id string requiredproperty_number string nullablebuilding_id string nullablebuilding_name string nullablebuilding_name_en string nullableaddress string nullablelisting_type string nullableusage string nullableusage_label string nullablefloor string nullableprice number nullableprice_text string nullableprice_per_sqft number nullablerent number nullablerent_text string nullablerent_per_sqft number nullablegross_area number nullablearea_text string nullableis_area_approximate boolean nullableair_conditioning string nullablemtr_station string nullablemtr_walk_time string nullableoccupation_year string nullableoccupied_at integer nullableis_sole_agent boolean nullablehas_key boolean nullableis_hot_listing boolean nullableis_open_day boolean nullableis_director_pick boolean nullableis_carpark boolean nullablecarpark_type string nullablecarpark_type_label string nullableis_investment boolean nullablewith_lease boolean nullableis_rental_inclusive boolean nullablehas_video boolean nullablehas_360_view boolean nullablehas_virtual_tour boolean nullablefeatures array (default: [])labels array (default: [])area object nullable@type string (default: "CentalineCommercialArea")zone_id string nullablezone string nullabledistrict_id string nullabledistrict string nullableagents array (default: [])@type string (default: "CentalineCommercialAgent")id string nullablename string nullablename_en string nullablelicense string nullablephone string nullablewhatsapp string nullablewechat_id string nullablelisting_count integer nullableimage string nullablelatitude number nullablelongitude number nullableimage string nullablepublished_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 — The entity was not found, or a precondition failed 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.