Upgrade Guide

Migrating to v3

Migrating to the latest and greatest API version should be made simple. We've documented all our changes below to help facilitate just that.


Requests

Endpoint

The very first thing to note is that the endpoint URL has changed. All requests must now hit the https://api.estated.com/property/v3 endpoint.

API Keys

When you are ready to migrate versions, go into your developer dashboard under the API keys section and click "Upgrade to v3" to enable your existing API key to work with v3. This will not affect your current implementation, it enables your API key to have access to the latest API version. We also offer a sandbox mode for v3 to allow you to upgrade your application. Learn more about the v3 Sandbox API.

Request Types

In v3, additional property request types have been added. Properties are queryable in the following ways:

  • Conforming Address
  • Fully Qualified
  • Conjoined Address
  • FIPS code + APN
  • UPI
We've added a couple new ways to query properties: by county FIPS code and the Assessor's Parcel Number (APN), and also by UPI. An APN is only unique within a county, by including the county FIPS code, you have a unique identifier for the target property. UPI, or Universal Property Identifier, is a RESO standard to unify property data around one central unique identifier, and with this you can query a property from the Estated API. For more details on these request types, see the Request Overview section.

Format Parameter

An additional optional request parameter has been added to ALL request types above: format=xml. If added as an additional parameter to any of the request types, the response will be returned in XML format. By default, all responses are returned as JSON. The following is an example request using this optional request parameter.

https://api.estated.com/property/v3?token={ YOUR_API_TOKEN_HERE }&address=151+Battle+Green+Dr&city=Rochester&state=NY&zipcode=14624&format=xml

Responses

Success response

Successful responses contain three fields: success, codes and properties. The success field is a boolean and will return true for a successful response . The codes field returns an empty object on success. The properties field contains an array of properties for the requested address. The data field from v1 has been removed in v3.

v1
{
    "status": "success",
    "data": { ... }
}
v3
{
    "success": true,
    "codes": {},
    "properties": [{ ... }]
}

Error response

The message field has been removed and has been replaced by the codes field which returns a JSON object containing all codes that apply to the request. The values will be unique error codes that correspond to a more detailed message. (View error codes)

v1
{
    "status": "error",
    "message": "No token provided."
}
v3
{
    "success": false,
    "codes": {
        "RE02": "Invalid token"
    }
}

With v3, we have added a RESO-compliant endpoint. The response is structured differently than what's detailed on this page, if you want a RESO data dictionary returned as a response, see our RESO Overview page for details.


Schema Changes

Properties

A successful response will return with an object containing success, codes and properties fields. The properties field is an array of property objects. With a property object's components listed, a response looks like the following:

v1
{
    "status": "success",
    "data": {
        "property": {
            "metadata": { ... },
            "address": { ... },
            "site": { ... },
            "structures": [{ ... }],
            "postal": { ... },
            "boundaries": { ... },
            "valuation": { ... },
            "status": { ... },
            "taxes": [{ ... }],
            "sales": [{ ... }],
            "mortgages": [{ ... }],
            "owners": [{ ... }],
            "comparables": [{ ... }]
        },
        "geographic": {
            "districts": { ... },
            "entities": { ... }
        }
    }
}
v3
{
    "success": true,
    "codes" : { },
    "properties": [
        {
            "metadata": { ... },
            "addresses": [{ ... }],
            "parcel": { ... },
            "land_use": { ... },
            "structures": [{ ... }],
            "structure_totals": { ... },
            "owners": [{ ... }],
            "assessments": [{ ... }],
            "sales": [{ ... }],
            "mortgages": [{ ... }],
            "legal": { ... },
            "valuation": { ... },
            "status": { ... },
            "postal": { ... },
            "geographies": { ... }
        },
        ...
    ]
}

As you can see, the property object in v3 is very similiar to v1 with a few new data points and some reorganization. Many of the fields in data.geographic have moved to v3's properties[i].geographies section.


Metadata

The metadata object has been reduced to the following properties: property_id, published_at, updated_at, upi and release_version. The new published_at field is the date the most recent public data we are using was published. The upi field is a new addition, corresponding to the RESO's universal property ID. The updated_at field indicates the last time the record was updated with new information. The field release_version is a new addition and indicates the release version of the API. The address_match and error_message fields from v1 have been removed entirely. The property_classification_code field has been moved to the land_use section as the classification_code field.

