ATTOM API Search Parameters
Search Version 1, each of the ATTOM API endpoints has provided multiple options for matching or searching for specific properties or areas.
Single Property Match
All ATTOM API endpoints provide a way to match a specific property based upon an address, assessor parcel number (apn), or a proprietary property identifier.
Address Search
ATTOM API provides two ways to search for a property with a specific address based on the well-known delivery addresses assigned to properties by USPS. See USPS Delivery Address for more details.
1 Line Address
The components that make up a standard delivery address as consolidated into a single parameter called address
https://api.gateway.attomdata.com/propertyapi/v1.0.0/property/basicprofile?address=4529 Winona Court, Denver, CO
2 Line Address
The components that make up a standard delivery address as consolidated into two parameters
- address1: Contains the street address
- address2: Contains the postal city, state, and zip code
https://api.gateway.attomdata.com/propertyapi/v1.0.0/property/basicprofile?address1=4529 Winona Court&address2=Denver, CO
Address Standardization
ATTOM API takes the address provided and passes it to several geocoding services to convert it into a standardized address. This allows anomalies in the way the address has been formatted to be resolved. In many cases, missing data can be filled in to complete the address. e.g. The street address alone can match around 80% of US residential addresses.
If a match is found for an address, the API will return a 200 OK status. The payload will contain the standardized address (including any missing components). If possible, it is suggested that your own data be updated to use the standardized address and/or the ATTOM ID assigned to the property to ensure data can be easily matched in the future.
"address": { "country": "US", "countrySubd": "CO", "line1": "4529 WINONA CT", "line2": "DENVER, CO 80212", "locality": "DENVER", "matchCode": "ExaStr", "oneLine": "4529 WINONA CT, DENVER, CO 80212", "postal1": "80212", "postal2": "2512", "postal3": "C037" },
Unfortunately, ATTOM API is not always able to match an address based on the search parameters provided. If a match cannot be found for an address, the API call will return a 400 Bad Request status. No charge is made if a match cannot be made.
{ "status": { "version": "1.0.0", "code": 1, "msg": "SuccessWithoutResult", "total": 0, "page": 1, "pagesize": 10, "transactionID": "c890671c364bbbe87d67bc80ce92d4de" }, "property": [] }
APN Search
Within each county, the Tax Assessor will assign a unique code known as the Assessor Parcel Number to each property. It is possible to match most property data using a combination of the apn and the fips code associated with the county that issued the apn.
https://api.gateway.attomdata.com/propertyapi/v1.0.0/property/basicprofile?apn=02192-04-018-000&fips=08031
The format used for APN varies from one county to another. In some cases a county may adopt a new numbering system and replace existing apns with a new set of values. The value used for an APN can sometimes contain special characters such as space, hyphen, or semi colons. If the APN provided does not match, ATTOM API will attempt to strip out special characters and look up previous APN values. If possible, it is suggested that your own data be updated to use the current formatted APN and/or the ATTOM ID assigned to the property to ensure data can be easily matched in the future.
"identifier": { "Id": 184713191, "fips": "08031", "apn": "02192-04-018-000", "attomId": 184713191 },
Property Identifier
ATTOM assigned its own proprietary identifier known as ATTOM ID to each property. Once assigned this id does not change, and it is included as part of every record of property data we store. Using ATTOM ID provides the most accurate way of matching a property. If for some reason a property address cannot be matched to an existing record, it is assigned an ATTOM ID of 999999999.
https://api.gateway.attomdata.com/propertyapi/v1.0.0/property/basicprofile?id=184713191
Customers are encouraged to store the ATTOM ID as part of their own property data to ensure data can be quickly and easily matched in the future.
Note: Older versions of ATTOM API used property identifiers other than ATTOM ID. To maintain backward compatibility the search parameter id can be used as an alternate to attomid. Other property identifiers used in older versions of our DLP API include parcelpropertyid (RealtyTrac) and sapropertyid (DataQuick)
Multiple Property Search
Some ATTOM API endpoints (V1 - V4) support the ability to search for multiple properties using additional search parameters.
Note: The maximum number of properties that can be returned by property APIs is 10,000.
Area Search
It is possible to search for properties located in a geographic area defined using a geocode or by doing a radius search
Geocodes
The following options can be used to locate properties within a specific geographic area.
Parameter | Description |
geoid | Deprecated - use geoidv4 |
geoidv4 | ATTOM supports many geographic areas such as census block, census tract, flood zones, neighborhoods, school districts, and schools. Each geographic area is assigned an identifier that uniquely identifies it across all area types, known as geoidv4. The geodiv4s associated with a specific property are provided as part of the data returned for most property endpoints. For more details see Geocodes |
postalcode | Search all properties in the provided zip code |
Radius Search
It is also possible to define a search area as represented by a circle with a defined radius centered on a specific point of the map defined by a latitude and longitude.
Parameter | Description |
latitude | latitude and longitude define the point on the map that is the center of a circle to be used as the search area |
longitude | latitude and longitude define the point on the map that is the center of a circle to be used as the search area |
radius | defines the radius of a circle (in miles) to be used as the search area. |
Property Characteristics Search
Some ATTOM API endpoints (V1 - v4) also support the ability to search for properties based on property characteristics. These are usually used in conjunction with an Area Search to refine the properties to be matched.
Parameter | Type | Description |
bathstotal | Range | The total number of bathrooms (full and partial) |
beds | Range | The total number of bedrooms |
lotsize1 | Range | Lot size specified in acres |
lotsize2 | Range | Lot size specified in square feet |
propertyindicator | Integer | Property Category - see Property Indicator for more details |
propertytype | String | Type of property |
universalbuildingsize | Range | The total floor space of all buildings. The definition can vary depending on the property type. |
yearbuilt | Range | The year in which the first structure was built |
Property Characteristics defined as being a "Range" need to be qualified using one or both a minimum ( min) and maximum (max) value that defines a range of values to be provided. e.g. If I am searching for properties with 3 or more bedrooms, I would use minbeds=3. If I am searching for properties with 6 or fewer bedrooms, I would use maxbeds=6. If I am searching for properties with between 3 to 6 bedrooms, I would use minbeds=3&maxbeds=6. Note: You cannot use the search parameter beds, it must be minbeds and/or maxbeds.
https://api.gateway.attomdata.com/propertyapi/v1.0.0/address?minbathstotal=3&minbeds=4&minlotsize1=0.25&postalcode=92620&propertyindicator=10&minyearbuilt=2010
Data Characteristics Search
ATTOM Cloud is updated daily. There can be occasions when an application needs to identify data that has been added and/or updated after a certain date. To support these types of use cases, some ATTOM API endpoints support the ability to search for properties based on when the data was last maintained. These are usually used in conjunction with an Area Search and/or Property Characteristics to refine the properties to be matched.
Parameter | Type | Description |
addeddate | Date | Date on which the record was added to ATTOM Cloud |
calendardate | Date | Date on which the record was last updated in ATTOM Cloud |
Data characteristics are defined as ranges using the prefix start and end. e.g. If I am searching for all property records that were updated after January 4, 2018, I would use startcalendardate=2018/01/04. If I am searching for all property records that were updated before May 5, 2019, I would use endcalendardate=2019/05/01. If I were If I am searching for all property records that were updated between January 4, 2018 and May 5, 2019, I would use startcalendardate=2018/01/04&endcalendardate=2019/05/01. Note: You cannot use the search parameter calendardate, it must be startcalendardate and/or endcalendardate.
https://api.gateway.attomdata.com/propertyapi/v1.0.0/address?startcalendardate=07/01/2022&endcalendardate= 12/31/2022&postalcode=82009
Transaction Characteristics Search
In addition to property characteristics, there are sometimes use cases in which the properties to be matched are based on them having one or more transactions that match certain criteria.
Parameter | Type | Description |
avmvalue | Range | Property value calculated by ATTOM's property AVM model |
mktttlvalue | Range | Market total value |
saleamt | Range | The transfer price of the last sale |
salesearchdate |
Date | Date the property was sold |
Transaction characteristics that are defined as being ranges use the prefix min and max similar to Property Characteristics. Transaction characteristics that are defined as being dates use the prefix start and end similar to Data Characteristics.
https://api.gateway.attomdata.com/propertyapi/v1.0.0/attomavm/detail?maxavmvalue=2500000&maxbeds=6&minavmvalue=1000000&minbeds=4&minuniversalsize=3000&minyearbuilt=2015&postalcode=92620&propertyindicator=10&orderby=avmvalue+desc
Paging Search Results
When the number of properties being searched for is large, it is possible to control the number returned in a single call using a simple paging scheme. This allows a programmer to control the size of the payload that needs to be processed, as well as control the cost of the call, which is based on the number of properties returned.
Parameter | Description |
page | The page number being requested (default 1) |
pagesize | The maximum number of records contained in a single page (default 10). |
e.g. If a search returns 2,098 properties and the page size has been set to 100, the search will return the results in a total of 21 pages. Records #1 to #100 are returned on the initial call.
Note: The cost of the API call is based on the number of properties returned. Setting the page size allows you to control the maximum cost for a single call.
https://api.gateway.attomdata.com/propertyapi/v1.0.0/address?minbathstotal=3&minbeds=4&postalcode=92620&propertyindicator=10&minyearbuilt=2010&pagesize=100
"status": { "version": "1.0.0", "code": 0, "msg": "SuccessWithResult", "total": 2098, "page": 1, "pagesize": 100, "transactionID": "bbb0a668de0d781a408f71bb9de5d238" },
A subsequent request for page #3 will return records #201 to #300.
https://api.gateway.attomdata.com/propertyapi/v1.0.0/address?minbathstotal=3&minbeds=4&postalcode=92620&propertyindicator=10&minyearbuilt=2010&pagesize=100&page=3
"status": { "version": "1.0.0", "code": 0, "msg": "SuccessWithResult", "total": 2098, "page": 3, "pagesize": 100, "transactionID": "eec908aa6182bcd0a7990b2454f7dbf3" },
Sorting Search Results
When a property search is conducted in which multiple properties are returned, it is possible to control the order in which the results are returned using the orderby parameter. This is especially useful when the results are being returned on multiple pages.
orderby | Description | |
assdttlvalue | Assessed total value | |
avmvalue | AVM value | |
bathroomtotal | Total number of bathrooms (full and partial) | |
beds | Total number of bedrooms | |
calendardate | Date the record was last updated. This is the default for any search other than radius search. | |
distance | Distance from the center of the search area (latitude/longitude). This is the default when a radius search is conducted and is only available if a radius search was conducted. | |
lotsize1 | Lot size in acres | |
lotsize2 | Lot size in square feet | |
propertytype | Property type | |
publisheddate | Date the record was added | |
salesamt | Amount of the last property sale | |
salesearchdate | Last sale date | |
saletransactiondate | Date the sale transaction occurred | |
universalsize | Total building size |
https://api.gateway.attomdata.com/propertyapi/v1.0.0/attomavm/detail?maxavmvalue=2500000&maxbeds=6&minavmvalue=1000000&minbeds=4&minuniversalsize=3000&minyearbuilt=2015&postalcode=92620&propertyindicator=10&orderby=avmvalue
By default, the results are sorted in descending order. The one exception is a radius search, when the sort order is ascending. It is possible to control the sort sequence by adding "+desc" or "+asc" to the end of the orderby parameter
https://api.gateway.attomdata.com/propertyapi/v1.0.0/assessment/snapshot?latitude=39.731234&longitude=-75.581182&radius=1&orderby=distance+desc