Upgrading to Sales Trends V4
Introduction
ATTOM is pleased to announce a series of enhancements to the Sales Trends endpoint making it possible to get sales trends for a lot more use-cases.
- We have expanded the number of geography types supported to include:
- County (CO)
- Macro Neighborhood (N1)
- Neighborhood (N2)
- Postal City (CI); and
- Sub Neighborhood (N3)
- It is now possible to request sales trends for specific property types e.g. SINGLE FAMILY RESIDENTIAL
- It is now possible to request sales trends for specific types of transactions e.g. CONSTRUCTION SALE
New Search Parameters
endquarter
Can be used in conjunction with quarterly intervals to specify the last quarter to be included (01 - 04). This is an alternative to specifying a value for endmonth. A value for endyear should also be provided.
geoIdV4
As with many of our endpoints, the old geocodes (geoid) have been replaced with the new geocodes (geoIdV4). For more details see Geocodes.
propertytype
Can be a list that includes up to three of the following (separated by commas): -
- (blank)
- ALL
- CONDO/TOWNHOME
- COOPERATIVE
- FARM/RANCH
- INDUSTRIAL
- MANUFACTURED
- MISCELLANEOUS
- MULTI (2-4 Units)
- MULTI 5+
- OFFICE
- OTHER
- RETAIL
- SINGLE FAMILY RESIDENCE
- VACANT LAND
If no value is provided for propertytype, the sales statistics returned will be an accumulation of all properties. If the value provided is 'ALL' then the endpoint will return a collection of sales statistics, one for each property type.
Note: It is only possible to select one of propertytytpe or transactiontype in any one request.
startquarter
Can be used in conjunction with quarterly intervals to specify the first quarter to be included (01 - 04). This is an alternative to specifying a value for startmonth. A value for startyear should also be provided.
transactiontype
Can be a list that includes up to three of the following (separated by commas): -
- (blank)
- ALL
- CONSTRUCTION SALE
- FORECLOSURE
- MORTGAGE
- TRANSFER
- SUBDIVISION RELATED TRANSFER
- TIMESHARE TRANSFER
If no value is provided for transfertype, the sales statistics returned will be an accumulation of all properties. If the value provided is 'ALL' then the endpoint will return a collection of sales statistics, one for each transfer type.
Note: It is only possible to select one of propertytytpe or transactiontype in any one request.
Endpoints Affected
The existing version of this endpoint supported geoid as a search parameterdefining the geography to be returned.
Name | Original Endpoint | New Endpoint |
Sales Trend Snapshot | /propertyapi/v1.0.0/salestrend/snapshot | /v4/transaction/salestrends |
Example
The following query could be used to get sales trends for Zip Code 48317 (GeoIdV4: 6828b00047035292dd47fe020e636bb3) with stats being reported quarterly from Q1 2022 to Q4 2022 for property types of SINGLE FAMILY RESIDENCE and Vacant Land.
https://api.gateway.attomdata.com/v4/transaction/salestrend?geoIdV4=da9746929ae4cd076d70f29d7ef12da4&interval=quarterly&startyear=2022&endyear=2022&startquarter=01&endquarter=04&propertytype=SINGLE FAMILY RESIDENCE,Vacant Land
{ "status": { "version": "4", "code": 0, "msg": "SuccessWithResult", "total": 20, "page": 1, "pageSize": 100, "transactionID": "8d9090805d6f499fe27af41f484ea02e" }, "salesTrends": [ { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q1-2018", "end": "Q1-2018" }, "salesTrend": { "homeSaleCount": 109, "avgSalePrice": 223098, "medSalePrice": 200000 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q2-2018", "end": "Q2-2018" }, "salesTrend": { "homeSaleCount": 135, "avgSalePrice": 216334, "medSalePrice": 195000 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q3-2018", "end": "Q3-2018" }, "salesTrend": { "homeSaleCount": 128, "avgSalePrice": 231703, "medSalePrice": 204750 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q4-2018", "end": "Q4-2018" }, "salesTrend": { "homeSaleCount": 101, "avgSalePrice": 211633, "medSalePrice": 176000 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q1-2019", "end": "Q1-2019" }, "salesTrend": { "homeSaleCount": 88, "avgSalePrice": 206005, "medSalePrice": 190500 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q2-2019", "end": "Q2-2019" }, "salesTrend": { "homeSaleCount": 110, "avgSalePrice": 218884, "medSalePrice": 183500 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q3-2019", "end": "Q3-2019" }, "salesTrend": { "homeSaleCount": 141, "avgSalePrice": 229660, "medSalePrice": 215000 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q4-2019", "end": "Q4-2019" }, "salesTrend": { "homeSaleCount": 114, "avgSalePrice": 235878, "medSalePrice": 199900 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q1-2020", "end": "Q1-2020" }, "salesTrend": { "homeSaleCount": 86, "avgSalePrice": 206028, "medSalePrice": 200000 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q2-2020", "end": "Q2-2020" }, "salesTrend": { "homeSaleCount": 58, "avgSalePrice": 197289, "medSalePrice": 185000 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q3-2020", "end": "Q3-2020" }, "salesTrend": { "homeSaleCount": 133, "avgSalePrice": 223461, "medSalePrice": 212000 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q4-2020", "end": "Q4-2020" }, "salesTrend": { "homeSaleCount": 136, "avgSalePrice": 235316, "medSalePrice": 221000 }, "vintage": { "pubDate": "2022-02-12" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q1-2021", "end": "Q1-2021" }, "salesTrend": { "homeSaleCount": 95, "avgSalePrice": 253558, "medSalePrice": 229900 }, "vintage": { "pubDate": "2022-02-10" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q2-2021", "end": "Q2-2021" }, "salesTrend": { "homeSaleCount": 122, "avgSalePrice": 263295, "medSalePrice": 241750 }, "vintage": { "pubDate": "2022-02-10" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q3-2021", "end": "Q3-2021" }, "salesTrend": { "homeSaleCount": 129, "avgSalePrice": 280265, "medSalePrice": 235000 }, "vintage": { "pubDate": "2022-02-10" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q4-2021", "end": "Q4-2021" }, "salesTrend": { "homeSaleCount": 138, "avgSalePrice": 265899, "medSalePrice": 249500 }, "vintage": { "pubDate": "2022-02-10" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q1-2022", "end": "Q1-2022" }, "salesTrend": { "homeSaleCount": 113, "avgSalePrice": 249896, "medSalePrice": 234000 }, "vintage": { "pubDate": "2022-02-10" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q2-2022", "end": "Q2-2022" }, "salesTrend": { "homeSaleCount": 85, "avgSalePrice": 294946, "medSalePrice": 260000 }, "vintage": { "pubDate": "2022-05-08" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q3-2022", "end": "Q3-2022" }, "salesTrend": { "homeSaleCount": 106, "avgSalePrice": 305966, "medSalePrice": 280000 }, "vintage": { "pubDate": "2022-08-07" } }, { "location": { "geoIdV4": "6828b00047035292dd47fe020e636bb3", "geographyName": "48317" }, "dateRange": { "interval": "quarterly", "start": "Q4-2022", "end": "Q4-2022" }, "salesTrend": { "homeSaleCount": 67, "avgSalePrice": 265810, "medSalePrice": 249000 }, "vintage": { "pubDate": "2022-11-07" } } ] }
Migration Process
The following outlines the series of steps necessary to upgrade applications from previous versions of sales trends snapshot endpoint. It is important these changes be made as soon as possible as the older versions are being deprecated. It is likely that the older versions will stop working after June 30, 2023. Please plan accordingly.
- 1
-
Identify calls to Endpoints
Identify all the places in your code in which a call is made to any of the two school endpoints: -
- /propertyapi/v1.0.0/salestrend/snapshot
- 2
-
Identify calls to other endpoints
Identify any other calls to ATTOM API that might be generating geocodes (geoid) that are used in calls to the sales trend endpoint.
- 3
-
Change endpoint path
The endpoint paths should be changed to v4 (or higher) and the endpoint names should be mapped to the new names.
Original Endpoint New Endpoint /propertyapi/v1.0.0/salestrend/snapshot /v4/transaction/salestrends
- 4
-
Change geocodes
Replace the geoid parameter with the new geoIdV4 parameter, using the new geocode values returned from other endpoints.