v1
"metadata": {
    "address_match": "exact",
    "property_id": 17535291,
    "updated_at": "2018-09-28",
    "property_classification_code": 3,
    "error_message": null
}
v3
"metadata": {
    "property_id": 17535291,
    "published_at": "2015-08-18",
    "updated_at": "2018-09-28"
    "upi": "US-06037-N-4328031029-R-N",
    "release_version": "v57.2"
}

Addresses

The address section from v1 has been renamed to addresses and is an array of address objects. The latitude and longitude fields have moved to the geocoding section. The unit_type field has been removed from v3.

v1
"address": {
    "street_number": "220",
    "street_name": "Rodeo",
    "street_pre_direction": "S",
    "street_direction": null,
    "street_suffix": "Dr",
    "unit_type": null,
    "unit_number": null,
    "formatted_street_address": "220 S Rodeo Dr",
    "city": "Beverly Hills",
    "state": "CA",
    "zip_code": "90212",
    "zip_code_plus_four": "3804",
    "latitude": 34.06405843,
    "longitude": -118.40095478
}
v3
"addresses": [
    {
        "street_number": "220",
        "street_pre_direction": "S",
        "street_name": "Rodeo",
        "street_suffix": "Dr",
        "street_post_direction": null,
        "unit_number": null,
        "formatted_street_address": "220 S Rodeo Dr",
        "city": "Beverly Hills",
        "state": "CA",
        "zip_code": "90212",
        "zip_code_plus_four": "3804"
    }
]

Geocoding

Geocoding is a new section to v3 of the Estated API. It is useful for calculating distances and directions for any two points on a map. Properties are geocoded three different ways: to rooftop, to street, and to parcel centroid. Depending on how the property was geocoded, the latitude and longitude will appear under the corresponding type.

v3
"geocoding": {
    "street": {
      "latitude": null,
      "longitude": null
    },
    "parcel_centroid": {
      "latitude": null,
      "longitude": null
    },
    "rooftop": {
      "latitude": 34.06405843,
      "longitude": -118.40095478
    }
}

Parcel

The new parcel section, previously the site section, contains most of the fields from it's predecessor. The following fields have been removed in v3: sublocality_id, locality_id, view, and title. The following fields moved to the legal section: parcel_id, tax_account_id, and legal_description. The following fields moved to the land_use section: zoning, zoning_category zoning_description, and land_use_code. For more details on the moved fields, see their corresponding section as some fields have also been renamed.

v1
"site": {
    "sublocality_id": null,
    "locality_id": null,
    "land_use_code": "0100",
    "zoning": "Single Family Residence",
    "zoning_category": "Residential",
    "zoning_description": "Single Family Residence",
    "depth": 128,
    "width": 55,
    "size": 2748,
    "acres": 0.161,
    "range": null,
    "township": null,
    "section": null,
    "block": null,
    "lot": null,
    "view": null,
    "location_description": null,
    "building_count": 1,
    "parcel_id": "4328031029",
    "tax_account_id": "4328-031-029",
    "legal_description": "133",
    "title": null
}
v3
"parcel": {
    "depth": 128,
    "width": 55,
    "size": 2748,
    "acres": 0.161,
    "range": null,
    "township": null,
    "section": null,
    "block": null,
    "lot": null,
    "location_description": null,
    "building_count": 1,
    "boundaries": { ... }
}

A new addition to the parcel section is the boundaries object, which was previously found in the v1 endpoint under data.property.boundaries. We've added a spatial reference identifier field, srid. Note that wkt and geojson are all lowercase letters in v3 compared to v1.

v1
"boundaries": {
    "geoJSON": {
        "type": "Polygon",
        "coordinates": [
            [
                [
                    -118.400744,
                    34.064134
                ],
                [
                    -118.400744,
                    34.063983
                ],
                [
                    -118.401165,
                    34.063983
                ],
                [
                    -118.401165,
                    34.064134
                ],
                [
                    -118.400744,
                    34.064134
                ]
            ]
        ]
    },
    "WKT": "POLYGON((-118.400744 34.064134,-118.400744 34.063983,-118.401165 34.063983,-118.401165 34.064134,-118.400744 34.064134))"
}
v3
"boundaries": {
    "srid": 4326,
    "wkt": "POLYGON((-118.400744 34.064134,-118.400744 34.063983,-118.401165 34.063983,-118.401165 34.064134,-118.400744 34.064134))",
    "geojson": {
        "type": "Polygon",
        "coordinates": [
            [
                [
                    -118.400744,
                    34.064134
                ],
                [
                    -118.400744,
                    34.063983
                ],
                [
                    -118.401165,
                    34.063983
                ],
                [
                    -118.401165,
                    34.064134
                ],
                [
                    -118.400744,
                    34.064134
                ]
            ]
        ]
    }
}

