Property Valuation
The PadStats AVM (Automated Valuation Model) produces instant property valuations using an ensemble of XGBoost, LightGBM, and CatBoost models trained on local sale comparables and property attributes.
Endpoints
| Endpoint | Description |
|---|---|
POST /v1/avm/property | Single-family, townhome, condo, and small multifamily (2–4 unit) |
GET /v1/avm/property | Same, via query parameters |
POST /v1/avm/rental | Rental rate estimates per unit |
GET /v1/avm/rental | Same, via query parameters (single unit) |
POST /v1/avm/multifamily | Large multifamily buildings (5+ units) |
GET /v1/avm/multifamily | Same, via query parameters |
POST /v1/avm/batch/property | Async batch — submit up to 500 properties |
POST /v1/avm/batch/rental | Async batch — rental |
POST /v1/avm/batch/multifamily | Async batch — multifamily |
GET /v1/avm/batch/{job_id} | Poll batch job status and retrieve results |
Property AVM
Minimal request
The minimum required fields are a location plus bedrooms and bathrooms:
curl -X POST https://api.padstats.io/v1/avm/property \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"address": "456 Oak Ave, Tampa, FL 33602",
"total_bedrooms": 3,
"total_bathrooms": 2
}'
Full request with all fields
{
"address": "456 Oak Ave, Tampa, FL 33602",
"total_bedrooms": 3,
"total_bathrooms": 2,
"living_area": 1650,
"lot_size": 6500,
"year_built": 2004,
"property_type": "houses",
"has_private_pool": true,
"has_basement": false,
"central_air": true,
"garage_spaces": 2,
"num_stories": 1,
"condition_score": 3.5,
"walk_score": 62,
"radius_mi": 5.0,
"lookback_months": 12,
"num_comparables": 5
}
Request fields
Location — provide one of address or (latitude + longitude):
| Field | Type | Description |
|---|---|---|
address | string | Full street address |
latitude | float | Latitude (-90 to 90) |
longitude | float | Longitude (-180 to 180) |
Property fields:
| Field | Type | Required | Description |
|---|---|---|---|
total_bedrooms | int | Yes | Number of bedrooms (0–50) |
total_bathrooms | float | Yes | Number of bathrooms (0–50) |
living_area | int | No | Living area in sqft |
lot_size | int | No | Lot size in sqft |
year_built | int | No | Year built (1800–2030) |
property_type | string | No | houses, townhomes, condos, small_multifamily |
total_units | int | No | Units in building (1–4). For small_multifamily, defaults to 2 if omitted. |
has_private_pool | bool | No | Default: false |
has_basement | bool | No | Default: false |
central_air | bool | No | Default: false |
garage_spaces | int | No | Default: 0 |
num_stories | int | No | 1–5 |
condition_score | float | No | 0–5 scale (0 = poor, 5 = excellent) |
walk_score | int | No | 0–100 |
Search parameters:
| Field | Type | Default | Description |
|---|---|---|---|
radius_mi | float | 5.0 | Search radius for comparables (0.1–10.0 miles) |
lookback_months | int | — | Months to look back for sale comparables (1–36) |
num_comparables | int | 0 | Comparable properties to return (0–20). Set to 0 to skip the comparables query and get the fastest response. |
date | string | today | As-of date for the valuation (YYYY-MM-DD) |
Response
{
"address_info": {
"formatted_address": "456 Oak Ave, Tampa, FL 33602",
"street_address": "456 Oak Ave",
"city": "Tampa",
"state": "Florida",
"state_code": "FL",
"county": "Hillsborough County",
"postal_code": "33602",
"latitude": 27.9478,
"longitude": -82.4584,
"geohash8": "dhvrgkqp",
"census_geoids": {
"state_fips": "12",
"county_fips": "057",
"tract_fips": "010100",
"block_fips": "1"
}
},
"valuation": {
"point_value": 412000,
"confidence_interval_95": {
"lower": 381000,
"upper": 443000
},
"box_plot_params": {
"min": 350000,
"q1": 390000,
"median": 410000,
"q3": 435000,
"max": 480000
},
"probabilistic_distribution": {
"mean": 412000,
"std": 31000,
"median": 410000
},
"model_predictions": {
"xgboost": 408000,
"lightgbm": 415000,
"catboost": 413000
}
},
"comparables": {
"properties": [ ... ],
"statistics": { ... }
}
}
property_type values
| Value | Description |
|---|---|
houses | Single-family detached homes |
townhomes | Attached townhouses |
condos | Condominium units |
small_multifamily | 2–4 unit properties |
When property_type is small_multifamily and total_units is omitted or set to 1, the API defaults total_units to 2. Always pass the actual unit count when you have it.
Rental AVM
Returns estimated monthly rent for one or more units in a property.
{
"address": "789 Elm St, Nashville, TN 37201",
"property_type": "small_multifamily",
"total_units": 4,
"central_air": true,
"in_unit_laundry": true,
"off_street_parking": true,
"units": [
{ "bedrooms": 2, "bathrooms": 1, "size": 900 },
{ "bedrooms": 1, "bathrooms": 1, "size": 650 }
]
}
The units array accepts individual unit specs. Each unit takes bedrooms (int), bathrooms (float), size (sqft, optional), and fully_furnished (bool, default false).
For a GET request (single-unit shorthand), pass bedrooms and bathrooms as query parameters directly — no units array needed:
curl "https://api.padstats.io/v1/avm/rental?address=789+Elm+St,+Nashville,+TN+37201&bedrooms=2&bathrooms=1&size=900&property_type=houses" \
-H "X-API-Key: YOUR_API_KEY"
Multifamily AVM
For buildings with 5 or more units. Returns a whole-building valuation.
{
"address": "100 Harbor Blvd, Miami, FL 33132",
"total_bedrooms": 24,
"total_bathrooms": 24,
"total_units": 12,
"living_area": 14400,
"year_built": 1985,
"num_stories": 3,
"central_air": true
}
total_units is required for the multifamily endpoint and must be ≥ 5. Use the property AVM for 2–4 unit buildings.
Performance tips
num_comparables: 0skips the comparables database query — use this for batch workloads where you only need the valuation, not comparable listings.- For single properties, typical response times are 1–3 seconds.
- For large volumes, use the batch endpoints.