Skip to main content

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

EndpointDescription
POST /v1/avm/propertySingle-family, townhome, condo, and small multifamily (2–4 unit)
GET /v1/avm/propertySame, via query parameters
POST /v1/avm/rentalRental rate estimates per unit
GET /v1/avm/rentalSame, via query parameters (single unit)
POST /v1/avm/multifamilyLarge multifamily buildings (5+ units)
GET /v1/avm/multifamilySame, via query parameters
POST /v1/avm/batch/propertyAsync batch — submit up to 500 properties
POST /v1/avm/batch/rentalAsync batch — rental
POST /v1/avm/batch/multifamilyAsync 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):

FieldTypeDescription
addressstringFull street address
latitudefloatLatitude (-90 to 90)
longitudefloatLongitude (-180 to 180)

Property fields:

FieldTypeRequiredDescription
total_bedroomsintYesNumber of bedrooms (0–50)
total_bathroomsfloatYesNumber of bathrooms (0–50)
living_areaintNoLiving area in sqft
lot_sizeintNoLot size in sqft
year_builtintNoYear built (1800–2030)
property_typestringNohouses, townhomes, condos, small_multifamily
total_unitsintNoUnits in building (1–4). For small_multifamily, defaults to 2 if omitted.
has_private_poolboolNoDefault: false
has_basementboolNoDefault: false
central_airboolNoDefault: false
garage_spacesintNoDefault: 0
num_storiesintNo1–5
condition_scorefloatNo0–5 scale (0 = poor, 5 = excellent)
walk_scoreintNo0–100

Search parameters:

FieldTypeDefaultDescription
radius_mifloat5.0Search radius for comparables (0.1–10.0 miles)
lookback_monthsintMonths to look back for sale comparables (1–36)
num_comparablesint0Comparable properties to return (0–20). Set to 0 to skip the comparables query and get the fastest response.
datestringtodayAs-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

ValueDescription
housesSingle-family detached homes
townhomesAttached townhouses
condosCondominium units
small_multifamily2–4 unit properties
tip

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
}
note

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: 0 skips 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.