- a point:
lat+lngwithradius_miles - a viewport:
bbox=west,south,east,north - a parcel:
property_id, withradius_miles - a place, on every list but
/v1/buyers/match: azipor acity
zip takes a comma list or a repeated key of 5-digit ZIPs. city takes the parcel’s postal city as the county records
it, in any case. Send one form per request.
lat + lng can also go beside a viewport or a place. Then they are the reference point for distance_miles and
sort=distance. A place with no point takes the list’s default order. On Free and Starter the place is one ZIP
(Plans and limits). For a ZIP or a city that no loaded market’s parcels carry, the API
answers 422 outside_coverage (Coverage).
Lists take commas (
kind=flip,hold) or repeated keys (kind=flip&kind=hold). For a misspelled parameter the API
answers a 400 that names it, so a typo never returns everything without an error. The three auction filters answer
422 auction_unavailable in a market whose registry predates the counts. meta.coverage[].auction_counted is false
there. Drop the parameter to list every row.
The two lender filters read the lender registry’s borrower match. financed_by matches any loan the registry ties to
the investor. uses_private_lender matches a loan in the 24 months to the registry’s slice date from three kinds of
lender. The lender is hard money by name or behaviour, an investor lender by behaviour, or classed INDIVIDUAL or
PRIVATE. Both answer 422 lenders_unavailable in a market without a published registry or borrower match. The match
sees about one loan in five, so both are floors, never a cash test.
Texas markets. Texas is a non-disclosure state: most off-market deeds carry no price. So on a Houston deal
bought_price is usually null while the MLS resale’s sold_price is known, and gross_profit and spread_ratio are
null. price_quality says which prices the row has: SELL_ONLY, BOTH, BUY_ONLY or NONE. The first is the normal
shape of a Texas flip bought off-market and sold through the MLS. A price is never 0.
The API handles a null purchase price in these ways:
price_min/price_maxcomparebought_price, so either filter drops null-priced deals unless you addinclude_unpriced=true.sort=price_descandprice_ascput null-priced rows last in both directions.median_bought_price,total_volumeandin_radius.volumeuse priced rows only, andn_unpricedcounts the rows left out.median_gross_profituses the rows where both prices are known.
/v1/buyers/match the price_fit factor reads the investor’s band of priced purchases. So for many Texas investors
it is absent, and the other factors share its weight. For an investor with fewer than 3 priced purchases, the API
halves it. resale_fit is the exit-price counterpart. It compares subject_arv with the median resale price of the
investor’s flips, which Texas does record. It carries weight 0 by default, so set w_resale_fit= to score it.
The Houston market is Harris County. meta.coverage[] says so: universe_kind: "county", counties[] names Harris,
and n_parcels gives the parcel count. Every investor count, price band, scale tier and confidence there covers the
county only. The data does not see activity in the neighbouring counties. The point tolerance of the market is 2
miles.
holding_kind is RENTAL_SIGNAL in every market on a holding whose short-term rental licence is a business use
attributed to the owner. The short_term_rental block on the row says so. Texas has no rental registry. So there the
same value also marks an absentee owner with no homestead exemption on the county roll or a rental listing.
RENTAL_REGISTERED still takes precedence where the county registry has the parcel.