data and meta. A list adds page, and some lists
add summary.
meta.terms is a one-sentence attribution that points at the API’s terms document. Show it where you show the data.
Terms and attribution carries the terms in full.
Value conventions
- Dates are
YYYY-MM-DDstrings. The data has no timestamps: deeds are dated by day. - Money is whole dollars as an integer. A price is
nullwhen the deed records none. A price is never0to mean unknown. In Texas most off-market deeds carry no price at all. The filters page covers this. - Ids carry a prefix that says what they are:
deal_,prop_,inv_,agt_,wl_(an Investorlift listing),wsr_(a listing company),len_(a lender). The prefix is part of the id. Store the id. Get the name again when you show it, or keep the name only within the cache window. - Coordinates are WGS84 decimal degrees,
latitudeandlongitudeon a record,latandlngin a query. - Distances are miles, durations are days, ratios and scores are 0 to 1.
- Nulls are answers. A null listing block means the market has no listing tables. Zeros mean the API checked the tables and nothing is listed. Each block’s own page says which.
Say where
Four ways, one per request:
If you mix them, the API answers
400 geometry_conflict. If you send none where one is necessary, the API answers
400 geometry_required. lat + lng can go beside a viewport or a place as the reference point for distances, and for
nothing more.
A point outside every loaded market is 422 outside_coverage, not an empty answer. So is a ZIP or a city that no loaded
market’s parcels carry. The body names it in zips_unknown or city. This is the coverage
rule. On Free and Starter the place is one ZIP (Plans and limits).
The response echoes the location in meta.geometry, as it ran. The API fills the defaults: 2 miles on the GET lists,
1 mile around property_id on the parcel search. It resolves a parcel to its centroid. It folds the city to upper case.
The echo shows these values under the keys of the query, so you can repeat a request from its answer.
meta.reference_point stays beside it.
Response headers
Beside the body, every/v1 response carries some useful headers:
The API reference declares each of these under the responses that carry it, so a generated client sees them too.
Every response is JSON but one. With the loans of a lender you can ask for a CSV file instead, from Growth.
The CSV section of that route says how. For every other list,
Give me a spreadsheet shows how to build one from the paged JSON.