POST /property-intel
curl --request POST \
--url https://propx402.xyz/property-intel \
--header 'Content-Type: application/json' \
--data '
{
"address": "<string>"
}
'import requests
url = "https://propx402.xyz/property-intel"
payload = { "address": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({address: '<string>'})
};
fetch('https://propx402.xyz/property-intel', 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://propx402.xyz/property-intel",
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([
'address' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://propx402.xyz/property-intel"
payload := strings.NewReader("{\n \"address\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://propx402.xyz/property-intel")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://propx402.xyz/property-intel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"location": {
"address": "1411 8th Ave SE, Cedar Rapids, IA 52403",
"lat": 41.9614,
"lon": -91.6401,
"city": "Cedar Rapids",
"state": "Iowa",
"stateCode": "IA",
"zip": "52403",
"county": "Linn"
},
"property": {
"propertyType": "Single Family",
"bedrooms": 3,
"bathrooms": 1,
"squareFeet": 1248,
"yearBuilt": 1910,
"lastSaleDate": "2020-06-15",
"lastSalePrice": 118000,
"rentEstimate": {
"rentLow": 1050,
"rentEstimate": 1168,
"rentHigh": 1285
},
"valueEstimate": {
"valueLow": 104000,
"valueEstimate": 131000,
"valueHigh": 158000
}
},
"floodRisk": {
"zone": "X",
"riskLevel": "Minimal",
"inFloodZone": false
},
"walkability": {
"walkScore": 52,
"walkLabel": "Somewhat Walkable",
"totalAmenitiesNearby": 18
},
"riskScore": 15,
"riskLabel": "Low",
"meta": {
"processingMs": 5850,
"dataSources": ["OpenStreetMap", "RentCast", "FEMA", "...14 total"]
}
}
}
Endpoints
POST /property-intel
14-source property intelligence report — $0.05 USDC
POST
/
property-intel
POST /property-intel
curl --request POST \
--url https://propx402.xyz/property-intel \
--header 'Content-Type: application/json' \
--data '
{
"address": "<string>"
}
'import requests
url = "https://propx402.xyz/property-intel"
payload = { "address": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({address: '<string>'})
};
fetch('https://propx402.xyz/property-intel', 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://propx402.xyz/property-intel",
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([
'address' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://propx402.xyz/property-intel"
payload := strings.NewReader("{\n \"address\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://propx402.xyz/property-intel")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://propx402.xyz/property-intel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"location": {
"address": "1411 8th Ave SE, Cedar Rapids, IA 52403",
"lat": 41.9614,
"lon": -91.6401,
"city": "Cedar Rapids",
"state": "Iowa",
"stateCode": "IA",
"zip": "52403",
"county": "Linn"
},
"property": {
"propertyType": "Single Family",
"bedrooms": 3,
"bathrooms": 1,
"squareFeet": 1248,
"yearBuilt": 1910,
"lastSaleDate": "2020-06-15",
"lastSalePrice": 118000,
"rentEstimate": {
"rentLow": 1050,
"rentEstimate": 1168,
"rentHigh": 1285
},
"valueEstimate": {
"valueLow": 104000,
"valueEstimate": 131000,
"valueHigh": 158000
}
},
"floodRisk": {
"zone": "X",
"riskLevel": "Minimal",
"inFloodZone": false
},
"walkability": {
"walkScore": 52,
"walkLabel": "Somewhat Walkable",
"totalAmenitiesNearby": 18
},
"riskScore": 15,
"riskLabel": "Low",
"meta": {
"processingMs": 5850,
"dataSources": ["OpenStreetMap", "RentCast", "FEMA", "...14 total"]
}
}
}
Free test version available:
POST /test/property-intel — same request/response, no wallet needed.Overview
Aggregates 14 data sources in parallel into a comprehensive property intelligence report. Includes property valuation, rent estimate, flood zone, walkability, census demographics, environmental data, earthquake and tornado hazards, broadband availability, HUD opportunity zone, FRED housing price index, BLS job market, and FEMA disaster history. Price:$0.05 USDC on Base mainnet via x402
Request
string
required
Full US property address including city, state, and zip.Example:
"1411 8th Ave SE, Cedar Rapids, IA 52403"Response
object
Geocoded address components — lat, lon, city, state, zip, county.
object
Property details from RentCast — type, beds, baths, sqft, year built, last sale, AVM, and rent estimate with comparables.
object
FEMA flood zone classification — zone code, risk level, in-flood-zone boolean.
object
OSM-based walkability — walk score (0–100), label, total amenities within 800m.
object
Census ACS — population, median household income, median home value, vacancy rate.
object
EPA EJSCREEN — air quality percentile, superfund proximity percentile.
object
USGS earthquake hazard, NOAA tornado risk, hail risk.
object
FCC broadband — has gigabit, has fiber, max download Mbps, provider count.
object
HUD opportunity zone flag, fair market rent benchmarks by bedroom count.
object
FRED housing price index — year-over-year appreciation %, trend label.
object
BLS state unemployment rate, trend, investor signal.
object
OpenFEMA — total federal disasters, flood declarations, recent disasters list.
number
Composite risk score 0–100. Lower is better.
string
Low | Moderate | High{
"data": {
"location": {
"address": "1411 8th Ave SE, Cedar Rapids, IA 52403",
"lat": 41.9614,
"lon": -91.6401,
"city": "Cedar Rapids",
"state": "Iowa",
"stateCode": "IA",
"zip": "52403",
"county": "Linn"
},
"property": {
"propertyType": "Single Family",
"bedrooms": 3,
"bathrooms": 1,
"squareFeet": 1248,
"yearBuilt": 1910,
"lastSaleDate": "2020-06-15",
"lastSalePrice": 118000,
"rentEstimate": {
"rentLow": 1050,
"rentEstimate": 1168,
"rentHigh": 1285
},
"valueEstimate": {
"valueLow": 104000,
"valueEstimate": 131000,
"valueHigh": 158000
}
},
"floodRisk": {
"zone": "X",
"riskLevel": "Minimal",
"inFloodZone": false
},
"walkability": {
"walkScore": 52,
"walkLabel": "Somewhat Walkable",
"totalAmenitiesNearby": 18
},
"riskScore": 15,
"riskLabel": "Low",
"meta": {
"processingMs": 5850,
"dataSources": ["OpenStreetMap", "RentCast", "FEMA", "...14 total"]
}
}
}