openapi: 3.1.0
info:
title: ATTOM Property API
description: |
ATTOM Property API delivers comprehensive property intelligence for more than
160 million U.S. properties. Resources include property characteristics, ownership
and mortgage records, assessed value and tax history, sales history, AVM valuations
(current and historical), rental AVM, home equity, school assignments, transportation
noise scoring, pre-foreclosure status, and building permits. Most resources are
offered in both `snapshot` and `detail` packages and accept any of: AttomID,
address (single string), address1 + address2, or geographic radius / bounding-box
parameters.
version: v1.0.0
contact:
name: ATTOM Data Customer Care
email: [email protected]
url: https://api.developer.attomdata.com/
license:
name: ATTOM Data Terms of Use
url: https://www.attomdata.com/terms-of-use/
servers:
- url: https://api.gateway.attomdata.com/propertyapi/v1.0.0
description: ATTOM Property API Production Gateway
security:
- ApiKeyAuth: []
tags:
- name: Property
description: Property characteristics, ownership, mortgage, and address resolution.
- name: Assessment
description: Assessed value, tax liability, and assessment history.
- name: AVM
description: Automated Valuation Model — current AVM, AVM history, and rental AVM.
- name: Sale
description: Sales transactions, sales history, and comparable sales.
- name: All Events
description: Combined assessment, AVM, and sales-transaction events.
- name: Building Permits
description: Building permit records associated with a property.
- name: School
description: School assignments and attendance-zone associations.
- name: Home Equity
description: Estimated home equity calculations.
- name: Pre-Foreclosure
description: Pre-foreclosure status and notice records.
- name: Sales Trends
description: Aggregated sales trends for a geography.
paths:
/property/address:
get:
summary: Search Properties By Address
description: Search properties matching a postal address.
operationId: searchPropertyAddress
tags: [Property]
parameters:
- $ref: '#/components/parameters/AddressQuery'
- $ref: '#/components/parameters/Address1Query'
- $ref: '#/components/parameters/Address2Query'
- $ref: '#/components/parameters/PageQuery'
- $ref: '#/components/parameters/PageSizeQuery'
responses:
'200': { $ref: '#/components/responses/PropertyListResponse' }
'400': { $ref: '#/components/responses/ErrorResponse' }
'401': { $ref: '#/components/responses/ErrorResponse' }
'429': { $ref: '#/components/responses/ErrorResponse' }
/property/snapshot:
get:
summary: Get Property Snapshot
description: Return a summary snapshot of property attributes for the matched property.
operationId: getPropertySnapshot
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
- $ref: '#/components/parameters/Address1Query'
- $ref: '#/components/parameters/Address2Query'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
'400': { $ref: '#/components/responses/ErrorResponse' }
/property/detail:
get:
summary: Get Property Detail
description: Return a detailed property record including building, lot, area, and identifier blocks.
operationId: getPropertyDetail
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
- $ref: '#/components/parameters/Address1Query'
- $ref: '#/components/parameters/Address2Query'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/detailwithschools:
get:
summary: Get Property Detail With Schools
description: Property detail plus assigned schools and school district attributes.
operationId: getPropertyDetailWithSchools
tags: [Property, School]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/detailmortgage:
get:
summary: Get Property Detail With Mortgage
description: Property detail enriched with current and historical mortgage records.
operationId: getPropertyDetailMortgage
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/detailowner:
get:
summary: Get Property Detail With Owner
description: Property detail enriched with owner identity, mailing address, and ownership classification.
operationId: getPropertyDetailOwner
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/detailmortgageowner:
get:
summary: Get Property Detail With Mortgage And Owner
description: Property detail enriched with both mortgage and owner records.
operationId: getPropertyDetailMortgageOwner
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/basicprofile:
get:
summary: Get Property Basic Profile
description: Compact property profile (characteristics, last sale, assessed value).
operationId: getPropertyBasicProfile
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/basichistory:
get:
summary: Get Property Basic History
description: Compact history of sales and assessment events for a property.
operationId: getPropertyBasicHistory
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/expandedprofile:
get:
summary: Get Property Expanded Profile
description: Full expanded property record including characteristics, owner, mortgage, and last sale.
operationId: getPropertyExpandedProfile
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/expandedhistory:
get:
summary: Get Property Expanded History
description: Full historical events for a property (sales, assessments, AVMs).
operationId: getPropertyExpandedHistory
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/buildingpermits:
get:
summary: Get Property Building Permits
description: Building permit records associated with a property.
operationId: getPropertyBuildingPermits
tags: [Building Permits]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/property/id:
get:
summary: Search By Property ID
description: Look up properties by AttomID or other ATTOM-issued identifiers with optional search/sort filters.
operationId: searchPropertyId
tags: [Property]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/PageQuery'
- $ref: '#/components/parameters/PageSizeQuery'
responses:
'200': { $ref: '#/components/responses/PropertyListResponse' }
/transportationnoise:
get:
summary: Get Transportation Noise Score
description: Return road, air, and rail transportation-noise scores for a property.
operationId: getTransportationNoise
tags: [Property]
parameters:
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/enumerations/detail:
get:
summary: Get Enumeration Detail
description: Return ATTOM enumeration metadata (property-use codes, tax-status codes, etc.).
operationId: getEnumerationsDetail
tags: [Property]
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/assessment/snapshot:
get:
summary: Get Assessment Snapshot
description: Compact assessed-value record for a property.
operationId: getAssessmentSnapshot
tags: [Assessment]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/AssessmentResponse' }
/assessment/detail:
get:
summary: Get Assessment Detail
description: Full assessed-value record including tax amount, tax year, market value, and exemption flags.
operationId: getAssessmentDetail
tags: [Assessment]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/AssessmentResponse' }
/assessmenthistory/detail:
get:
summary: Get Assessment History Detail
description: Multi-year history of assessed values and tax amounts for a property.
operationId: getAssessmentHistoryDetail
tags: [Assessment]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/AssessmentResponse' }
/attomavm/detail:
get:
summary: Get ATTOM AVM Detail
description: Return ATTOM Automated Valuation Model (AVM) value, confidence score, and value range.
operationId: getAttomAvmDetail
tags: [AVM]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/AvmResponse' }
/avm/snapshot:
get:
summary: Get AVM Snapshot
description: Compact AVM record for a property.
operationId: getAvmSnapshot
tags: [AVM]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/AvmResponse' }
/avm/detail:
get:
summary: Get AVM Detail
description: Detailed AVM record with confidence band and as-of date.
operationId: getAvmDetail
tags: [AVM]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/AvmResponse' }
/avmhistory/detail:
get:
summary: Get AVM History
description: Historical AVM valuations for a property across multiple as-of dates.
operationId: getAvmHistoryDetail
tags: [AVM]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/AvmResponse' }
/valuation/rentalavm:
get:
summary: Get Rental AVM
description: Estimated monthly rent for a property using ATTOM's rental AVM model.
operationId: getRentalAvm
tags: [AVM]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/AvmResponse' }
/valuation/homeequity:
get:
summary: Get Home Equity Estimate
description: Estimated home equity (AVM minus open loan balances).
operationId: getHomeEquity
tags: [Home Equity]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/AvmResponse' }
/sale/snapshot:
get:
summary: Get Sale Snapshot
description: Most-recent sale event for a property (compact).
operationId: getSaleSnapshot
tags: [Sale]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/SaleResponse' }
/sale/detail:
get:
summary: Get Sale Detail
description: Most-recent sale event with full transaction, deed, and recording attributes.
operationId: getSaleDetail
tags: [Sale]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/SaleResponse' }
/saleshistory/snapshot:
get:
summary: Get Sales History Snapshot
description: Compact list of historical sale events for a property.
operationId: getSalesHistorySnapshot
tags: [Sale]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/SaleResponse' }
/saleshistory/detail:
get:
summary: Get Sales History Detail
description: Detailed list of historical sale events for a property.
operationId: getSalesHistoryDetail
tags: [Sale]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/SaleResponse' }
/salescomparables/address/{street}/{citystatezip}:
get:
summary: Get Sales Comparables
description: Return comparable sales (comps) for a subject property by street and city/state/ZIP.
operationId: getSalesComparables
tags: [Sale]
parameters:
- name: street
in: path
required: true
description: Street component of the subject address.
schema:
type: string
- name: citystatezip
in: path
required: true
description: City, state, and ZIP component of the subject address.
schema:
type: string
responses:
'200': { $ref: '#/components/responses/SaleResponse' }
/transaction/salestrend:
get:
summary: Get Sales Trend
description: Average and median sales prices for the past two years for the requested geography.
operationId: getSalesTrend
tags: [Sales Trends]
parameters:
- name: geoIdV4
in: query
required: true
description: ATTOM v4 geography identifier (state, county, CBSA, ZIP, neighborhood).
schema:
type: string
- name: interval
in: query
required: false
description: Time interval ("Yearly", "Monthly").
schema:
type: string
enum: [Yearly, Monthly]
default: Yearly
responses:
'200': { $ref: '#/components/responses/SaleResponse' }
/allevents/snapshot:
get:
summary: Get All Events Snapshot
description: Combined snapshot of assessment, AVM, and sales events for a property.
operationId: getAllEventsSnapshot
tags: [All Events]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
- $ref: '#/components/parameters/Address1Query'
- $ref: '#/components/parameters/Address2Query'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/allevents/detail:
get:
summary: Get All Events Detail
description: Combined detail of assessment, AVM, and sales events for a property.
operationId: getAllEventsDetail
tags: [All Events]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
- $ref: '#/components/parameters/Address1Query'
- $ref: '#/components/parameters/Address2Query'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/preforeclosure/details:
get:
summary: Get Pre-Foreclosure Details
description: Pre-foreclosure status, notice date, and lender for a property.
operationId: getPreforeclosureDetails
tags: [Pre-Foreclosure]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
/school/snapshot:
get:
summary: Get School Snapshot
description: Schools and school-district attributes associated with a property.
operationId: getSchoolSnapshot
tags: [School]
parameters:
- $ref: '#/components/parameters/AttomIDQuery'
- $ref: '#/components/parameters/AddressQuery'
responses:
'200': { $ref: '#/components/responses/PropertyResponse' }
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: apikey
description: |
ATTOM-issued API key. Obtain a free 30-day trial key at
https://api.developer.attomdata.com/signup. Pass the key in the `apikey`
request header on every call.
parameters:
AttomIDQuery:
name: AttomID
in: query
required: false
description: ATTOM property identifier.
schema:
type: string
example: '145423726'
AddressQuery:
name: address
in: query
required: false
description: Full street address as a single string.
schema:
type: string
example: 4529 Winona Court, Denver, CO 80212
Address1Query:
name: address1
in: query
required: false
description: Street component of the property address.
schema:
type: string
example: 4529 Winona Court
Address2Query:
name: address2
in: query
required: false
description: City, state, and ZIP component of the property address.
schema:
type: string
example: Denver, CO 80212
PageQuery:
name: page
in: query
required: false
description: Page number for paginated result sets.
schema:
type: integer
minimum: 1
default: 1
PageSizeQuery:
name: pagesize
in: query
required: false
description: Records per page.
schema:
type: integer
minimum: 1
maximum: 100
default: 10
schemas:
Status:
type: object
description: ATTOM standard response status block.
properties:
version:
type: string
code:
type: integer
msg:
type: string
total:
type: integer
page:
type: integer
pagesize:
type: integer
Address:
type: object
properties:
country:
type: string
countrySubd:
type: string
line1:
type: string
line2:
type: string
locality:
type: string
matchCode:
type: string
oneLine:
type: string
postal1:
type: string
postal2:
type: string
postal3:
type: string
Location:
type: object
properties:
accuracy:
type: string
latitude:
type: string
longitude:
type: string
distance:
type: number
geoid:
type: string
geoIdV4:
type: object
Identifier:
type: object
properties:
Id:
type: integer
fips:
type: string
apn:
type: string
attomId:
type: integer
Lot:
type: object
properties:
lotnum:
type: string
lotsize1:
type: number
lotsize2:
type: number
zoningType:
type: string
Building:
type: object
properties:
size:
type: object
properties:
bldgsize:
type: integer
grosssize:
type: integer
livingsize:
type: integer
universalsize:
type: integer
rooms:
type: object
properties:
bathstotal:
type: number
beds:
type: integer
roomsTotal:
type: integer
construction:
type: object
properties:
condition:
type: string
constructionType:
type: string
wallType:
type: string
roofCover:
type: string
summary:
type: object
properties:
yearbuilteffective:
type: integer
yearbuilt:
type: integer
Summary:
type: object
properties:
absenteeInd:
type: string
propclass:
type: string
propsubtype:
type: string
proptype:
type: string
yearbuilt:
type: integer
propLandUse:
type: string
Owner:
type: object
properties:
corporateindicator:
type: string
owner1:
type: object
properties:
firstnameandmi:
type: string
lastname:
type: string
owner2:
type: object
properties:
firstnameandmi:
type: string
lastname:
type: string
mailingaddressoneline:
type: string
Mortgage:
type: object
properties:
FirstConcurrent:
type: object
properties:
amount:
type: integer
date:
type: string
lender:
type: object
properties:
fullName:
type: string
interestRate:
type: number
term:
type: string
trustDeedDocumentNumber:
type: string
Vintage:
type: object
properties:
lastModified:
type: string
pubDate:
type: string
Property:
type: object
properties:
identifier:
$ref: '#/components/schemas/Identifier'
lot:
$ref: '#/components/schemas/Lot'
area:
type: object
address:
$ref: '#/components/schemas/Address'
location:
$ref: '#/components/schemas/Location'
summary:
$ref: '#/components/schemas/Summary'
building:
$ref: '#/components/schemas/Building'
owner:
$ref: '#/components/schemas/Owner'
mortgage:
$ref: '#/components/schemas/Mortgage'
vintage:
$ref: '#/components/schemas/Vintage'
Assessment:
type: object
properties:
appraised:
type: object
properties:
apprimprvalue:
type: integer
apprlandvalue:
type: integer
apprttlvalue:
type: integer
assessed:
type: object
properties:
assdimprvalue:
type: integer
assdlandvalue:
type: integer
assdttlvalue:
type: integer
market:
type: object
properties:
mktimprvalue:
type: integer
mktlandvalue:
type: integer
mktttlvalue:
type: integer
tax:
type: object
properties:
taxamt:
type: number
taxpereszidx:
type: number
taxyear:
type: integer
owner:
$ref: '#/components/schemas/Owner'
AVM:
type: object
properties:
amount:
type: object
properties:
scr:
type: integer
value:
type: integer
high:
type: integer
low:
type: integer
valueRange:
type: integer
confidence:
type: string
eventDate:
type: string
AVMModel:
type: object
properties:
FSDscore:
type: integer
Sale:
type: object
properties:
amount:
type: object
properties:
saleamt:
type: integer
salecode:
type: string
saledisclosuretype:
type: integer
saledocnum:
type: string
saledocType:
type: string
saletranstype:
type: string
calculation:
type: object
properties:
pricepersizeunit:
type: number
salesearchdate:
type: string
saleTransDate:
type: string
PropertyEnvelope:
type: object
properties:
status:
$ref: '#/components/schemas/Status'
property:
type: array
items:
$ref: '#/components/schemas/Property'
PropertyListEnvelope:
type: object
properties:
status:
$ref: '#/components/schemas/Status'
property:
type: array
items:
$ref: '#/components/schemas/Property'
AssessmentEnvelope:
type: object
properties:
status:
$ref: '#/components/schemas/Status'
property:
type: array
items:
type: object
properties:
identifier:
$ref: '#/components/schemas/Identifier'
address:
$ref: '#/components/schemas/Address'
assessment:
$ref: '#/components/schemas/Assessment'
AvmEnvelope:
type: object
properties:
status:
$ref: '#/components/schemas/Status'
property:
type: array
items:
type: object
properties:
identifier:
$ref: '#/components/schemas/Identifier'
address:
$ref: '#/components/schemas/Address'
avm:
$ref: '#/components/schemas/AVM'
SaleEnvelope:
type: object
properties:
status:
$ref: '#/components/schemas/Status'
property:
type: array
items:
type: object
properties:
identifier:
$ref: '#/components/schemas/Identifier'
address:
$ref: '#/components/schemas/Address'
sale:
$ref: '#/components/schemas/Sale'
Error:
type: object
properties:
Response:
type: object
properties:
status:
$ref: '#/components/schemas/Status'
responses:
PropertyResponse:
description: Property record envelope.
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyEnvelope'
PropertyListResponse:
description: Paginated list of property records.
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyListEnvelope'
AssessmentResponse:
description: Assessment envelope.
content:
application/json:
schema:
$ref: '#/components/schemas/AssessmentEnvelope'
AvmResponse:
description: AVM envelope.
content:
application/json:
schema:
$ref: '#/components/schemas/AvmEnvelope'
SaleResponse:
description: Sale envelope.
content:
application/json:
schema:
$ref: '#/components/schemas/SaleEnvelope'
ErrorResponse:
description: ATTOM error envelope.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'