Land Use

This is a new section to v3. It is comprised entirely of data points from v1 that are now more logically grouped together. The classification_code was previously found under metadata.property_classification_code. The source_code was previously found under site.land_use_code. The zoning field was previously found under site.zoning. The category and subcategory fields were previously site.zoning_category and site.zoning_description.

v1
"metadata": {
    ...
    "property_classification_code": 3,
    ...
},
"site": {
    ...
    "land_use_code": "0100",
    "zoning": "Single Family Residence",
    "zoning_category": "Residential",
    "zoning_description": "Single Family Residence",
    ...
}
v3
"land_use": {
    "classification_code": 3,
    "category": "Residential",
    "subcategory": "Single Family Residence",
    "source_code": "0100",
    "zoning": "Single Family Residence"
}

Structures

A structure object within the structures array has a few new fields: identifier, height and is_primary. Since structures is an array, we've added is_primary to indicate which structure on the land parcel is the main residence. More often than not, the structures array will only contain one structure.

v1
"structures": [
    {
        "year_built": 1926,
        "effective_year_built": 1965,
        "rooms_count": 8,
        "beds_count": 3,
        "baths_count": 4,
        "half_baths_count": null,
        "full_baths_count": 4,
        "quarter_baths_count": null,
        "three_quarter_baths_count": null,
        "stories_count": 1,
        "units_count": 1,
        "total_size": 2748,
        "finished_size": 2748,
        "unfinished_size": 0,
        "basement_size": null,
        "garage_size": null,
        "architecture_type": "Spanish",
        "exterior_wall_type": "Stucco",
        "air_conditioning_type": "Central",
        "basement_type": null,
        "building_type": null,
        "category": "Single family",
        "condition": null,
        "construction_type": null,
        "fireplace_count": 1,
        "fireplace_type": null,
        "foundation_type": "Raised",
        "flooring_type": null,
        "garage_type": null,
        "heating_type": "Central",
        "mobile_home": null,
        "parking_spaces": 2,
        "parking_type": "On Site",
        "pool_type": null,
        "quality": null,
        "roof_type": null,
        "roof_style_type": null,
        "electricity_type": null,
        "fuel_type": null,
        "sewer_type": null,
        "water_type": null
    }
]
v3
"structures": [
    {
        "year_built": 1926,
        "effective_year_built": 1965,
        "identifier": null,
        "rooms_count": 8,
        "beds_count": 3,
        "baths_count": 4,
        "half_baths_count": null,
        "full_baths_count": 4,
        "quarter_baths_count": null,
        "three_quarter_baths_count": null,
        "stories_count": 1,
        "units_count": 1,
        "total_size": 2748,
        "finished_size": 2748,
        "unfinished_size": 0,
        "basement_size": null,
        "garage_size": null,
        "height": null,
        "architecture_type": "Spanish",
        "exterior_wall_type": "Stucco",
        "air_conditioning_type": "Central",
        "basement_type": null,
        "building_type": null,
        "category": "Single family",
        "condition": null,
        "construction_type": null,
        "fireplace_count": 1,
        "fireplace_type": null,
        "foundation_type": "Raised",
        "flooring_type": null,
        "garage_type": null,
        "heating_type": "Central",
        "mobile_home": null,
        "parking_spaces": 2,
        "parking_type": "On Site",
        "pool_type": null,
        "quality": null,
        "roof_type": null,
        "roof_style_type": null,
        "electricity_type": null,
        "fuel_type": null,
        "sewer_type": null,
        "water_type": null,
        "is_primary": true
    }
]

Structure Totals

The structure_totals section is a new addition to v3. It contains information about all feature totals across all structures on a property. The count field is the sum of all structures on the parcel. These are new data points that were not previously available in v1.

v3
"structure_totals": {
    "beds": 3,
    "baths": 4,
    "rooms": 8,
    "units": 1,
    "sqft": 2748,
    "count": 1
}

Owners

The owners section has had the following fields removed: address2, second_first_name, second_middle_name, second_last_name, second_suffix, second_gender, gender, email and phone. The only other change is the renaming of the zip field to zip_code in v3.

