curl --request POST \
--url https://api.hostreach.io/v2/public/v1/valuations \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"latitude": 40.4168,
"longitude": -3.7038,
"squareMeters": 80,
"bedrooms": 3,
"bathrooms": 2,
"propertyType": "homes",
"operation": "sale",
"name": "Calle Mayor 12, 3º B"
}
'import requests
url = "https://api.hostreach.io/v2/public/v1/valuations"
payload = {
"latitude": 40.4168,
"longitude": -3.7038,
"squareMeters": 80,
"bedrooms": 3,
"bathrooms": 2,
"propertyType": "homes",
"operation": "sale",
"name": "Calle Mayor 12, 3º B"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
latitude: 40.4168,
longitude: -3.7038,
squareMeters: 80,
bedrooms: 3,
bathrooms: 2,
propertyType: 'homes',
operation: 'sale',
name: 'Calle Mayor 12, 3º B'
})
};
fetch('https://api.hostreach.io/v2/public/v1/valuations', 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.hostreach.io/v2/public/v1/valuations",
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([
'latitude' => 40.4168,
'longitude' => -3.7038,
'squareMeters' => 80,
'bedrooms' => 3,
'bathrooms' => 2,
'propertyType' => 'homes',
'operation' => 'sale',
'name' => 'Calle Mayor 12, 3º B'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <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.hostreach.io/v2/public/v1/valuations"
payload := strings.NewReader("{\n \"latitude\": 40.4168,\n \"longitude\": -3.7038,\n \"squareMeters\": 80,\n \"bedrooms\": 3,\n \"bathrooms\": 2,\n \"propertyType\": \"homes\",\n \"operation\": \"sale\",\n \"name\": \"Calle Mayor 12, 3º B\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<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.hostreach.io/v2/public/v1/valuations")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"latitude\": 40.4168,\n \"longitude\": -3.7038,\n \"squareMeters\": 80,\n \"bedrooms\": 3,\n \"bathrooms\": 2,\n \"propertyType\": \"homes\",\n \"operation\": \"sale\",\n \"name\": \"Calle Mayor 12, 3º B\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hostreach.io/v2/public/v1/valuations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"latitude\": 40.4168,\n \"longitude\": -3.7038,\n \"squareMeters\": 80,\n \"bedrooms\": 3,\n \"bathrooms\": 2,\n \"propertyType\": \"homes\",\n \"operation\": \"sale\",\n \"name\": \"Calle Mayor 12, 3º B\"\n}"
response = http.request(request)
puts response.read_bodyCreate a property valuation
Creates a valuation that searches comparable properties in the area and generates a price estimate. Consumes maxValuationsPerMonth quota.
curl --request POST \
--url https://api.hostreach.io/v2/public/v1/valuations \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"latitude": 40.4168,
"longitude": -3.7038,
"squareMeters": 80,
"bedrooms": 3,
"bathrooms": 2,
"propertyType": "homes",
"operation": "sale",
"name": "Calle Mayor 12, 3º B"
}
'import requests
url = "https://api.hostreach.io/v2/public/v1/valuations"
payload = {
"latitude": 40.4168,
"longitude": -3.7038,
"squareMeters": 80,
"bedrooms": 3,
"bathrooms": 2,
"propertyType": "homes",
"operation": "sale",
"name": "Calle Mayor 12, 3º B"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
latitude: 40.4168,
longitude: -3.7038,
squareMeters: 80,
bedrooms: 3,
bathrooms: 2,
propertyType: 'homes',
operation: 'sale',
name: 'Calle Mayor 12, 3º B'
})
};
fetch('https://api.hostreach.io/v2/public/v1/valuations', 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.hostreach.io/v2/public/v1/valuations",
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([
'latitude' => 40.4168,
'longitude' => -3.7038,
'squareMeters' => 80,
'bedrooms' => 3,
'bathrooms' => 2,
'propertyType' => 'homes',
'operation' => 'sale',
'name' => 'Calle Mayor 12, 3º B'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <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.hostreach.io/v2/public/v1/valuations"
payload := strings.NewReader("{\n \"latitude\": 40.4168,\n \"longitude\": -3.7038,\n \"squareMeters\": 80,\n \"bedrooms\": 3,\n \"bathrooms\": 2,\n \"propertyType\": \"homes\",\n \"operation\": \"sale\",\n \"name\": \"Calle Mayor 12, 3º B\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<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.hostreach.io/v2/public/v1/valuations")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"latitude\": 40.4168,\n \"longitude\": -3.7038,\n \"squareMeters\": 80,\n \"bedrooms\": 3,\n \"bathrooms\": 2,\n \"propertyType\": \"homes\",\n \"operation\": \"sale\",\n \"name\": \"Calle Mayor 12, 3º B\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hostreach.io/v2/public/v1/valuations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"latitude\": 40.4168,\n \"longitude\": -3.7038,\n \"squareMeters\": 80,\n \"bedrooms\": 3,\n \"bathrooms\": 2,\n \"propertyType\": \"homes\",\n \"operation\": \"sale\",\n \"name\": \"Calle Mayor 12, 3º B\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
API key (hr_live_... or hr_test_...). Generate from Settings › Workspace › Acceso API.
Body
Property latitude (WGS84).
40.4168
Property longitude (WGS84).
-3.7038
Usable floor area in m².
80
Search radius in km for comparable properties. Defaults to 5. Ignored when polygon is provided.
2
Custom polygon area (min 3 points). Takes precedence over searchRadius.
Show child attributes
Show child attributes
Idealista location ID (optional, for tier management).
3
2
false
false
false
true
4
homes, offices, premises, garages "homes"
sale, rent "sale"
new, good, to_renovate "good"
Custom label for this valuation.
"Calle Mayor 12, 3º B"
Human-readable address for display.
"Madrid Centro"
Property amenity tags.
Comparable IDs to include in the calculation.
Comparable IDs to exclude from the calculation.
Initial report configuration.
Show child attributes
Show child attributes
Response
Was this page helpful?