openapi: 3.0.3
info:
title: Estated Property Data API
version: '4.0'
description: >-
The Estated Property Data API (v4) returns assessor, parcel, structure,
valuation, owner, deed, and boundary data for U.S. residential and
commercial properties. Lookups can be performed using a split address
(street_address + city + state), parsed address components, a single
combined address string, or a FIPS code + APN pair. Each successful
response returns a Property object containing metadata, address, parcel,
structure, taxes, assessments, market_assessments, valuation, owner,
deeds, and boundary sections. Estated was acquired by ATTOM Data in 2020
and the underlying platform is being migrated to ATTOM infrastructure;
existing tokens continue to work but documentation will be deprecated
during 2026.
contact:
name: ATTOM Data (Estated)
url: https://www.attomdata.com/contact-us/
license:
name: Commercial
url: https://www.attomdata.com/terms-of-use/
servers:
- url: https://apis.estated.com
description: Production API endpoint
security:
- tokenQuery: []
paths:
/v4/property:
get:
operationId: getProperty
summary: Get Property
description: >-
Retrieve a Property object for a U.S. address. Use the `combined_address`
parameter for a single-string lookup, the parsed `street_number` /
`street_name` / `street_suffix` family for tightly-parsed lookups, the
`street_address` + `city` + `state` family for split lookups, or
`fips` + `apn` for parcel-number lookups. All requests are HTTP GET.
tags:
- Property
parameters:
- name: token
in: query
required: true
description: API token issued by Estated / ATTOM.
schema:
type: string
- name: combined_address
in: query
required: false
description: Full address in a single comma-separated string (street, city, state, zip).
schema:
type: string
- name: street_address
in: query
required: false
description: Full street address line including number, name, and suffix.
schema:
type: string
- name: street_number
in: query
required: false
schema:
type: string
- name: street_pre_direction
in: query
required: false
schema:
type: string
- name: street_name
in: query
required: false
schema:
type: string
- name: street_suffix
in: query
required: false
schema:
type: string
- name: street_post_direction
in: query
required: false
schema:
type: string
- name: unit_type
in: query
required: false
schema:
type: string
- name: unit_number
in: query
required: false
schema:
type: string
- name: city
in: query
required: false
schema:
type: string
- name: state
in: query
required: false
schema:
type: string
- name: zip_code
in: query
required: false
schema:
type: string
- name: fips
in: query
required: false
description: 5-digit FIPS county code (paired with `apn`).
schema:
type: string
- name: apn
in: query
required: false
description: Assessor parcel number (paired with `fips`).
schema:
type: string
responses:
'200':
description: A property envelope containing data, metadata, and warnings.
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyEnvelope'
'400':
description: Request error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
'401':
description: Authorization error (invalid, deactivated, or exhausted token).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
'429':
description: Throttled due to high request rate.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
components:
securitySchemes:
tokenQuery:
type: apiKey
in: query
name: token
schemas:
PropertyEnvelope:
type: object
properties:
data:
$ref: '#/components/schemas/Property'
metadata:
$ref: '#/components/schemas/ResponseMetadata'
warnings:
type: array
items:
$ref: '#/components/schemas/Warning'
ErrorEnvelope:
type: object
properties:
data:
nullable: true
metadata:
$ref: '#/components/schemas/ResponseMetadata'
warnings:
type: array
items:
$ref: '#/components/schemas/Warning'
error:
type: object
properties:
code:
type: string
description: Estated error code (APE01, ISE01-09, EE01, RE01-RE06, AE02-AE04).
message:
type: string
ResponseMetadata:
type: object
properties:
attom_id:
type: integer
description: Unique ATTOM ID associated with the property.
publishing_date:
type: string
format: date
description: Date the assessor roll data was published.
Warning:
type: object
properties:
code:
type: string
description: Warning code (PW01, PW02, APW01, APW02).
message:
type: string
Property:
type: object
properties:
metadata:
$ref: '#/components/schemas/ResponseMetadata'
address:
$ref: '#/components/schemas/Address'
parcel:
$ref: '#/components/schemas/Parcel'
structure:
$ref: '#/components/schemas/Structure'
taxes:
type: array
items:
$ref: '#/components/schemas/Tax'
assessments:
type: array
items:
$ref: '#/components/schemas/Assessment'
market_assessments:
type: array
items:
$ref: '#/components/schemas/Assessment'
valuation:
$ref: '#/components/schemas/Valuation'
owner:
$ref: '#/components/schemas/Owner'
deeds:
type: array
items:
$ref: '#/components/schemas/Deed'
boundary:
$ref: '#/components/schemas/Boundary'
Address:
type: object
properties:
street_number: { type: string }
street_pre_direction: { type: string }
street_name: { type: string }
street_suffix: { type: string }
street_post_direction: { type: string }
unit_type: { type: string }
unit_number: { type: string }
formatted_street_address: { type: string }
city: { type: string }
state: { type: string }
zip_code: { type: string }
zip_plus_four_code: { type: string }
carrier_code: { type: string }
latitude: { type: number, format: float }
longitude: { type: number, format: float }
geocoding_accuracy: { type: string }
census_tract: { type: string }
Parcel:
type: object
properties:
apn_original: { type: string }
apn_unformatted: { type: string }
apn_previous: { type: string }
fips_code: { type: string }
depth_ft: { type: number, format: float }
frontage_ft: { type: number, format: float }
area_sq_ft: { type: integer }
area_acres: { type: number, format: float }
county_name: { type: string }
county_land_use_code: { type: string }
county_land_use_description: { type: string }
standardized_land_use_category: { type: string }
standardized_land_use_type: { type: string }
location_descriptions:
type: array
items: { type: string }
zoning: { type: string }
building_count: { type: integer }
tax_account_number: { type: string }
legal_description: { type: string }
lot_code: { type: string }
lot_number: { type: string }
subdivision: { type: string }
municipality: { type: string }
section_township_range: { type: string }
Structure:
type: object
properties:
year_built: { type: integer }
effective_year_built: { type: integer }
stories: { type: string }
rooms_count: { type: integer }
beds_count: { type: integer }
baths: { type: number, format: float }
partial_baths_count: { type: integer }
units_count: { type: integer }
parking_type: { type: string }
parking_spaces_count: { type: integer }
pool_type: { type: string }
architecture_type: { type: string }
construction_type: { type: string }
exterior_wall_type: { type: string }
foundation_type: { type: string }
roof_material_type: { type: string }
roof_style_type: { type: string }
heating_type: { type: string }
heating_fuel_type: { type: string }
air_conditioning_type: { type: string }
fireplaces: { type: string }
basement_type: { type: string }
quality: { type: string }
condition: { type: string }
flooring_types:
type: array
items: { type: string }
plumbing_fixtures_count: { type: integer }
interior_wall_type: { type: string }
water_type: { type: string }
sewer_type: { type: string }
total_area_sq_ft: { type: integer }
amenities:
type: array
items: { type: string }
other_improvements:
type: array
items:
$ref: '#/components/schemas/AreaItem'
other_rooms:
type: array
items:
$ref: '#/components/schemas/AreaItem'
other_features:
type: array
items:
$ref: '#/components/schemas/AreaItem'
other_areas:
type: array
items:
$ref: '#/components/schemas/AreaItem'
AreaItem:
type: object
properties:
type: { type: string }
sq_ft: { type: string }
Tax:
type: object
properties:
year: { type: integer }
amount: { type: integer }
exemptions:
type: array
items: { type: string }
rate_code_area: { type: string }
Assessment:
type: object
properties:
year: { type: integer }
land_value: { type: integer }
improvement_value: { type: integer }
total_value: { type: integer }
Valuation:
type: object
properties:
value: { type: integer }
high: { type: integer }
low: { type: integer }
forecast_standard_deviation: { type: integer }
date: { type: string, format: date }
Owner:
type: object
properties:
name: { type: string }
second_name: { type: string, deprecated: true }
formatted_street_address: { type: string }
unit_type: { type: string }
unit_number: { type: string }
city: { type: string }
state: { type: string }
zip_code: { type: string }
zip_plus_four_code: { type: string }
owner_occupied: { type: string }
Deed:
type: object
properties:
document_type: { type: string }
recording_date: { type: string, format: date }
original_contract_date: { type: string, format: date }
deed_book: { type: string }
deed_page: { type: string }
document_id: { type: string }
sale_price: { type: integer }
sale_price_description: { type: string }
transfer_tax: { type: number, format: float }
distressed_sale: { type: boolean }
real_estate_owned: { type: string }
seller_first_name: { type: string }
seller_last_name: { type: string }
seller2_first_name: { type: string }
seller2_last_name: { type: string }
seller_address: { type: string }
seller_unit_number: { type: string }
seller_city: { type: string }
seller_state: { type: string }
seller_zip_code: { type: string }
seller_zip_plus_four_code: { type: string }
buyer_first_name: { type: string }
buyer_last_name: { type: string }
buyer2_first_name: { type: string }
buyer2_last_name: { type: string }
Boundary:
type: object
description: Parcel boundary geometry.
properties:
wkt:
type: string
description: Well-Known Text MultiPolygon representation.
geojson:
type: object
description: GeoJSON MultiPolygon representation of the parcel.
properties:
type:
type: string
example: MultiPolygon
coordinates:
type: array
items:
type: array