v1
"owners": [
    {
        "corporate_flag": false,
        "name": "SMITH JOHN",
        "second_name": null,
        "phone": null,
        "address": "610 N Beverly Dr",
        "address2": null,
        "city": "Beverly Hills",
        "state": "CA",
        "zip": "90210",
        "first_name": "JOHN",
        "middle_name": null,
        "last_name": "SMITH",
        "suffix": null,
        "gender": null,
        "second_first_name": null,
        "second_middle_name": null,
        "second_last_name": null,
        "second_suffix": null,
        "second_gender": null,
        "email": null,
        "started_at": "2013-04-02",
        "ended_at": null
    }
]
v3
"owners": [
    {
        "corporate_flag": false,
        "name": "SMITH JOHN",
        "second_name": null,
        "address": "610 N Beverly Dr",
        "city": "Beverly Hills",
        "state": "CA",
        "zip_code": "90210",
        "first_name": "JOHN",
        "middle_name": null,
        "last_name": "SMITH",
        "suffix": null,
        "ended_at": null,
        "started_at": "2013-04-02"
    }
]

Assessments

The assessments section contains all the same data points as was available in v1 under the taxes section. The only change is the renaming of the section.

v1
"taxes": [
    {
        "land": 2201657,
        "improvement": 954935,
        "total": 3156592,
        "tax_amount": 36007,
        "tax_year": 2016,
        "details": null,
        "outstanding_tax": null,
        "appraised_total": null,
        "appraised_land": null,
        "appraised_improvement": null,
        "exemptions": null
    },
    ...
}
v3
"assessments": [
    {
        "land": 2201657,
        "improvement": 954935,
        "total": 3156592,
        "tax_amount": 36007,
        "tax_year": 2016,
        "details": null,
        "outstanding_tax": null,
        "appraised_total": null,
        "appraised_land": null,
        "appraised_improvement": null,
        "exemptions": null
    },
    ...
}

Sales

The sales section contains all the same data points as was available in v1. The multiAPN field has been renamed to multi_apn and its return type has changed from an integer to a boolean. The document_id field has also been added.

v1
"sales": [
    {
        "date": "2013-04-02",
        "recording_date": "2013-04-12",
        "price": 2975000,
        "type": "Grant Deed",
        "seller": "SMITH JOHN & JANE",
        "buyer": null,
        "transaction_id": "201304172813",
        "document_year": 2013,
        "sale_code": "Sale Price (Full)",
        "multiAPN": 0,
        "hpi_adjusted_price_2010": 2876665,
        "deed_book": null,
        "deed_page": null
    }
]
v3
"sales": [
    {
        "date": "2013-04-02",
        "recording_date": "2013-04-12",
        "price": 2975000,
        "type": "Grant Deed",
        "seller": "SMITH JOHN & JANE",
        "buyer": null,
        "transaction_id": "201304172813",
        "document_year": 2013,
        "sale_code": "Sale Price (Full)",
        "multi_apn": false,
        "hpi_adjusted_price_2010": 2876665,
        "deed_book": null,
        "deed_page": null,
        "document_id": 2468
    }
]

Mortgages

The mortgages section contains the same data points in v3 as it did in v1. Note the change in term as the units have changed from years to months.

v1
"mortgages": [
    {
        "amount": 399877,
        "loan_type": "Federal Housing Authority",
        "deed_type": "Deed Of Trust",
        "date": "2017-06-23",
        "term": 30,
        "due_date": null,
        "lender_name": null,
        "details": null
    }
]
v3
"mortgages": [
    {
        "amount": 399877,
        "loan_type": "Federal Housing Authority",
        "deed_type": "Deed Of Trust",
        "date": "2017-06-23",
        "term": 360,
        "due_date": null,
        "lender_name": null,
        "details": null
    }
]

Legal

The legal section is new to v3 and contains some information previously available in v1 along with some new data points. Both the apn_original and apn_unformatted fields are related to v1's site.parcel_id field. The apn_original is the APN we received from the county, verbatim, whereas apn_unformatted is a processed APN stripped of delimiters. The tax_account field was previously site.tax_account_id. The legal_description field was previously site.legal_description. The following field is new to v3: planned_urban_development.

v1
"site": {
    ...
    "parcel_id": "4328031029",
    "tax_account_id": "4328-031-029",
    "legal_description": "133",
    ...
}
v3
"legal": {
    "apn_original": "4328031029",
    "apn_unformatted": "4328031029",
    "tax_account": "4328-031-029",
    "legal_description": "133",
    "planned_urban_development": null
}

Valuation

The valuation section has been whittled down to only key information. The following properties have been removed: type, suggested_rental and version. The calculated_rental_value field is a new addition to v3.

v1
"valuation": {
    "value": 3701176,
    "type": "TPSval",
    "low": null,
    "high": null,
    "confidence": null,
    "suggested_rental": null,
    "market_value_change_year": null,
    "market_value_change_quarter": null,
    "forecast_1_year": 3832796,
    "version": "2.10"
}
v3
"valuation": {
    "value": 3701176,
    "low": null,
    "high": null,
    "confidence": null,
    "market_value_change_year": null,
    "market_value_change_quarter": null,
    "forecast_1_year": 3832873,
    "calculated_rental_value": null
}

Status

The following fields have been removed from the status section: foreclosure, listing_price, and details. The field absentee_owner has replaced rental and has changed type from string to boolean. The vacant field type has changed from string to boolean.

v1
"status": {
    "rental": "true",
    "vacant": null,
    "market_status": null,
    "foreclosure": null,
    "rental_price": null,
    "listing_price": null,
    "details": null
}
v3
"status": {
    "absentee_owner": true,
    "vacant": null,
    "market_status": null,
    "rental_price": null
}

Postal

In the postal section, the details field has been removed. The another subtle change is that the validated property changed type from string to boolean.

v1
"postal": {
    "carrier_code": null,
    "delivery_point_code": null,
    "delivery_point_check_digit": null,
    "validated": "N",
    "deliverable": null,
    "details": null
}
v3
"postal": {
    "carrier_code": null,
    "delivery_point_code": null,
    "delivery_point_check_digit": null,
    "validated": false,
    "deliverable": null
}

Geographies

The geographies section is mostly comprised of data points from v1's geographic.districts section. The level_returned field corresponds to the level in which we were able to query the data. The congressional field was previously called congressional_district. The entities section has been removed in v3.

v1
"geographic": {
    "districts": {
        "neighborhood": null,
        "census_tract": null,
        "census_block": null,
        "cbsa": { ... },
        "county": { ... },
        "school_district_elementary": { ... },
        "school_district_secondary": { ... },
        "congressional_district": "",
        "state_legislative_district_upper": "",
        "state_legislative_district_lower": "",
        "police_jurisdiction": { ... },
        "fire_jurisdiction": { ... }
    },
    "entities": { ... }
}
v3
"geographies": {
    "level_returned": "census_tract",
    "county": { ... },
    "census": { ... },
    "cbsa": { ... },
    "school_elementary": { ... },
    "school_secondary": { ... },
    "congressional": "",
    "state_legislative_upper": { ... },
    "state_legislative_lower": { ...},
    "police": { ... },
    "fire": { ... },
    "flood": {
        "fima_flood_zone": null,
        "annual_flood_risk": null,
        "firm_panel_id": null
    },
    "neighborhood": null
}

County

The county section is has one minor change. The fips_code field in v1 has been split into two fields in v3: state_fips_code and fips_code. State FIPS codes are two digits in length, and can be zero-padded as shown in the v3 example below. County FIPS codes are three digits in length, can be zero-padded, and are unique within a state. As you can see, v1's fips_code was the combined FIPS code, the first two digits indicating the state code, and the following three digits indicating the county code.

v1
"county": {
    "name": "Los Angeles",
    "fips_code": "06037"
}
v3
"county": {
    "name": "Los Angeles",
    "state_fips_code": "06",
    "fips_code": "037"
}

Census

The census section is new to v3 and includes two fields: census_tract and census_block. These two fields were found under the geographic.districts section in v1.

v1
"geographic": {
    "districts": {
        ...
        "census_tract": 701000,
        "census_block": null,
        ...
    }
}
v3
"geographies": {
    ...
    "census": {
        "census_tract": 701000,
        "census_block": null
    }
    ...
}

CBSA

The cbsa section contains the same data points, the only change is where it is located in the schema.

v1
"geographic": {
    "districts": {
        ...
        "cbsa": {
            "name": null,
            "code": null,
            "type": null
        },
        ...
    }
}
v3
"geographies": {
    ...
    "cbsa": {
        "name": null,
        "code": null,
        "type": null
    },
    ...
}

School Elementary

The school_elementary section was previously known as school_district_elementary. The following fields were removed in v3: id, state_id, latitude, longitude, and distance.

