new-construction keeps the houses the assessor
dates to the data end’s year or the one before. active-listing keeps the houses whose MLS record is Active.
corporate-owned keeps the houses a company still holds. On a house built last year, that company is nearly always
the builder.
Ask for the listing and valuation blocks and sort by list price. The answer is the builder inventory on the
market around a point. Every quicklist and its predicate.
1. Search around a point
Five miles around a point in Scottsdale, cheapest first:corporate-owned to
not_quicklists, and the list becomes the new builds that no company holds. Those owners are a person, a trust, or
an owner the roll does not classify. filters.owner.kind: ["PERSON"] beside the two quicklists means persons alone:
the new builds a buyer already took title to and listed again. Drop corporate-owned, and you get both.
The filter groups still apply beside the quicklists: filters.building.beds and sqft for the house,
count_only: true for the number alone.
Search parcels has every field.
2. Or start from an address
When the user types an address and does not drop a pin, resolve it first.GET /v1/properties/resolve takes the street line with its ZIP (or
its city) and answers the property_id:
422 ambiguous_address with the units as candidates[]. Pass unit to
pick one. For an address that no parcel carries in that ZIP, the API answers a 404.
Then search around that parcel with location.property_id. radius_miles beside it sets the circle. Without it, the
search stays close to the parcel:
distance_miles from the centre.
3. Read the response
Each row is a parcel search row. These are the fields this list is about:mixed
The list price in whole dollars, and the listing date of the current record. Days on market is
listed_on counted
up to the listing feed’s own as-of date, meta.coverage[].listings_data_end, never up to today. That date is later
than the deed data end: the deeds and the listings arrive in one delivery, each with its own end. The feed ends on
a date, and a house listed the week after it is not here yet.integer
The assessor’s year built.
new-construction keeps the houses whose year is the data end’s year or the one before.
So at a data end in 2026 the list is the 2025 and 2026 builds.mixed
ENTITY is what corporate-owned matched: the builder, or the company that holds its lots, still on title.
held_since is when that owner took the lot, usually well before year_built. This host does not serve
owner.names or owner.mailing: the owner block carries no such keys.object | null
The automated valuation with its range and its
as_of: a dated snapshot, valued at the date meta.dated[] names
for the block. That date can be earlier than the listing. Compare estimated_value with listing.price, and allow
for the months between the two dates. A house the snapshot carries no valuation for has valuation: null.summary.dated_filters stays empty on this request, because nothing filtered or sorted on the snapshot.
meta.dated[] names valuation on any page where a row carries one. A page of houses with no AVM, or a
count_only request, lists nothing. Dated data.What this list is not
- Where
meta.coverage[].parcelcarries a value. The Phoenix and Seattle markets carry the parcel products today. For a point or a parcel in a market without them (Houston), the API answers422 parcels_unavailable.meta.coverage[].parcelis null there, so you can tell in advance (Coverage and freshness). For a point outside every market, the API answers422 outside_coverage. - MLS-listed only.
active-listingreads the MLS record the delivery carries for the parcel. A builder’s inventory sold from the sales office without a listing is not here, and nothing marks it. - A standing house, as the assessor dates it.
year_builtis the county roll’s year on a parcel that exists. A to-be-built plan is not a parcel, and the API does not serve it. A spec home the roll still carries as a lot, with no year built yet, is not in the list until the roll updates. The lots themselves are thevacant-lotquicklist. - A dated valuation. The AVM is a value as of the snapshot date, not the listing date and not today.
- Days on market end at the listing feed’s as-of date (
meta.coverage[].listings_data_end), not at the day you ask.
Partners and staff
On the internal host, a key with thecontact scope can narrow the list to one builder with the owner-name filter.
That filter reads the owner names that host serves:
active-listing and new-construction, it is that builder’s inventory on the market. Beside vacant-lot, it is the
lots the builder holds. The filter is not part of the public document at api.investorlift.com, whose owner group
has no such field. The internal host answers it, under the contact scope.