Properties
Look up properties by address, reverse geocode by coordinates, batch process multiple addresses, and search with filters. Use the include parameter to enrich any lookup with flood, demographic, amenity, walk score, and housing data in a single request.
/v1/properties/lookupLook up a property by street address. Creates the property record on first lookup using the Census Geocoder.
| Parameter | Type | Description |
|---|---|---|
streetrequired | string | Street address (e.g., 1600 Pennsylvania Ave NW) |
city | string | City name |
staterequired | string | Two-letter state code (e.g., DC) |
zip | string | 5-digit ZIP code |
include | string | Comma-separated enrichment: flood, walkscore, demographics, amenities, housing. Each counts as +1 request. |
curl -H "X-API-Key: pda_your_key" \
"https://api.propertypulse.dev/v1/properties/lookup?street=1600+Pennsylvania+Ave+NW&city=Washington&state=DC&zip=20500"{
"data": {
"id": 1,
"street_address": "1600 PENNSYLVANIA AVE NW",
"city": "WASHINGTON",
"state": "DC",
"zip_code": "20500",
"county": "District of Columbia",
"fips_code": "11001",
"latitude": 38.8987,
"longitude": -77.0352,
"census_tract": "980000",
"property_type": "single_family"
},
"meta": { "source": "Census Geocoder" }
}Enrichment with include
Add ?include=flood,walkscore,demographics,amenities,housing to any lookup, reverse, or get-by-ID request. Each section is fetched in parallel and merged into the response. Each included section costs one additional API request toward your rate limit.
curl -H "X-API-Key: pda_your_key" \
"https://api.propertypulse.dev/v1/properties/lookup?street=1600+Pennsylvania+Ave+NW&state=DC&include=flood,demographics"
# Response includes:
# data.flood = { "zone_code": "X", "flood_risk_level": "low", ... }
# data.demographics = { "median_household_income": 55000, ... }/v1/properties/reverseLook up a property by latitude/longitude. Returns the nearest property or creates one via reverse geocoding.
| Parameter | Type | Description |
|---|---|---|
latrequired | float | Latitude |
lngrequired | float | Longitude |
include | string | Comma-separated enrichment sections (same as lookup) |
curl -H "X-API-Key: pda_your_key" \
"https://api.propertypulse.dev/v1/properties/reverse?lat=44.9429&lng=-123.0351"{
"data": {
"id": 42,
"latitude": 44.9429,
"longitude": -123.0351,
"county": "Marion",
"fips_code": "41047",
"census_tract": "001200"
},
"meta": { "source": "Census Reverse Geocoder" }
}/v1/properties/batchLook up multiple addresses in a single request. Max 25 per batch. Each address counts as one API request.
| Parameter | Type | Description |
|---|---|---|
addressesrequired | array | Array of address objects with street, city, state, zip |
include | string | Query param: enrichment sections applied to each result |
{
"addresses": [
{ "street": "1600 Pennsylvania Ave NW", "city": "Washington", "state": "DC" },
{ "street": "350 5th Ave", "city": "New York", "state": "NY", "zip": "10118" }
]
}{
"data": {
"results": [
{ "index": 0, "source": "database", "id": 1, "street_address": "1600 PENNSYLVANIA AVE NW", ... },
{ "index": 1, "source": "Census Geocoder", "id": 2, "street_address": "350 5TH AVE", ... }
],
"errors": [],
"total_requested": 2,
"total_found": 2,
"total_errors": 0
}
}/v1/properties/{property_id}Get a property by its ID. Supports the include parameter for enrichment.
| Parameter | Type | Description |
|---|---|---|
include | string | Comma-separated enrichment sections |
curl -H "X-API-Key: pda_your_key" \
"https://api.propertypulse.dev/v1/properties/1?include=flood,walkscore"/v1/properties/searchSearch properties with filters. Returns paginated results.
| Parameter | Type | Description |
|---|---|---|
zip | string | Filter by ZIP code |
city | string | Filter by city |
state | string | Filter by state |
property_type | string | Filter by type (single_family, multi_family) |
min_bedrooms | integer | Minimum bedrooms |
max_bedrooms | integer | Maximum bedrooms |
page | integer | Page number (default: 1) |
per_page | integer | Results per page (1-100, default: 25) |