v1
"school_district_elementary": {
    "id": 3066,
    "geoid": "604830",
    "name": "Beverly Hills Unified School District",
    "low_grade": "KG",
    "high_grade": "12",
    "type": "Unified",
    "state_id": 5,
    "latitude": "34.07923",
    "longitude": "-118.4024374",
    "distance": "1.05187115363176"
}
v3
"school_elementary": {
    "geoid": "604830",
    "name": "Beverly Hills Unified School District",
    "low_grade": "KG",
    "high_grade": "12",
    "type": "Unified"
}

School Secondary

The school_secondary section was previously known as school_district_secondary. The following fields were removed in v3: id, state_id, latitude, longitude, and distance.

v1
"school_district_secondary": {
    "id": 3066,
    "geoid": "604830",
    "name": "Beverly Hills Unified School District",
    "low_grade": "KG",
    "high_grade": "12",
    "type": "Unified",
    "state_id": 5,
    "latitude": "34.07923",
    "longitude": "-118.4024374",
    "distance": "1.05187115363176"
}
v3
"school_secondary": {
    "geoid": "604830",
    "name": "Beverly Hills Unified School District",
    "low_grade": "KG",
    "high_grade": "12",
    "type": "Unified"
}

State Legislative Upper

The state_legislative_upper section was previously the state_legislative_district_upper field. It is now an object with a name field in v3, as compared to v1 where it was just a string.

v1
"geographic": {
    "districts": {
        ...
        "state_legislative_district_upper": "State Senate District 30",
        ...
    }
}
v3
"geographies": {
    ...
    "state_legislative_upper": {
        "name": "State Senate District 30"
    },
    ...
}

State Legislative Lower

The state_legislative_lower section was previously the state_legislative_district_lower field. It is now an object with a name field in v3, compared to just a string in v1.

v1
"geographic": {
    "districts": {
        ...
        "state_legislative_district_lower": "Assembly District 54",
        ...
    }
}
v3
"geographies": {
    ...
    "state_legislative_lower": {
        "name": "Assembly District 54"
    },
    ...
}

Police

The police section has only been renamed from police_jurisdiction.

v1
"police_jurisdiction": {
    "name": "Beverly Hills Police Department",
    "type": "City",
    "city": "Beverly Hills",
    "state_fips": "06",
    "county_fips": null
}
v3
"police": {
    "name": "Beverly Hills Police Department",
    "type": "City",
    "city": "Beverly Hills",
    "state_fips": "06",
    "county_fips": null
}

Fire

The fire section was previously known as the fire_jurisdiction section. All data points are the same, however v1's zipcode has been renamed to zip_code.

v1
"fire_jurisdiction": {
    "fdid": "19025",
    "name": "Beverly Hills Fire Department",
    "address": "445 N Rexford DR",
    "address_2": null,
    "city": "Beverly Hills",
    "zipcode": "90210",
    "phone": "310-281-2701",
    "mailing_address": "445 N Rexford DR, Beverly Hills, CA, 90210",
    "department_type": "Career",
    "organization_type": "Local",
    "website": "http://beverlyhills.org/citygovernment/departments/firedepartment/",
    "stations_count": 3,
    "career_firefighters_count": 85,
    "volunteer_firefighters_count": 0,
    "paid_per_call_firefighters_count": 0,
    "non_firefighting_staff_count": 0,
    "interpolated_latitude": null,
    "interpolated_longitude": null,
    "county": null,
    "state": "California"
}
v3
"fire": {
    "fdid": "19025",
    "name": "Beverly Hills Fire Department",
    "address": "445 N Rexford DR",
    "address_2": null,
    "city": "Beverly Hills",
    "zip_code": "90210",
    "phone": "310-281-2701",
    "mailing_address": "445 N Rexford DR, Beverly Hills, CA, 90210",
    "department_type": "Career",
    "organization_type": "Local",
    "website": "http://beverlyhills.org/citygovernment/departments/firedepartment/",
    "stations_count": 3,
    "career_firefighters_count": 85,
    "volunteer_firefighters_count": 0,
    "paid_per_call_firefighters_count": 0,
    "non_firefighting_staff_count": 0,
    "interpolated_latitude": null,
    "interpolated_longitude": null,
    "county": null,
    "state": "California"
}

Flood

The flood section is new to v3 and contains flood risk information about the property.

v3
"flood": {
    "fima_flood_zone": "X",
    "annual_flood_risk": "AREA OF MINIMAL FLOOD HAZARD",
    "firm_panel_id": "24015C"
}

Neighborhood

The neighborhood section has moved from the districts section to the geographies section.

v1
"districts": {
    "neighborhood": null,
    ...
}
v3
 "geographies": {
    ...,
    "neighborhood": null
}