Hướng dẫn tích hợp Housing Market API

Các bảng tham chiếu, mô tả endpoint, mã lỗi và ví dụ được tạo từ đặc tả API và được giữ nguyên bằng tiếng Anh ở mọi ngôn ngữ. Tên, tham số và mã đều giống nhau ở mọi nơi.

Endpoint bất động sản và tham chiếu trường

GET /v1/properties trả về các tin đăng đã xuất bản của một quốc gia, kèm mọi thông tin chi tiết về bất động sản mà khóa gói Tiêu chuẩn được phép xem.

Mỗi trường thuộc một trong các nhóm sau, được hiển thị trong cột chính sách.

  • Có cấu trúc (Structured): được trả về đúng như khi xuất bản.
  • Làm thô (Coarsened): số nhà không bao giờ được trả về, và với nhà do chủ sở hữu tự đăng, tọa độ được làm tròn đến mức khu dân cư và mã bưu chính bị ẩn.
  • Đã lọc (Scrubbed): văn bản tự do của người đăng tin bất động sản, đã loại bỏ địa chỉ email, số điện thoại, địa chỉ web và tên tài khoản nhắn tin.
  • Suy ra (Derived): được API tính toán từ các trường khác.
  • Qua proxy (Proxied): được phục vụ qua API thay vì liên kết trực tiếp.

Hiện tại tin đăng không kèm hình ảnh: trường images là một danh sách rỗng. Liên kết hình ảnh sẽ được bổ sung; ảnh gốc vẫn hiển thị công khai trên các cổng thông tin Housing Market.

Không bao giờ được trả về: thông tin liên hệ của người đăng tin bất động sản, danh tính của môi giới và chủ sở hữu, cũng như mọi thông tin riêng tư của tin đăng.

Giá được tính bằng đơn vị tiền tệ của chính tin đăng và không bao giờ được quy đổi. Trường không có giá trị sẽ là null.

Bản ghi bất động sản

GET /v1/properties: List published properties in one country

FieldTypePolicyDescription
id requiredstringStructuredStable identifier of the listing. Treat it as opaque.
country requiredstringStructuredISO 3166-1 alpha-2 code of the country the listing is in.
listing_type requiredstringStructuredWhat the listing offers. Requesting listing_type=all returns every value. sale rent vacation_rental co_living
property_type requiredstring | nullStructuredThe kind of property in lower case, for example condominium or house. Null when the listing does not state one.
provincestring | nullStructuredName of the province or state.
province_idinteger | nullStructuredIdentifier of the province or state, for the province_id filter.
citystring | nullStructuredName of the city.
city_idinteger | nullStructuredIdentifier of the city, for the city_id filter.
areastring | nullStructuredName of the district or area.
area_idinteger | nullStructuredIdentifier of the district or area, for the area_id filter.
addressstring | nullCoarsenedStreet name or locality line. The street number is never included.
post_codestring | nullCoarsenedPostal code. Null for owner-listed homes.
latitudenumber | nullCoarsenedLatitude in decimal degrees. For owner-listed homes it is rounded so that it identifies a neighbourhood, not a building; see location_precision.
longitudenumber | nullCoarsenedLongitude in decimal degrees. Same precision rule as latitude.
location_precision requiredstringDerivedapproximate when the coordinates and post code have been coarsened because the home is listed by its owner; otherwise exact. exact approximate
pricenumber | nullStructuredPublished price in the listing's own currency. For rent listings it is the published amount per month. Never converted.
price_maxnumber | nullStructuredUpper end when the listing publishes a price range; otherwise null.
currency requiredstring | nullStructuredISO 4217 code of the currency price and price_max are in. Null when the listing states none.
bedroomsnumber | nullStructuredNumber of bedrooms.
bathroomsnumber | nullStructuredNumber of bathrooms.
roomsnumber | nullStructuredTotal number of rooms, where the listing states it.
living_areanumber | nullStructuredLiving area in the unit the lister used. Use living_area_sqm to compare listings.
living_area_sqmnumber | nullStructuredLiving area in square metres.
lot_areanumber | nullStructuredPlot area in the unit the lister used. Use lot_area_sqm to compare listings.
lot_area_sqmnumber | nullStructuredPlot area in square metres.
build_yearinteger | nullStructuredYear the property was built.
published_date requiredstring | null (date-time)StructuredWhen the listing was first published. Null when the portal does not record it.
last_updated requiredstring | null (date-time)StructuredWhen the listing last changed, or published_date when no change is recorded. This is the value updated_since compares.
featuresarray of stringStructuredFeature names, for example the facilities of the building.
appliancesarray of stringStructuredAppliance names included with the property.
neighbourhoodarray of stringStructuredNames of neighbourhood features, such as nearby transport.
tagsarray of stringStructuredTag names the lister attached to the listing.
developerstring | nullStructuredName of the development company, where the listing names one. Never a person.
summarystring | nullScrubbedShort description. Email addresses, phone numbers, web addresses and messaging handles are removed.
descriptionstring | nullScrubbedFull description as plain text. Email addresses, phone numbers, web addresses and messaging handles are removed.
location_textstring | nullScrubbedThe lister's description of the location, scrubbed in the same way.
images requiredarray of ImageProxiedWatermarked, signed, expiring photographs. Never a direct storage or CDN address. Empty until the image service is available.

images[]

FieldTypeDescription
url requiredstring (uri)Signed address of the watermarked image. Valid for your key only, until expires_at.
expires_at requiredstring (date-time)When the URL stops working.
position requiredintegerOrder of the photograph on the listing. 1 is the lead photograph.

GET /v1/properties/{id}

Get one published property

Returns one published listing by the id a listing page carried, in the same shape. The country must be the listing's own country and one your key covers. A listing that has been withdrawn, an id from another country, and an id that never existed all return not_found.

Parameters

ParameterTypeRequiredValuesDescription
idstringyesThe id of a listing, exactly as a listing page returned it.
countrystringyespattern ^[A-Z]{2}$ISO 3166-1 alpha-2 code of the country, for example TH. A country outside your subscription is refused with country_not_entitled.

Responses

StatusDescriptionError codes
200The listing.
400The request is invalid.invalid_parameter invalid_cursor
401The key is missing, unknown or revoked.unauthenticated
403The request is refused for the key, the address or the country.country_not_entitled ip_not_allowed key_paused
404The listing does not exist, is not in that country, or has been withdrawn.not_found
429A rate limit or a quota has been reached.rate_limited quota_exceeded
500Something went wrong on our side.internal_error
503The service cannot answer right now.service_unavailable