curl --request POST \
--url https://api.anysite.io/api/midland/commercial/properties/search \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"count": 2,
"timeout": 300,
"lang": "zh-hk",
"text": "<string>",
"districts": [],
"building_id": "<string>",
"street_id": "<string>",
"mtr_id": "<string>",
"grades": [],
"floor_levels": [],
"stock_types": [],
"tags": [],
"min_price": 1,
"max_price": 1,
"min_rent": 1,
"max_rent": 1,
"min_area": 1,
"max_area": 1,
"min_price_per_area": 1,
"max_price_per_area": 1,
"min_rent_per_area": 1,
"max_rent_per_area": 1,
"with_photo": true,
"with_video": true,
"with_vr": true,
"with_vr720": true
}
'import requests
url = "https://api.anysite.io/api/midland/commercial/properties/search"
payload = {
"count": 2,
"timeout": 300,
"lang": "zh-hk",
"text": "<string>",
"districts": [],
"building_id": "<string>",
"street_id": "<string>",
"mtr_id": "<string>",
"grades": [],
"floor_levels": [],
"stock_types": [],
"tags": [],
"min_price": 1,
"max_price": 1,
"min_rent": 1,
"max_rent": 1,
"min_area": 1,
"max_area": 1,
"min_price_per_area": 1,
"max_price_per_area": 1,
"min_rent_per_area": 1,
"max_rent_per_area": 1,
"with_photo": True,
"with_video": True,
"with_vr": True,
"with_vr720": True
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
count: 2,
timeout: 300,
lang: 'zh-hk',
text: '<string>',
districts: [],
building_id: '<string>',
street_id: '<string>',
mtr_id: '<string>',
grades: [],
floor_levels: [],
stock_types: [],
tags: [],
min_price: 1,
max_price: 1,
min_rent: 1,
max_rent: 1,
min_area: 1,
max_area: 1,
min_price_per_area: 1,
max_price_per_area: 1,
min_rent_per_area: 1,
max_rent_per_area: 1,
with_photo: true,
with_video: true,
with_vr: true,
with_vr720: true
})
};
fetch('https://api.anysite.io/api/midland/commercial/properties/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/midland/commercial/properties/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'count' => 2,
'timeout' => 300,
'lang' => 'zh-hk',
'text' => '<string>',
'districts' => [
],
'building_id' => '<string>',
'street_id' => '<string>',
'mtr_id' => '<string>',
'grades' => [
],
'floor_levels' => [
],
'stock_types' => [
],
'tags' => [
],
'min_price' => 1,
'max_price' => 1,
'min_rent' => 1,
'max_rent' => 1,
'min_area' => 1,
'max_area' => 1,
'min_price_per_area' => 1,
'max_price_per_area' => 1,
'min_rent_per_area' => 1,
'max_rent_per_area' => 1,
'with_photo' => true,
'with_video' => true,
'with_vr' => true,
'with_vr720' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/midland/commercial/properties/search"
payload := strings.NewReader("{\n \"count\": 2,\n \"timeout\": 300,\n \"lang\": \"zh-hk\",\n \"text\": \"<string>\",\n \"districts\": [],\n \"building_id\": \"<string>\",\n \"street_id\": \"<string>\",\n \"mtr_id\": \"<string>\",\n \"grades\": [],\n \"floor_levels\": [],\n \"stock_types\": [],\n \"tags\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_rent\": 1,\n \"max_rent\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_price_per_area\": 1,\n \"max_price_per_area\": 1,\n \"min_rent_per_area\": 1,\n \"max_rent_per_area\": 1,\n \"with_photo\": true,\n \"with_video\": true,\n \"with_vr\": true,\n \"with_vr720\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/midland/commercial/properties/search")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"count\": 2,\n \"timeout\": 300,\n \"lang\": \"zh-hk\",\n \"text\": \"<string>\",\n \"districts\": [],\n \"building_id\": \"<string>\",\n \"street_id\": \"<string>\",\n \"mtr_id\": \"<string>\",\n \"grades\": [],\n \"floor_levels\": [],\n \"stock_types\": [],\n \"tags\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_rent\": 1,\n \"max_rent\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_price_per_area\": 1,\n \"max_price_per_area\": 1,\n \"min_rent_per_area\": 1,\n \"max_rent_per_area\": 1,\n \"with_photo\": true,\n \"with_video\": true,\n \"with_vr\": true,\n \"with_vr720\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/midland/commercial/properties/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"count\": 2,\n \"timeout\": 300,\n \"lang\": \"zh-hk\",\n \"text\": \"<string>\",\n \"districts\": [],\n \"building_id\": \"<string>\",\n \"street_id\": \"<string>\",\n \"mtr_id\": \"<string>\",\n \"grades\": [],\n \"floor_levels\": [],\n \"stock_types\": [],\n \"tags\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_rent\": 1,\n \"max_rent\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_price_per_area\": 1,\n \"max_price_per_area\": 1,\n \"min_rent_per_area\": 1,\n \"max_rent_per_area\": 1,\n \"with_photo\": true,\n \"with_video\": true,\n \"with_vr\": true,\n \"with_vr720\": true\n}"
response = http.request(request)
puts response.read_body[
{
"property_no": "<string>",
"@type": "MidlandCommercialProperty",
"name": "<string>",
"url": "<string>",
"usage": "<string>",
"transaction_types": [],
"address": "<string>",
"district_code": "<string>",
"district": "<string>",
"street": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"building": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"grade": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"floor_level": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"stock_type": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"min_area": 123,
"max_area": 123,
"price": 123,
"price_per_area": 123,
"rent": 123,
"rent_per_area": 123,
"is_price_negotiable": true,
"is_rent_negotiable": true,
"features": [],
"tags": [],
"has_photo": true,
"has_video": true,
"has_vr": true,
"has_vr720": true,
"image": "<string>",
"location": {
"@type": "MidlandLocation",
"latitude": 123,
"longitude": 123
},
"mtr_station": "<string>",
"mtr_walking_seconds": 123,
"transactions_url": "<string>",
"agents": []
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}/midland/commercial/properties/search
Search Midland ICI (美聯工商舖) Hong Kong commercial listings — offices, industrial space and shops for sale or lease. Filters cover property class, sale or lease, free text, districts, building, street and MTR station ids, building grade, floor band, stock type, sole-agency and newly listed tags, asking price, monthly rent, area, price per square foot, rent per square foot, and whether photos, a video or a virtual tour are attached. Each listing carries the reference number, name and address, district, street and building, grade, floor band and stock type (street-level shop, basement, upper-floor shop, industrial), the area range, price and rent with per-square-foot figures and negotiability flags, unit features such as lift-facing, sea or garden outlook, tags, media flags, thumbnail, coordinates, the nearest MTR station with walking time, a link to deals in the same building, and the assigned agents with EAA licence numbers and contact channels.
Price: 20 credits per 500 results
curl --request POST \
--url https://api.anysite.io/api/midland/commercial/properties/search \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"count": 2,
"timeout": 300,
"lang": "zh-hk",
"text": "<string>",
"districts": [],
"building_id": "<string>",
"street_id": "<string>",
"mtr_id": "<string>",
"grades": [],
"floor_levels": [],
"stock_types": [],
"tags": [],
"min_price": 1,
"max_price": 1,
"min_rent": 1,
"max_rent": 1,
"min_area": 1,
"max_area": 1,
"min_price_per_area": 1,
"max_price_per_area": 1,
"min_rent_per_area": 1,
"max_rent_per_area": 1,
"with_photo": true,
"with_video": true,
"with_vr": true,
"with_vr720": true
}
'import requests
url = "https://api.anysite.io/api/midland/commercial/properties/search"
payload = {
"count": 2,
"timeout": 300,
"lang": "zh-hk",
"text": "<string>",
"districts": [],
"building_id": "<string>",
"street_id": "<string>",
"mtr_id": "<string>",
"grades": [],
"floor_levels": [],
"stock_types": [],
"tags": [],
"min_price": 1,
"max_price": 1,
"min_rent": 1,
"max_rent": 1,
"min_area": 1,
"max_area": 1,
"min_price_per_area": 1,
"max_price_per_area": 1,
"min_rent_per_area": 1,
"max_rent_per_area": 1,
"with_photo": True,
"with_video": True,
"with_vr": True,
"with_vr720": True
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
count: 2,
timeout: 300,
lang: 'zh-hk',
text: '<string>',
districts: [],
building_id: '<string>',
street_id: '<string>',
mtr_id: '<string>',
grades: [],
floor_levels: [],
stock_types: [],
tags: [],
min_price: 1,
max_price: 1,
min_rent: 1,
max_rent: 1,
min_area: 1,
max_area: 1,
min_price_per_area: 1,
max_price_per_area: 1,
min_rent_per_area: 1,
max_rent_per_area: 1,
with_photo: true,
with_video: true,
with_vr: true,
with_vr720: true
})
};
fetch('https://api.anysite.io/api/midland/commercial/properties/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/midland/commercial/properties/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'count' => 2,
'timeout' => 300,
'lang' => 'zh-hk',
'text' => '<string>',
'districts' => [
],
'building_id' => '<string>',
'street_id' => '<string>',
'mtr_id' => '<string>',
'grades' => [
],
'floor_levels' => [
],
'stock_types' => [
],
'tags' => [
],
'min_price' => 1,
'max_price' => 1,
'min_rent' => 1,
'max_rent' => 1,
'min_area' => 1,
'max_area' => 1,
'min_price_per_area' => 1,
'max_price_per_area' => 1,
'min_rent_per_area' => 1,
'max_rent_per_area' => 1,
'with_photo' => true,
'with_video' => true,
'with_vr' => true,
'with_vr720' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/midland/commercial/properties/search"
payload := strings.NewReader("{\n \"count\": 2,\n \"timeout\": 300,\n \"lang\": \"zh-hk\",\n \"text\": \"<string>\",\n \"districts\": [],\n \"building_id\": \"<string>\",\n \"street_id\": \"<string>\",\n \"mtr_id\": \"<string>\",\n \"grades\": [],\n \"floor_levels\": [],\n \"stock_types\": [],\n \"tags\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_rent\": 1,\n \"max_rent\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_price_per_area\": 1,\n \"max_price_per_area\": 1,\n \"min_rent_per_area\": 1,\n \"max_rent_per_area\": 1,\n \"with_photo\": true,\n \"with_video\": true,\n \"with_vr\": true,\n \"with_vr720\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/midland/commercial/properties/search")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"count\": 2,\n \"timeout\": 300,\n \"lang\": \"zh-hk\",\n \"text\": \"<string>\",\n \"districts\": [],\n \"building_id\": \"<string>\",\n \"street_id\": \"<string>\",\n \"mtr_id\": \"<string>\",\n \"grades\": [],\n \"floor_levels\": [],\n \"stock_types\": [],\n \"tags\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_rent\": 1,\n \"max_rent\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_price_per_area\": 1,\n \"max_price_per_area\": 1,\n \"min_rent_per_area\": 1,\n \"max_rent_per_area\": 1,\n \"with_photo\": true,\n \"with_video\": true,\n \"with_vr\": true,\n \"with_vr720\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/midland/commercial/properties/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"count\": 2,\n \"timeout\": 300,\n \"lang\": \"zh-hk\",\n \"text\": \"<string>\",\n \"districts\": [],\n \"building_id\": \"<string>\",\n \"street_id\": \"<string>\",\n \"mtr_id\": \"<string>\",\n \"grades\": [],\n \"floor_levels\": [],\n \"stock_types\": [],\n \"tags\": [],\n \"min_price\": 1,\n \"max_price\": 1,\n \"min_rent\": 1,\n \"max_rent\": 1,\n \"min_area\": 1,\n \"max_area\": 1,\n \"min_price_per_area\": 1,\n \"max_price_per_area\": 1,\n \"min_rent_per_area\": 1,\n \"max_rent_per_area\": 1,\n \"with_photo\": true,\n \"with_video\": true,\n \"with_vr\": true,\n \"with_vr720\": true\n}"
response = http.request(request)
puts response.read_body[
{
"property_no": "<string>",
"@type": "MidlandCommercialProperty",
"name": "<string>",
"url": "<string>",
"usage": "<string>",
"transaction_types": [],
"address": "<string>",
"district_code": "<string>",
"district": "<string>",
"street": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"building": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"grade": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"floor_level": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"stock_type": {
"@type": "MidlandRef",
"id": "<string>",
"name": "<string>"
},
"min_area": 123,
"max_area": 123,
"price": 123,
"price_per_area": 123,
"rent": 123,
"rent_per_area": 123,
"is_price_negotiable": true,
"is_rent_negotiable": true,
"features": [],
"tags": [],
"has_photo": true,
"has_video": true,
"has_vr": true,
"has_vr720": true,
"image": "<string>",
"location": {
"@type": "MidlandLocation",
"latitude": 123,
"longitude": 123
},
"mtr_station": "<string>",
"mtr_walking_seconds": 123,
"transactions_url": "<string>",
"agents": []
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from the dashboard
Headers
Body
x >= 120 <= x <= 1500zh-hk, zh-cn, en COMMERCIAL, INDUSTRIAL, SHOPS S, L 1ABE, ADM, ALC, CAB, CEN, CHW, CSW, FAN, FOT, HAV, HMT, HSK, HUH, ISD, JOR, KAT, KOB, KOC, KOT, KWC, KWT, MEF, MIL, MOK, MOS, NCW, NOP, NTK, PFL, PRE, QUB, SAK, SHM, SHS, SHT, SHW, SKW, SLY, SOU, SPK, SSP, STS, TAH, TAK, TAP, TAW, TIH, TIS, TIW, TKO, TKT, TKW, TSE, TSI, TST, TSW, TSY, TUC, TUM, VIP, WAC, WCH, WCN, WES, WTS, YAT, YMT, YUL 111MISC00165, MISC00166 MISC00169, MISC00170, MISC00171, MISC00172, MISC00173, MISC00174 MISC00177, MISC00178, MISC00179, MISC00180, MISC00109, MISC00100, MISC00110, MISC00108, MISC00105, MISC00115 soleagent, new_property x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes