curl --request GET \
--url https://api.investorlift.com/v1/buyers/match \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.investorlift.com/v1/buyers/match', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.investorlift.com/v1/buyers/match"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"investor": {
"id": "inv_70f5dd32e592",
"market": "phx",
"name": "SALT RIVER EQUITY LLC",
"display_name": "SALT RIVER EQUITY LLC",
"state": "AZ",
"kind": "FLIPPER",
"confidence": "STRONG",
"scale": "large",
"institutional": false,
"is_public": false,
"last_bought_on": "2026-08-06",
"n_deals": 1581,
"buyer_status": "registered",
"kinds": [
"FLIPPER",
"BUILDER",
"WHOLESALER",
"LANDLORD"
],
"days_since_last_purchase": 6,
"n_purchase_events_12m": 99,
"n_purchase_events_24m": 180,
"n_flips": 130,
"n_wholesales": 1206,
"n_holds": 97,
"n_long_holds": 33,
"n_bought_from_wholesaler_5y": 41,
"price_band": {
"window": "5y",
"p25": 235000,
"p50": 325000,
"p75": 442875,
"n_priced_purchases": 642
},
"p50_flip_sold_price": 347500,
"segment_mix": {
"sfr": 0.854,
"condo_th": 0.094,
"other": 0.052
},
"has_person_member": true,
"has_home_address": true,
"has_suite_address": true,
"member_names": [
"SALT RIVER EQUITY LLC",
"MMAR HOLDINGS LLC",
"ML SQUARED REAL ESTATE INVESTMENT LLC",
"SICK HOMES LLC",
"LLC SALT RIVER EQUITY",
"THERESA ORTIZ TRUST"
],
"operator_id": "inv_70f5dd32e592",
"n_operator_members": 6,
"auction": {
"n_auction_buys": 0,
"n_auction_buys_24m": 0,
"last_auction_buy_on": null,
"is_active_auction_buyer": false,
"auction_resale_share": null,
"n_reo_buys": 11,
"n_reo_buys_24m": 3,
"last_reo_buy_on": "2026-06-30",
"is_active_reo_buyer": true
}
},
"in_radius": {
"n_events": 91,
"n_purchase_events": 86,
"n_parcels": 91,
"n_held_parcels": 4,
"n_flips": 4,
"n_holds": 4,
"n_long_holds": 3,
"volume": 36531443,
"last_bought_on": "2026-06-11",
"last_deal_on": "2026-06-11",
"nearest_distance_miles": 0.2,
"median_bought_price": 337000,
"n_unpriced": 0,
"n_undated": 0
},
"score": 0.9901,
"gate": 1,
"base_score": 0.9901,
"activity_multiplier": 1,
"reasons": [
{
"factor": "proximity",
"weight": 0.3,
"value": 0.9995,
"detail": "86 purchases (91 parcels) within 2 mi, nearest 0.20 mi"
},
{
"factor": "recency",
"weight": 0.25,
"value": 0.9902,
"detail": "last bought 6 days before the data's end date (2026-08-12); 180 purchase events in 24 months"
},
{
"factor": "price_fit",
"weight": 0.2,
"value": 1,
"detail": "$250k sits inside their 5-year band $235k-$443k (642 priced purchases)"
},
{
"factor": "strategy",
"weight": 0.1,
"value": 1,
"detail": "FLIPPER (STRONG); subject is MAJOR_REHAB"
},
{
"factor": "segment",
"weight": 0.05,
"value": 0.854,
"detail": "85% of their deals are SFR"
},
{
"factor": "wholesale_buyer",
"weight": 0.1,
"value": 1,
"detail": "bought 41 wholesale contracts since 2021, last 2026-03"
}
],
"sample_deals": [
{
"id": "deal_0d12db603fd2fbf20a5524060c588a6f",
"kind": "wholesale",
"address_short": "2840 N 74th Pl",
"latitude": 33.479621,
"longitude": -111.92165,
"bought_on": "2019-08-07",
"bought_price": 337000,
"sold_on": "2019-08-08",
"sold_price": 357500,
"gross_profit": 20500,
"distance_miles": 0.2,
"bought_from_wholesaler": false,
"bought_distressed": false,
"bought_auction_kind": null
},
{
"id": "deal_6ab665cf87971af3b20d75d5ee6061d6",
"kind": "wholesale",
"address_short": "7232 E Virginia Ave",
"latitude": 33.477346,
"longitude": -111.924674,
"bought_on": "2018-08-20",
"bought_price": 330000,
"sold_on": "2018-08-24",
"sold_price": 349900,
"gross_profit": 19900,
"distance_miles": 0.25,
"bought_from_wholesaler": false,
"bought_distressed": false,
"bought_auction_kind": null
}
],
"buyer_signal": {
"operator_id": "inv_70f5dd32e592",
"n_operator_members": 6,
"operator_member_ids": [
"inv_0dccd79162e9",
"inv_178f7fd9aae5",
"inv_50c0fb39bd5e",
"inv_57a71d3e5b88",
"inv_70f5dd32e592",
"inv_712425783c9f"
],
"is_anchor": true,
"merge_confidence": "MERGED_STRONG",
"activity_p_180": 0.937516,
"activity_p_365": 0.965902,
"cell_n": 1599,
"activity_model": "CYCLE_v1",
"cycle_state": "FRESH_CASH",
"capital_freed_60d": true,
"days_since_last_purchase": 6,
"days_since_last_resale": 7,
"open_inventory": 88,
"n_purchases_36m": 373,
"median_gap_days": 3,
"share_within_30d_of_resale": 0.9991,
"data_end": "2026-08-12"
},
"listings": {
"n_active": 8,
"n_pending": 0,
"n_listed": 8,
"n_listed_undated": 0,
"n_holdings_dated": 97,
"n_holdings_undated": 0,
"median_list_price": 527500,
"min_list_price": 239900,
"max_list_price": 754900,
"last_listed_on": "2026-08-23",
"n_listed_12m": 27,
"listings_data_end": "2026-08-31"
},
"wholesale_purchases": {
"n": 6,
"n_12m": 0,
"n_24m": 3,
"n_5y": 6,
"n_probable": 4,
"last_on": "2025-04-30",
"n_wholesalers": 4,
"top_wholesalers": [
{
"id": "wsr_a7c0d7da9bc7",
"name": "National Property Superstore",
"n": 2
},
{
"id": "wsr_b847c1c64247",
"name": "Freedom Ventures",
"n": 2
},
{
"id": "wsr_4a4468db0919",
"name": "TTP AZ, LLC",
"n": 1
}
],
"n_double_closed": 1,
"median_asking_price": 309950,
"data_end": "2026-08-12"
},
"str": null
},
{
"investor": {
"id": "inv_a61331a35b68",
"market": "phx",
"name": "BLACK CANYON EQUITY LLC",
"display_name": "BLACK CANYON EQUITY LLC",
"state": "AZ",
"kind": "FLIPPER",
"confidence": "STRONG",
"scale": "large",
"institutional": false,
"is_public": false,
"last_bought_on": "2026-07-30",
"n_deals": 1354,
"buyer_status": "registered",
"kinds": [
"FLIPPER",
"BUILDER",
"WHOLESALER",
"LANDLORD"
],
"days_since_last_purchase": 13,
"n_purchase_events_12m": 70,
"n_purchase_events_24m": 125,
"n_flips": 126,
"n_wholesales": 881,
"n_holds": 154,
"n_long_holds": 83,
"n_bought_from_wholesaler_5y": 140,
"price_band": {
"window": "5y",
"p25": 270000,
"p50": 345000,
"p75": 450000,
"n_priced_purchases": 926
},
"p50_flip_sold_price": 471500,
"segment_mix": {
"sfr": 0.832,
"condo_th": 0.123,
"other": 0.044
},
"has_person_member": true,
"has_home_address": true,
"has_suite_address": true,
"member_names": [
"BLACK CANYON EQUITY LLC",
"BAF 3 LLC",
"OHANA43 LLC",
"SVH ENTERPRISES LLC",
"LLC BLACK CANYON EQUITY",
"BLACK CANYON LLC"
],
"operator_id": "inv_a61331a35b68",
"n_operator_members": 12,
"auction": {
"n_auction_buys": 1,
"n_auction_buys_24m": 0,
"last_auction_buy_on": "2019-01-03",
"is_active_auction_buyer": false,
"auction_resale_share": null,
"n_reo_buys": 2,
"n_reo_buys_24m": 1,
"last_reo_buy_on": "2026-02-18",
"is_active_reo_buyer": true
}
},
"in_radius": {
"n_events": 123,
"n_purchase_events": 112,
"n_parcels": 117,
"n_held_parcels": 7,
"n_flips": 16,
"n_holds": 7,
"n_long_holds": 9,
"volume": 55249200,
"last_bought_on": "2026-07-20",
"last_deal_on": "2026-07-23",
"nearest_distance_miles": 0.16,
"median_bought_price": 453000,
"n_unpriced": 0,
"n_undated": 0
},
"score": 0.982,
"gate": 1,
"base_score": 0.982,
"activity_multiplier": 1,
"reasons": [
{
"factor": "proximity",
"weight": 0.3,
"value": 1,
"detail": "112 purchases (117 parcels) within 2 mi, nearest 0.16 mi"
},
{
"factor": "recency",
"weight": 0.25,
"value": 0.979,
"detail": "last bought 13 days before the data's end date (2026-08-12); 125 purchase events in 24 months"
},
{
"factor": "price_fit",
"weight": 0.2,
"value": 0.9783,
"detail": "$250k is below their 5-year band $270k-$450k (926 priced purchases)"
},
{
"factor": "strategy",
"weight": 0.1,
"value": 1,
"detail": "FLIPPER (STRONG); subject is MAJOR_REHAB"
},
{
"factor": "segment",
"weight": 0.05,
"value": 0.832,
"detail": "83% of their deals are SFR"
},
{
"factor": "wholesale_buyer",
"weight": 0.1,
"value": 1,
"detail": "bought 140 wholesale contracts since 2021, last 2026-07"
}
],
"sample_deals": [
{
"id": "deal_9f8cc43ff573113c256bb52279230924",
"kind": "long_hold",
"address_short": "2615 N 73rd Pl",
"latitude": 33.477329,
"longitude": -111.923155,
"bought_on": "2022-02-14",
"bought_price": 540000,
"sold_on": "2023-05-31",
"sold_price": 985000,
"gross_profit": 445000,
"distance_miles": 0.16,
"bought_from_wholesaler": true,
"bought_distressed": false,
"bought_auction_kind": null
},
{
"id": "deal_47a476cc378e6a763a8e393e5b6671d8",
"kind": "long_hold",
"address_short": "2539 N Miller Rd",
"latitude": 33.47629,
"longitude": -111.916233,
"bought_on": "2023-03-20",
"bought_price": 500000,
"sold_on": "2024-08-07",
"sold_price": 705000,
"gross_profit": 205000,
"distance_miles": 0.24,
"bought_from_wholesaler": false,
"bought_distressed": false,
"bought_auction_kind": null
}
],
"buyer_signal": {
"operator_id": "inv_a61331a35b68",
"n_operator_members": 12,
"operator_member_ids": [
"inv_0dd5a869408e",
"inv_3d5d38784610",
"inv_485a7f48c46c",
"inv_4d70fe04c768",
"inv_5d77474fe9f4",
"inv_6740053846a1",
"inv_698381652192",
"inv_6aa6e7ca9558",
"inv_a61331a35b68",
"inv_a8ed7cb4612d",
"inv_cc1d95252d89",
"inv_d8abe8e7314e"
],
"is_anchor": true,
"merge_confidence": "MERGED_STRONG",
"activity_p_180": 0.937516,
"activity_p_365": 0.965902,
"cell_n": 1599,
"activity_model": "CYCLE_v1",
"cycle_state": "FRESH_CASH",
"capital_freed_60d": true,
"days_since_last_purchase": 13,
"days_since_last_resale": 8,
"open_inventory": 201,
"n_purchases_36m": 223,
"median_gap_days": 2,
"share_within_30d_of_resale": 0.9309,
"data_end": "2026-08-12"
},
"listings": {
"n_active": 7,
"n_pending": 0,
"n_listed": 7,
"n_listed_undated": 0,
"n_holdings_dated": 154,
"n_holdings_undated": 0,
"median_list_price": 359900,
"min_list_price": 335000,
"max_list_price": 399900,
"last_listed_on": "2026-08-08",
"n_listed_12m": 25,
"listings_data_end": "2026-08-31"
},
"wholesale_purchases": {
"n": 12,
"n_12m": 3,
"n_24m": 6,
"n_5y": 11,
"n_probable": 7,
"last_on": "2025-11-26",
"n_wholesalers": 11,
"top_wholesalers": [
{
"id": "wsr_7b407f79e351",
"name": "KeyGlee",
"n": 2
},
{
"id": "wsr_37e2a3dcdf4c",
"name": "Home Team Investors",
"n": 1
},
{
"id": "wsr_435f4f5439c2",
"name": "EZAZ Homes",
"n": 1
}
],
"n_double_closed": 4,
"median_asking_price": 394245,
"data_end": "2026-08-12"
},
"str": null
},
{
"investor": {
"id": "inv_4a8213dc5193",
"market": "phx",
"name": "WHITE FIG HOMES JV LLC",
"display_name": "WHITE FIG HOMES JV LLC",
"state": "AZ",
"kind": "LANDLORD",
"confidence": "STRONG",
"scale": "large",
"institutional": false,
"is_public": false,
"last_bought_on": "2026-08-07",
"n_deals": 1099,
"buyer_status": "registered",
"kinds": [
"LANDLORD",
"FLIPPER",
"BUILDER",
"WHOLESALER"
],
"days_since_last_purchase": 5,
"n_purchase_events_12m": 99,
"n_purchase_events_24m": 206,
"n_flips": 804,
"n_wholesales": 67,
"n_holds": 146,
"n_long_holds": 32,
"n_bought_from_wholesaler_5y": 56,
"price_band": {
"window": "5y",
"p25": 226000,
"p50": 283000,
"p75": 365000,
"n_priced_purchases": 577
},
"p50_flip_sold_price": 365000,
"segment_mix": {
"sfr": 0.845,
"condo_th": 0.119,
"other": 0.035
},
"has_person_member": true,
"has_home_address": true,
"has_suite_address": true,
"member_names": [
"WHITE FIG HOMES JV LLC",
"WHITE FIG HOMES LLC",
"BENE HOLDINGS LLC",
"MARINA INVESTMENTS LLC",
"WF3 LLC",
"NEB PROPERTIES LLC"
],
"operator_id": "inv_4a8213dc5193",
"n_operator_members": 9,
"auction": {
"n_auction_buys": 0,
"n_auction_buys_24m": 0,
"last_auction_buy_on": null,
"is_active_auction_buyer": false,
"auction_resale_share": null,
"n_reo_buys": 2,
"n_reo_buys_24m": 0,
"last_reo_buy_on": "2016-01-19",
"is_active_reo_buyer": false
}
},
"in_radius": {
"n_events": 31,
"n_purchase_events": 28,
"n_parcels": 31,
"n_held_parcels": 8,
"n_flips": 13,
"n_holds": 8,
"n_long_holds": 3,
"volume": 8914650,
"last_bought_on": "2025-08-11",
"last_deal_on": "2026-02-10",
"nearest_distance_miles": 0.17,
"median_bought_price": 293000,
"n_unpriced": 1,
"n_undated": 0
},
"score": 0.9525,
"gate": 1,
"base_score": 0.9525,
"activity_multiplier": 1,
"reasons": [
{
"factor": "proximity",
"weight": 0.3,
"value": 0.8744,
"detail": "28 purchases (31 parcels) within 2 mi, nearest 0.17 mi"
},
{
"factor": "recency",
"weight": 0.25,
"value": 0.9918,
"detail": "last bought 5 days before the data's end date (2026-08-12); 206 purchase events in 24 months"
},
{
"factor": "price_fit",
"weight": 0.2,
"value": 1,
"detail": "$250k sits inside their 5-year band $226k-$365k (577 priced purchases)"
},
{
"factor": "strategy",
"weight": 0.1,
"value": 1,
"detail": "FLIPPER (STRONG); subject is MAJOR_REHAB"
},
{
"factor": "segment",
"weight": 0.05,
"value": 0.845,
"detail": "85% of their deals are SFR"
},
{
"factor": "wholesale_buyer",
"weight": 0.1,
"value": 1,
"detail": "bought 56 wholesale contracts since 2021, last 2026-07"
}
],
"sample_deals": [
{
"id": "deal_061642c8e4360c1974211049d19516e4",
"kind": "hold",
"address_short": "7312 E Wilshire Dr",
"latitude": 33.476506,
"longitude": -111.923264,
"bought_on": "2016-05-12",
"bought_price": 235000,
"sold_on": null,
"sold_price": null,
"gross_profit": null,
"distance_miles": 0.17,
"bought_from_wholesaler": false,
"bought_distressed": false,
"bought_auction_kind": null
},
{
"id": "deal_30127834d445faab36b4f32b243b600b",
"kind": "hold",
"address_short": "2245 N 72nd Pl",
"latitude": 33.472551,
"longitude": -111.924486,
"bought_on": "2019-02-28",
"bought_price": 354900,
"sold_on": null,
"sold_price": null,
"gross_profit": null,
"distance_miles": 0.38,
"bought_from_wholesaler": true,
"bought_distressed": false,
"bought_auction_kind": null
}
],
"buyer_signal": {
"operator_id": "inv_4a8213dc5193",
"n_operator_members": 9,
"operator_member_ids": [
"inv_1629e9057de3",
"inv_20bf030f2d84",
"inv_22ae900021c2",
"inv_2e162d00a074",
"inv_3adb82477f3f",
"inv_4a8213dc5193",
"inv_684790efabe8",
"inv_888becfdd422",
"inv_8aae0f1c5460"
],
"is_anchor": true,
"merge_confidence": "MERGED_STRONG",
"activity_p_180": 0.937516,
"activity_p_365": 0.965902,
"cell_n": 1599,
"activity_model": "CYCLE_v1",
"cycle_state": "FRESH_CASH",
"capital_freed_60d": true,
"days_since_last_purchase": 5,
"days_since_last_resale": 16,
"open_inventory": 134,
"n_purchases_36m": 556,
"median_gap_days": 3,
"share_within_30d_of_resale": 0.989,
"data_end": "2026-08-12"
},
"listings": {
"n_active": 16,
"n_pending": 5,
"n_listed": 21,
"n_listed_undated": 0,
"n_holdings_dated": 146,
"n_holdings_undated": 0,
"median_list_price": 469900,
"min_list_price": 234900,
"max_list_price": 995000,
"last_listed_on": "2026-08-27",
"n_listed_12m": 47,
"listings_data_end": "2026-08-31"
},
"wholesale_purchases": {
"n": 60,
"n_12m": 7,
"n_24m": 34,
"n_5y": 60,
"n_probable": 30,
"last_on": "2026-07-28",
"n_wholesalers": 17,
"top_wholesalers": [
{
"id": "wsr_cf9dfee7cc0a",
"name": "Andrew The Home Buyer LLC",
"n": 15
},
{
"id": "wsr_b847c1c64247",
"name": "Freedom Ventures",
"n": 8
},
{
"id": "wsr_a7c0d7da9bc7",
"name": "National Property Superstore",
"n": 7
}
],
"n_double_closed": 2,
"median_asking_price": 325700,
"data_end": "2026-08-12"
},
"str": null
}
],
"page": {
"next_cursor": "eyJ2IjoxLCJydW4iOiIxNzg4NTIxODM0IiwicSI6ImJiNTJlNjZmNjRkMzliYmI3YTRmOThmOGRlMDViM2I0MWRiODVjOTExNDllZTBkYjVmMTc3NTY4MTA5ZDQ2OGQiLCJrIjpbMC45NTI1MzMzNDc1NjIzNzA3LCJpbnZfNGE4MjEzZGM1MTkzIl19",
"limit": 3,
"returned": 3
},
"meta": {
"generated_at": "2026-09-04T12:00:00.000Z",
"weights": {
"proximity": 0.3,
"recency": 0.25,
"price_fit": 0.2,
"strategy": 0.1,
"segment": 0.05,
"wholesale_buyer": 0.1,
"resale_fit": 0
},
"reference_point": {
"lat": 33.476917,
"lng": -111.920385
},
"geometry": {
"kind": "radius",
"lat": 33.476917,
"lng": -111.920385,
"radius_miles": 2,
"bbox": null,
"property_id": null,
"zip": null,
"city": null
},
"coverage": [
{
"market": "phx",
"state": "AZ",
"counties": [
{
"fips": "04013",
"name": "Maricopa",
"data_end": "2026-08-12"
},
{
"fips": "04021",
"name": "Pinal",
"data_end": "2026-08-06"
}
],
"bbox": [
-113.332773,
32.46915,
-110.455491,
33.999503
],
"data_end": "2026-08-12",
"build_run_id": 1,
"registry_run": 8,
"registry_version": "v4-metro-review-fixes",
"dataset_version": 1788521834,
"loaded_at": "2026-09-04T11:37:14.263Z",
"metro_buy_to_resale_ratio": 0.7192,
"universe_kind": "metro",
"universe_zips": null,
"point_tolerance_miles": 20,
"n_parcels": 1836307,
"listings_data_end": "2026-08-31",
"agents_data_end": "2026-08-31",
"wholesale_as_of": "2026-09-09",
"str_as_of": null,
"str": null,
"auction_counted": true,
"parcel_as_of": null,
"address_as_of": null,
"parcel": null,
"lenders": null
}
],
"terms": "Data: Investorlift Data Services. Public-record and MLS listing data licensed through BatchData; municipal short-term rental registries; Investorlift marketplace records. Attribution and data-use terms: https://developers.investorlift.com/guides/terms"
},
"summary": {
"by_buyer_status": {
"registered": 10678,
"unclassified": 208,
"excluded": 65,
"unknown": 7
},
"n_investors_ranked": 5813,
"n_unpriced": 1975,
"n_undated": 27
}
}Rank buyers for a property
The nearby investors that best fit this house, ranked, with the reasons behind each score.
curl --request GET \
--url https://api.investorlift.com/v1/buyers/match \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.investorlift.com/v1/buyers/match', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.investorlift.com/v1/buyers/match"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"investor": {
"id": "inv_70f5dd32e592",
"market": "phx",
"name": "SALT RIVER EQUITY LLC",
"display_name": "SALT RIVER EQUITY LLC",
"state": "AZ",
"kind": "FLIPPER",
"confidence": "STRONG",
"scale": "large",
"institutional": false,
"is_public": false,
"last_bought_on": "2026-08-06",
"n_deals": 1581,
"buyer_status": "registered",
"kinds": [
"FLIPPER",
"BUILDER",
"WHOLESALER",
"LANDLORD"
],
"days_since_last_purchase": 6,
"n_purchase_events_12m": 99,
"n_purchase_events_24m": 180,
"n_flips": 130,
"n_wholesales": 1206,
"n_holds": 97,
"n_long_holds": 33,
"n_bought_from_wholesaler_5y": 41,
"price_band": {
"window": "5y",
"p25": 235000,
"p50": 325000,
"p75": 442875,
"n_priced_purchases": 642
},
"p50_flip_sold_price": 347500,
"segment_mix": {
"sfr": 0.854,
"condo_th": 0.094,
"other": 0.052
},
"has_person_member": true,
"has_home_address": true,
"has_suite_address": true,
"member_names": [
"SALT RIVER EQUITY LLC",
"MMAR HOLDINGS LLC",
"ML SQUARED REAL ESTATE INVESTMENT LLC",
"SICK HOMES LLC",
"LLC SALT RIVER EQUITY",
"THERESA ORTIZ TRUST"
],
"operator_id": "inv_70f5dd32e592",
"n_operator_members": 6,
"auction": {
"n_auction_buys": 0,
"n_auction_buys_24m": 0,
"last_auction_buy_on": null,
"is_active_auction_buyer": false,
"auction_resale_share": null,
"n_reo_buys": 11,
"n_reo_buys_24m": 3,
"last_reo_buy_on": "2026-06-30",
"is_active_reo_buyer": true
}
},
"in_radius": {
"n_events": 91,
"n_purchase_events": 86,
"n_parcels": 91,
"n_held_parcels": 4,
"n_flips": 4,
"n_holds": 4,
"n_long_holds": 3,
"volume": 36531443,
"last_bought_on": "2026-06-11",
"last_deal_on": "2026-06-11",
"nearest_distance_miles": 0.2,
"median_bought_price": 337000,
"n_unpriced": 0,
"n_undated": 0
},
"score": 0.9901,
"gate": 1,
"base_score": 0.9901,
"activity_multiplier": 1,
"reasons": [
{
"factor": "proximity",
"weight": 0.3,
"value": 0.9995,
"detail": "86 purchases (91 parcels) within 2 mi, nearest 0.20 mi"
},
{
"factor": "recency",
"weight": 0.25,
"value": 0.9902,
"detail": "last bought 6 days before the data's end date (2026-08-12); 180 purchase events in 24 months"
},
{
"factor": "price_fit",
"weight": 0.2,
"value": 1,
"detail": "$250k sits inside their 5-year band $235k-$443k (642 priced purchases)"
},
{
"factor": "strategy",
"weight": 0.1,
"value": 1,
"detail": "FLIPPER (STRONG); subject is MAJOR_REHAB"
},
{
"factor": "segment",
"weight": 0.05,
"value": 0.854,
"detail": "85% of their deals are SFR"
},
{
"factor": "wholesale_buyer",
"weight": 0.1,
"value": 1,
"detail": "bought 41 wholesale contracts since 2021, last 2026-03"
}
],
"sample_deals": [
{
"id": "deal_0d12db603fd2fbf20a5524060c588a6f",
"kind": "wholesale",
"address_short": "2840 N 74th Pl",
"latitude": 33.479621,
"longitude": -111.92165,
"bought_on": "2019-08-07",
"bought_price": 337000,
"sold_on": "2019-08-08",
"sold_price": 357500,
"gross_profit": 20500,
"distance_miles": 0.2,
"bought_from_wholesaler": false,
"bought_distressed": false,
"bought_auction_kind": null
},
{
"id": "deal_6ab665cf87971af3b20d75d5ee6061d6",
"kind": "wholesale",
"address_short": "7232 E Virginia Ave",
"latitude": 33.477346,
"longitude": -111.924674,
"bought_on": "2018-08-20",
"bought_price": 330000,
"sold_on": "2018-08-24",
"sold_price": 349900,
"gross_profit": 19900,
"distance_miles": 0.25,
"bought_from_wholesaler": false,
"bought_distressed": false,
"bought_auction_kind": null
}
],
"buyer_signal": {
"operator_id": "inv_70f5dd32e592",
"n_operator_members": 6,
"operator_member_ids": [
"inv_0dccd79162e9",
"inv_178f7fd9aae5",
"inv_50c0fb39bd5e",
"inv_57a71d3e5b88",
"inv_70f5dd32e592",
"inv_712425783c9f"
],
"is_anchor": true,
"merge_confidence": "MERGED_STRONG",
"activity_p_180": 0.937516,
"activity_p_365": 0.965902,
"cell_n": 1599,
"activity_model": "CYCLE_v1",
"cycle_state": "FRESH_CASH",
"capital_freed_60d": true,
"days_since_last_purchase": 6,
"days_since_last_resale": 7,
"open_inventory": 88,
"n_purchases_36m": 373,
"median_gap_days": 3,
"share_within_30d_of_resale": 0.9991,
"data_end": "2026-08-12"
},
"listings": {
"n_active": 8,
"n_pending": 0,
"n_listed": 8,
"n_listed_undated": 0,
"n_holdings_dated": 97,
"n_holdings_undated": 0,
"median_list_price": 527500,
"min_list_price": 239900,
"max_list_price": 754900,
"last_listed_on": "2026-08-23",
"n_listed_12m": 27,
"listings_data_end": "2026-08-31"
},
"wholesale_purchases": {
"n": 6,
"n_12m": 0,
"n_24m": 3,
"n_5y": 6,
"n_probable": 4,
"last_on": "2025-04-30",
"n_wholesalers": 4,
"top_wholesalers": [
{
"id": "wsr_a7c0d7da9bc7",
"name": "National Property Superstore",
"n": 2
},
{
"id": "wsr_b847c1c64247",
"name": "Freedom Ventures",
"n": 2
},
{
"id": "wsr_4a4468db0919",
"name": "TTP AZ, LLC",
"n": 1
}
],
"n_double_closed": 1,
"median_asking_price": 309950,
"data_end": "2026-08-12"
},
"str": null
},
{
"investor": {
"id": "inv_a61331a35b68",
"market": "phx",
"name": "BLACK CANYON EQUITY LLC",
"display_name": "BLACK CANYON EQUITY LLC",
"state": "AZ",
"kind": "FLIPPER",
"confidence": "STRONG",
"scale": "large",
"institutional": false,
"is_public": false,
"last_bought_on": "2026-07-30",
"n_deals": 1354,
"buyer_status": "registered",
"kinds": [
"FLIPPER",
"BUILDER",
"WHOLESALER",
"LANDLORD"
],
"days_since_last_purchase": 13,
"n_purchase_events_12m": 70,
"n_purchase_events_24m": 125,
"n_flips": 126,
"n_wholesales": 881,
"n_holds": 154,
"n_long_holds": 83,
"n_bought_from_wholesaler_5y": 140,
"price_band": {
"window": "5y",
"p25": 270000,
"p50": 345000,
"p75": 450000,
"n_priced_purchases": 926
},
"p50_flip_sold_price": 471500,
"segment_mix": {
"sfr": 0.832,
"condo_th": 0.123,
"other": 0.044
},
"has_person_member": true,
"has_home_address": true,
"has_suite_address": true,
"member_names": [
"BLACK CANYON EQUITY LLC",
"BAF 3 LLC",
"OHANA43 LLC",
"SVH ENTERPRISES LLC",
"LLC BLACK CANYON EQUITY",
"BLACK CANYON LLC"
],
"operator_id": "inv_a61331a35b68",
"n_operator_members": 12,
"auction": {
"n_auction_buys": 1,
"n_auction_buys_24m": 0,
"last_auction_buy_on": "2019-01-03",
"is_active_auction_buyer": false,
"auction_resale_share": null,
"n_reo_buys": 2,
"n_reo_buys_24m": 1,
"last_reo_buy_on": "2026-02-18",
"is_active_reo_buyer": true
}
},
"in_radius": {
"n_events": 123,
"n_purchase_events": 112,
"n_parcels": 117,
"n_held_parcels": 7,
"n_flips": 16,
"n_holds": 7,
"n_long_holds": 9,
"volume": 55249200,
"last_bought_on": "2026-07-20",
"last_deal_on": "2026-07-23",
"nearest_distance_miles": 0.16,
"median_bought_price": 453000,
"n_unpriced": 0,
"n_undated": 0
},
"score": 0.982,
"gate": 1,
"base_score": 0.982,
"activity_multiplier": 1,
"reasons": [
{
"factor": "proximity",
"weight": 0.3,
"value": 1,
"detail": "112 purchases (117 parcels) within 2 mi, nearest 0.16 mi"
},
{
"factor": "recency",
"weight": 0.25,
"value": 0.979,
"detail": "last bought 13 days before the data's end date (2026-08-12); 125 purchase events in 24 months"
},
{
"factor": "price_fit",
"weight": 0.2,
"value": 0.9783,
"detail": "$250k is below their 5-year band $270k-$450k (926 priced purchases)"
},
{
"factor": "strategy",
"weight": 0.1,
"value": 1,
"detail": "FLIPPER (STRONG); subject is MAJOR_REHAB"
},
{
"factor": "segment",
"weight": 0.05,
"value": 0.832,
"detail": "83% of their deals are SFR"
},
{
"factor": "wholesale_buyer",
"weight": 0.1,
"value": 1,
"detail": "bought 140 wholesale contracts since 2021, last 2026-07"
}
],
"sample_deals": [
{
"id": "deal_9f8cc43ff573113c256bb52279230924",
"kind": "long_hold",
"address_short": "2615 N 73rd Pl",
"latitude": 33.477329,
"longitude": -111.923155,
"bought_on": "2022-02-14",
"bought_price": 540000,
"sold_on": "2023-05-31",
"sold_price": 985000,
"gross_profit": 445000,
"distance_miles": 0.16,
"bought_from_wholesaler": true,
"bought_distressed": false,
"bought_auction_kind": null
},
{
"id": "deal_47a476cc378e6a763a8e393e5b6671d8",
"kind": "long_hold",
"address_short": "2539 N Miller Rd",
"latitude": 33.47629,
"longitude": -111.916233,
"bought_on": "2023-03-20",
"bought_price": 500000,
"sold_on": "2024-08-07",
"sold_price": 705000,
"gross_profit": 205000,
"distance_miles": 0.24,
"bought_from_wholesaler": false,
"bought_distressed": false,
"bought_auction_kind": null
}
],
"buyer_signal": {
"operator_id": "inv_a61331a35b68",
"n_operator_members": 12,
"operator_member_ids": [
"inv_0dd5a869408e",
"inv_3d5d38784610",
"inv_485a7f48c46c",
"inv_4d70fe04c768",
"inv_5d77474fe9f4",
"inv_6740053846a1",
"inv_698381652192",
"inv_6aa6e7ca9558",
"inv_a61331a35b68",
"inv_a8ed7cb4612d",
"inv_cc1d95252d89",
"inv_d8abe8e7314e"
],
"is_anchor": true,
"merge_confidence": "MERGED_STRONG",
"activity_p_180": 0.937516,
"activity_p_365": 0.965902,
"cell_n": 1599,
"activity_model": "CYCLE_v1",
"cycle_state": "FRESH_CASH",
"capital_freed_60d": true,
"days_since_last_purchase": 13,
"days_since_last_resale": 8,
"open_inventory": 201,
"n_purchases_36m": 223,
"median_gap_days": 2,
"share_within_30d_of_resale": 0.9309,
"data_end": "2026-08-12"
},
"listings": {
"n_active": 7,
"n_pending": 0,
"n_listed": 7,
"n_listed_undated": 0,
"n_holdings_dated": 154,
"n_holdings_undated": 0,
"median_list_price": 359900,
"min_list_price": 335000,
"max_list_price": 399900,
"last_listed_on": "2026-08-08",
"n_listed_12m": 25,
"listings_data_end": "2026-08-31"
},
"wholesale_purchases": {
"n": 12,
"n_12m": 3,
"n_24m": 6,
"n_5y": 11,
"n_probable": 7,
"last_on": "2025-11-26",
"n_wholesalers": 11,
"top_wholesalers": [
{
"id": "wsr_7b407f79e351",
"name": "KeyGlee",
"n": 2
},
{
"id": "wsr_37e2a3dcdf4c",
"name": "Home Team Investors",
"n": 1
},
{
"id": "wsr_435f4f5439c2",
"name": "EZAZ Homes",
"n": 1
}
],
"n_double_closed": 4,
"median_asking_price": 394245,
"data_end": "2026-08-12"
},
"str": null
},
{
"investor": {
"id": "inv_4a8213dc5193",
"market": "phx",
"name": "WHITE FIG HOMES JV LLC",
"display_name": "WHITE FIG HOMES JV LLC",
"state": "AZ",
"kind": "LANDLORD",
"confidence": "STRONG",
"scale": "large",
"institutional": false,
"is_public": false,
"last_bought_on": "2026-08-07",
"n_deals": 1099,
"buyer_status": "registered",
"kinds": [
"LANDLORD",
"FLIPPER",
"BUILDER",
"WHOLESALER"
],
"days_since_last_purchase": 5,
"n_purchase_events_12m": 99,
"n_purchase_events_24m": 206,
"n_flips": 804,
"n_wholesales": 67,
"n_holds": 146,
"n_long_holds": 32,
"n_bought_from_wholesaler_5y": 56,
"price_band": {
"window": "5y",
"p25": 226000,
"p50": 283000,
"p75": 365000,
"n_priced_purchases": 577
},
"p50_flip_sold_price": 365000,
"segment_mix": {
"sfr": 0.845,
"condo_th": 0.119,
"other": 0.035
},
"has_person_member": true,
"has_home_address": true,
"has_suite_address": true,
"member_names": [
"WHITE FIG HOMES JV LLC",
"WHITE FIG HOMES LLC",
"BENE HOLDINGS LLC",
"MARINA INVESTMENTS LLC",
"WF3 LLC",
"NEB PROPERTIES LLC"
],
"operator_id": "inv_4a8213dc5193",
"n_operator_members": 9,
"auction": {
"n_auction_buys": 0,
"n_auction_buys_24m": 0,
"last_auction_buy_on": null,
"is_active_auction_buyer": false,
"auction_resale_share": null,
"n_reo_buys": 2,
"n_reo_buys_24m": 0,
"last_reo_buy_on": "2016-01-19",
"is_active_reo_buyer": false
}
},
"in_radius": {
"n_events": 31,
"n_purchase_events": 28,
"n_parcels": 31,
"n_held_parcels": 8,
"n_flips": 13,
"n_holds": 8,
"n_long_holds": 3,
"volume": 8914650,
"last_bought_on": "2025-08-11",
"last_deal_on": "2026-02-10",
"nearest_distance_miles": 0.17,
"median_bought_price": 293000,
"n_unpriced": 1,
"n_undated": 0
},
"score": 0.9525,
"gate": 1,
"base_score": 0.9525,
"activity_multiplier": 1,
"reasons": [
{
"factor": "proximity",
"weight": 0.3,
"value": 0.8744,
"detail": "28 purchases (31 parcels) within 2 mi, nearest 0.17 mi"
},
{
"factor": "recency",
"weight": 0.25,
"value": 0.9918,
"detail": "last bought 5 days before the data's end date (2026-08-12); 206 purchase events in 24 months"
},
{
"factor": "price_fit",
"weight": 0.2,
"value": 1,
"detail": "$250k sits inside their 5-year band $226k-$365k (577 priced purchases)"
},
{
"factor": "strategy",
"weight": 0.1,
"value": 1,
"detail": "FLIPPER (STRONG); subject is MAJOR_REHAB"
},
{
"factor": "segment",
"weight": 0.05,
"value": 0.845,
"detail": "85% of their deals are SFR"
},
{
"factor": "wholesale_buyer",
"weight": 0.1,
"value": 1,
"detail": "bought 56 wholesale contracts since 2021, last 2026-07"
}
],
"sample_deals": [
{
"id": "deal_061642c8e4360c1974211049d19516e4",
"kind": "hold",
"address_short": "7312 E Wilshire Dr",
"latitude": 33.476506,
"longitude": -111.923264,
"bought_on": "2016-05-12",
"bought_price": 235000,
"sold_on": null,
"sold_price": null,
"gross_profit": null,
"distance_miles": 0.17,
"bought_from_wholesaler": false,
"bought_distressed": false,
"bought_auction_kind": null
},
{
"id": "deal_30127834d445faab36b4f32b243b600b",
"kind": "hold",
"address_short": "2245 N 72nd Pl",
"latitude": 33.472551,
"longitude": -111.924486,
"bought_on": "2019-02-28",
"bought_price": 354900,
"sold_on": null,
"sold_price": null,
"gross_profit": null,
"distance_miles": 0.38,
"bought_from_wholesaler": true,
"bought_distressed": false,
"bought_auction_kind": null
}
],
"buyer_signal": {
"operator_id": "inv_4a8213dc5193",
"n_operator_members": 9,
"operator_member_ids": [
"inv_1629e9057de3",
"inv_20bf030f2d84",
"inv_22ae900021c2",
"inv_2e162d00a074",
"inv_3adb82477f3f",
"inv_4a8213dc5193",
"inv_684790efabe8",
"inv_888becfdd422",
"inv_8aae0f1c5460"
],
"is_anchor": true,
"merge_confidence": "MERGED_STRONG",
"activity_p_180": 0.937516,
"activity_p_365": 0.965902,
"cell_n": 1599,
"activity_model": "CYCLE_v1",
"cycle_state": "FRESH_CASH",
"capital_freed_60d": true,
"days_since_last_purchase": 5,
"days_since_last_resale": 16,
"open_inventory": 134,
"n_purchases_36m": 556,
"median_gap_days": 3,
"share_within_30d_of_resale": 0.989,
"data_end": "2026-08-12"
},
"listings": {
"n_active": 16,
"n_pending": 5,
"n_listed": 21,
"n_listed_undated": 0,
"n_holdings_dated": 146,
"n_holdings_undated": 0,
"median_list_price": 469900,
"min_list_price": 234900,
"max_list_price": 995000,
"last_listed_on": "2026-08-27",
"n_listed_12m": 47,
"listings_data_end": "2026-08-31"
},
"wholesale_purchases": {
"n": 60,
"n_12m": 7,
"n_24m": 34,
"n_5y": 60,
"n_probable": 30,
"last_on": "2026-07-28",
"n_wholesalers": 17,
"top_wholesalers": [
{
"id": "wsr_cf9dfee7cc0a",
"name": "Andrew The Home Buyer LLC",
"n": 15
},
{
"id": "wsr_b847c1c64247",
"name": "Freedom Ventures",
"n": 8
},
{
"id": "wsr_a7c0d7da9bc7",
"name": "National Property Superstore",
"n": 7
}
],
"n_double_closed": 2,
"median_asking_price": 325700,
"data_end": "2026-08-12"
},
"str": null
}
],
"page": {
"next_cursor": "eyJ2IjoxLCJydW4iOiIxNzg4NTIxODM0IiwicSI6ImJiNTJlNjZmNjRkMzliYmI3YTRmOThmOGRlMDViM2I0MWRiODVjOTExNDllZTBkYjVmMTc3NTY4MTA5ZDQ2OGQiLCJrIjpbMC45NTI1MzMzNDc1NjIzNzA3LCJpbnZfNGE4MjEzZGM1MTkzIl19",
"limit": 3,
"returned": 3
},
"meta": {
"generated_at": "2026-09-04T12:00:00.000Z",
"weights": {
"proximity": 0.3,
"recency": 0.25,
"price_fit": 0.2,
"strategy": 0.1,
"segment": 0.05,
"wholesale_buyer": 0.1,
"resale_fit": 0
},
"reference_point": {
"lat": 33.476917,
"lng": -111.920385
},
"geometry": {
"kind": "radius",
"lat": 33.476917,
"lng": -111.920385,
"radius_miles": 2,
"bbox": null,
"property_id": null,
"zip": null,
"city": null
},
"coverage": [
{
"market": "phx",
"state": "AZ",
"counties": [
{
"fips": "04013",
"name": "Maricopa",
"data_end": "2026-08-12"
},
{
"fips": "04021",
"name": "Pinal",
"data_end": "2026-08-06"
}
],
"bbox": [
-113.332773,
32.46915,
-110.455491,
33.999503
],
"data_end": "2026-08-12",
"build_run_id": 1,
"registry_run": 8,
"registry_version": "v4-metro-review-fixes",
"dataset_version": 1788521834,
"loaded_at": "2026-09-04T11:37:14.263Z",
"metro_buy_to_resale_ratio": 0.7192,
"universe_kind": "metro",
"universe_zips": null,
"point_tolerance_miles": 20,
"n_parcels": 1836307,
"listings_data_end": "2026-08-31",
"agents_data_end": "2026-08-31",
"wholesale_as_of": "2026-09-09",
"str_as_of": null,
"str": null,
"auction_counted": true,
"parcel_as_of": null,
"address_as_of": null,
"parcel": null,
"lenders": null
}
],
"terms": "Data: Investorlift Data Services. Public-record and MLS listing data licensed through BatchData; municipal short-term rental registries; Investorlift marketplace records. Attribution and data-use terms: https://developers.investorlift.com/guides/terms"
},
"summary": {
"by_buyer_status": {
"registered": 10678,
"unclassified": 208,
"excluded": 65,
"unknown": 7
},
"n_investors_ranked": 5813,
"n_unpriced": 1975,
"n_undated": 27
}
}radius_miles, a bbox or a property_id. This route takes no zip or city,
because the match ranks near a point. The deal’s price, ARV, condition and segment are optional. The API returns the
investors who bought in the area, ranked by how well they fit. Each row carries the reasons behind its score, proof
deals and a contact block.
Use it when
You have a subject property. This is the first call of the God Mode screen and the drawer’s “similar buyers” refresh.| Instead use | When |
|---|---|
GET /v1/investors | You have no subject: the same investors sorted by activity, not by fit. |
GET /v1/deals | You want the deals themselves, for a table or a map. |
GET /v1/investors/{id} | You already know which buyer you mean. |
How the score is built
score runs 0 to 1, best first, and is base_score × activity_multiplier.
base_score is gate times the weighted mean of the factor values in reasons[]. Those weights sum to 1. With the
default w_activity=0, the multiplier is 1 and score equals base_score. The API rounds score, base_score,
activity_multiplier, reasons[].weight, reasons[].value and meta.weights to four decimals. So the identity
holds to about 0.0005. The ranking itself uses the unrounded score.
Compare scores only within one response. A different subject, radius, weight set or w_activity is a different
scale.
The factors
| Factor | What it measures |
|---|---|
proximity | How many separate purchase days they had inside the area, and how close. A bulk buy of 20 condos on one day counts once. |
recency | How recently and how often they buy, measured at the data’s end date. A sale never counts: a flipper who just sold is still an active buyer. |
price_fit | If the subject price sits inside the band of what they pay. The subject price is the asking price, else ARV times their usual buy-to-resale ratio. A price cheaper than usual gets a smaller penalty than a dearer one. |
strategy | If their kinds (flipper, landlord, builder, wholesaler, iBuyer) suit the subject condition. |
segment | The share of their deals in the subject segment. |
wholesale_buyer | Documented purchases from wholesalers in the last five years. A lower bound: a contract assignment leaves no deed. |
resale_fit | The ARV against the median resale price of their flips. Weight 0 by default, so the UI can show it without moving the score. |
financing | If the investor borrowed from a lender that also lends in the subject’s ZIP, in the lender registry’s 24-month window. detail names the lender. Weight 0 by default. The factor is absent where the market has no published registry or borrower match. A floor: the match sees about one loan in five. |
reasons[] when nothing feeds it:
- no asking price or ARV (
price_fit) - no condition (
strategy) - no segment (
segment) - no reference point (
proximity) - no priced purchases on record (
price_fit)
w_* weights of the factors it can score, so they sum
to 1. meta.weights shows that effective set for the request. reasons[].weight shows the row’s own set. There the
API halves price_fit for an investor with fewer than three priced purchases.
gate is 0.5 for an investor whose last purchase is more than three years before the data end, or who never bought
at all. So a dormant investor ranks lower but stays in the list.
The activity weight
w_activity (0 to 1, default 0) is a power. The API raises buyer_signal.activity_p_180, the operator’s probability
of a purchase in the 180 days after the data end, to that power. The API then multiplies each score by the result.
w_activity=1 ranks by expected purchases. 0.5 softens it.
The API scores an investor without a probability at the measured dormant re-activation rate. The w_activity
parameter documents that rate. Such an investor is a dormant operator, or one with no signal row. The response shows
the multiplier as activity_multiplier. It is not a factor, so reasons[] and meta.weights do not change.
The buyer signal
buyer_signal is the operator behind the investor. operator_id and operator_member_ids tie together the
LLCs, trusts and people linked by shared mailing addresses and shared names. cycle_state and capital_freed_60d
say where that operator is in its capital cycle. activity_p_180 is its fitted probability of another purchase. Its
“days since” values are the operator’s, measured from the data end date. The block is null where no signal exists
for the market.
Rows that share an investor.operator_id are one buyer: collapse them and contact them once. The API ranks and pages
each id on its own. So an operator with three ids can appear three times, and across pages. Keep the row whose id
equals operator_id as the visible one. score and in_radius are per id, and the API never sums them per operator.
Same buyer, cash right now works through it.
Read the rest of a row
in_radiusis what they did inside the area after your filters.investoris their whole-market profile. It is normal for the two to disagree. See the Investor object.sample_dealsare up to five of their deals here, nearest first: proof to show the user.summarycounts the whole area, not the page.n_investors_rankedis how many rows the pages walk.- The API follows
investor_id=with an old id to the current investor and echoes the old id inmeta.resolved_from. For a retired id, the API answers410 gone. meta.geometryechoes the area that ran. The envelope describes it.
Gotchas
- By default the list hides institutional buyers and public bodies. They top every neighbourhood by volume and
are almost never the buyer for a wholesale deal. To see them, pass
scale=individual,small,mid,large,institutionalandinclude_public=true. - Filters narrow the deals that count. The subject facts and weights only change the score.
investor_deals_mincounts purchase days inside the area. financed_by=len_...anduses_private_lender=true(since 0.16.0) read the lender registry. The first keeps the investors the registry ties to that lender. The second keeps the investors it ties to a hard-money, investor,INDIVIDUALorPRIVATElender in its window. Both answer422 lenders_unavailablewhere the market has no published registry or borrower match.w_financingweights thefinancingreason.holds_minandholds_max(since 0.26.0) keep the investors whose market-wideinvestor.n_holdssits inside the band. For example,holds_min=20keeps the larger portfolios. They narrow the ranking and never move a score.- The API never infers
subject_asking_priceorsubject_arv.subject_segment,subject_bedsandsubject_sqftdefault from the parcel when the geometry isproperty_id. The API acceptssubject_bedsandsubject_sqftbut does not score them yet. - With
bboxand nolat+lng, the request has no reference point. The API dropsproximity, distances are null and samples come back most recent first. include_unregistered=trueaddssummary.unregistered[]: the households and unclassified names that bought here, at most 200. The API scores them on proximity and recency only. They are leads, not investors, and have no id. Theirscoreis on thebase_scorescale. So withw_activityabove 0 it is not comparable todata[].score. This host does not serve theirname: it is null, withcontact_redacted: true.- This host does not serve contact fields. They are null, with
contact_redacted: true, andinvestor.member_nameslists entity and trust names only. - Any change of filters, subject facts, weights or
w_activityinvalidates the cursor (400 invalid_cursor). - This route has no CSV on
api.investorlift.com. Page the JSON list (Give me a spreadsheet). The one public CSV is the loans of a lender. - Likely errors:
geometry_required,geometry_conflict,outside_coverage, andstatement_timeouton a 20 mile radius with heavy filters.geometry_conflictis also the answer to aziporcity. The deals and investor lists take those, and this route does not.
Related
Buyers for a house under contract walks through a full response. Same buyer, cash right now covers operators andw_activity.Authorizations
API key from the developer console (starts with zpka_). Create one at https://developers.investorlift.com/get-a-key.
Query Parameters
Deal kinds to keep (comma list or repeated key). Default: every kind.
1What occurred on the deal. flip: bought, fixed and resold within about a year at a profit-shaped margin; wholesale: bought and resold in under 30 days, or a chain resale or round trip within 90 (a double close); hold: bought and still owned at data_end, a confirmed holding or an un-resold purchase; long_hold: held over a year, then sold (a landlord exit); other: an investor resale that is not a clean flip. Reasons: a loss, a thin margin, a builder's new home resold, an iBuyer resale, or a chain resale of 3 to 12 months; build: a registered investor bought a lot or teardown, built a house on it during the hold, then sold. A builder's finished home bought and resold is other. On data built after 2026-09-17 the kind keeps only a single-family parcel held over 90 days, its house complete by the sale year. A market built on or before 2026-09-17 (meta.coverage[].loaded_at) counts every lot-to-build resale by a registered investor as a build until its next build.
flip, wholesale, hold, long_hold, other, build Minimum bought price, inclusive, integer dollars. When you set price_min or price_max, the API drops null-priced rows unless include_unpriced=true.
0 <= x <= 9007199254740991Maximum bought price, inclusive, integer dollars.
0 <= x <= 9007199254740991Keep deals bought on or after this date. When you set bought_after or bought_before, the API drops null-date rows unless include_undated=true.
Keep deals bought on or before this date.
Resold deals only: sold on or after this date.
Resold deals only: sold on or before this date.
Parcel segments to keep. Default: every segment.
1Parcel segment: SFR, CONDO_TH (condo or townhouse) or OTHER, a mixed bucket of manufactured, multi-family, land and commercial parcels.
SFR, CONDO_TH, OTHER Minimum bedrooms, inclusive.
0 <= x <= 50Minimum living area in square feet, inclusive, 0 to 1,000,000.
0 <= x <= 1000000Maximum living area in square feet, inclusive, 0 to 1,000,000.
0 <= x <= 1000000Keep investors that carry at least one listed kind. The check reads any of their kinds[], never the primary kind. Default: every kind. Buyers without an investor id pass unless registered_only=true.
1Investor kind, the primary one of kinds[] (an investor can carry several), for display only. FLIPPER: buys, renovates and resells. WHOLESALER: buys to resell quickly, often through a double close. LANDLORD: buys and holds rentals. BUILDER: builds on lots it buys. IBUYER: Opendoor, Offerpad or Zillow.
FLIPPER, WHOLESALER, LANDLORD, BUILDER, IBUYER Drop investors that carry any listed kind. The API checks kinds[] after investor_kind. investor_kind_exclude=WHOLESALER removes investors who also wholesale.
1Investor kind, the primary one of kinds[] (an investor can carry several), for display only. FLIPPER: buys, renovates and resells. WHOLESALER: buys to resell quickly, often through a double close. LANDLORD: buys and holds rentals. BUILDER: builds on lots it buys. IBUYER: Opendoor, Offerpad or Zillow.
FLIPPER, WHOLESALER, LANDLORD, BUILDER, IBUYER Minimum registry confidence in the investor kind: STRONG, PROBABLE or WEAK (WEAK admits everything).
STRONG, PROBABLE, WEAK Scale tiers to keep. Default: every tier except institutional. An explicit list replaces the default entirely. scale=institutional alone returns only institutional. scale=individual,small,mid,large,institutional returns everyone.
1Investor scale: individual (one person, no entity), small (fewer than 10 investment deals), mid (10 to 99), large (100 to 999) or institutional. An institutional investor is an iBuyer, a production builder, a bulk landlord with 500 or more holdings, or a known brand from a list. The registry counts the deals inside the area loaded for the market (meta.coverage[].universe_kind), so in a ZIP market the tier is a floor.
individual, small, mid, large, institutional Include public-body investors (counties, cities, housing authorities) and their deals. Default false: every list endpoint hides them.
true, false Keep null-priced rows when you set price_min or price_max (default false).
true, false Keep null-date rows when you set bought_after or bought_before (default false).
true, false Keep investors whose last purchase is at most this many months before data_end (data_end minus last_bought_on). Sales and transfers do not count. No default.
1 <= x <= 600Minimum purchase events of that investor inside the geometry, 1 to 1,000,000. The API applies it after the other filters.
1 <= x <= 1000000Investor filter: keep investors who hold at least this many parcels across the whole market at the deed data end (meta.coverage[].data_end). The count is the investor's n_holds: confirmed holdings plus un-resold purchases inside the area loaded for the market, not the holdings inside the geometry. Range 0 to 1,000,000, inclusive. For example, holds_min=20 keeps the larger portfolios. Buyers without an investor id pass unless registered_only=true.
0 <= x <= 1000000Investor filter: keep investors who hold at most this many parcels across the whole market at the deed data end (n_holds). Range 0 to 1,000,000, inclusive. holds_max=0 keeps the investors that hold nothing. Beside holds_min the pair is a band. Buyers without an investor id pass unless registered_only=true.
0 <= x <= 1000000Investor filter: at least one bought-from-wholesaler deal in the 36 months before data_end.
true, false Investor filter: true keeps investors who bought at least one house at a foreclosure auction in the 24 months before data_end. A foreclosure auction is a trustee's sale or an Arizona sheriff's sale, and the filter reads investor.auction.is_active_auction_buyer. These buyers pay cash within a day and buy without an inspection. False keeps registered investors who did not. Buyers without an investor id pass unless registered_only=true. The API answers 422 auction_unavailable in a market that does not publish its auction counts (meta.coverage[].auction_counted false).
true, false Investor filter: true keeps investors who bought at least one house from a lender, servicer or agency after a foreclosure. The window is the 24 months before data_end, and the filter reads investor.auction.is_active_reo_buyer. A bank-owned (REO) sale gave the buyer weeks, an inspection and the option to finance: the weaker cash signal beside buys_at_auction. False keeps registered investors who did not, and buys_at_auction=true&buys_reo=false is the cash-only set. Buyers without an investor id pass unless registered_only=true. The API answers 422 auction_unavailable where the market does not publish its auction counts.
true, false Deal filter: keep deals whose purchase deed was a third-party auction purchase of one of the listed kinds (comma list or repeated key). For example, bought_auction_kind=TRUSTEE_SALE keeps houses bought at a foreclosure sale. The API drops deals bought any other way and deals without a buy deed. The API answers 422 auction_unavailable where the market does not publish its auction counts.
1The kind of auction the purchase deed records: TRUSTEE_SALE and SHERIFF_SALE count toward buys_at_auction, and the API shows the other three but never counts them. TRUSTEE_SALE: a lender's foreclosure sale by the trustee, cash and final on the day, without redemption. In Arizona the buyer pays a $10,000 deposit and the full bid by 5 pm the next business day. In Texas it is the first-Tuesday courthouse sale, in Washington the Friday sale at the county's designated place under RCW 61.24. SHERIFF_SALE: a judicial sale under court order. In Arizona it is an HOA or judgment-lien sale, cash but subject to the first mortgage and to a 30-day or 6-month redemption. In Washington it is a judicial mortgage foreclosure or lien sale under RCW 6.21, with an 8-month or 1-year redemption. In Washington the sale is subject to the senior lien only when it is a lien sale. HOA_TRUSTEE_SALE: a Texas homeowners association foreclosure recorded as a trustee's deed, cash, subject to the first lien and to a 180-day redemption. TAX_SALE: a Texas constable or taxing-unit tax sale, cash, with a 180-day or 2-year redemption. In Washington it is the county treasurer's deed after the tax foreclosure judgment, with no redemption after the sale. TAX_LIEN_DEED: an Arizona treasurer's deed to a tax-lien holder, mostly vacant land, not an auction of the house.
TRUSTEE_SALE, SHERIFF_SALE, HOA_TRUSTEE_SALE, TAX_SALE, TAX_LIEN_DEED Deal filter: bought through a documented double close from a wholesaler, or from a known wholesaler. Assignments leave no deed, so absence is not evidence.
true, false Deal filter: the buy leg was a distressed sale. That is a foreclosure, trustee, sheriff or tax instrument, a deed in lieu, or a deed the feed flags as REO. It is wider than bought_auction_kind, which keeps only third-party auction purchases.
true, false Keep only rows whose buyer carries an investor id (investor.id is not null).
true, false Buyer statuses to keep.
1The buyer's standing in the registry: registered (has an investor id), unclassified, excluded or unknown (the deed names no buyer). Unclassified: a named buyer the registry did not classify as an investor, usually a household. Excluded: a named buyer the registry deliberately left out. Those are custodian trusts, relocation companies, auction houses and ambiguous surnames.
registered, unclassified, excluded, unknown Investor filter: true keeps investors that hold at least one parcel with a business-use short-term-rental licence attributed to them. That is the str roll-up's n_holdings at 1 or more. False keeps investors with none. Buyers without an investor id pass unless registered_only=true. The API answers 422 str_unavailable when a market in play has no short-term rental tables (meta.coverage[].str_as_of null).
true, false Investor filter: at least this many of the investor's holdings carry a business-use short-term-rental licence attributed to them (the str roll-up's n_holdings), 1 or more. Buyers without an investor id pass unless registered_only=true. The API answers 422 str_unavailable when a market in play has no short-term rental tables.
1 <= x <= 100000Investor filter: keep investors with at least one recorded loan from this lender, as the main borrower of the mortgage or the open lien. The value is a lender id, len_ followed by 12 hex characters, for example len_d2028f0766fc from GET /v1/lenders/search. The match is investor_id on the lender's loan rows. The count is a floor: the recorded history sees about one loan in five. Buyers without an investor id pass unless registered_only=true. The API answers 422 lenders_unavailable when a market in play has no lender registry with the borrower match (meta.coverage[].lenders null or borrowers_measured false).
^len_[0-9a-f]{12}$Investor filter: true keeps investors with a loan from a private lender, recorded in the 24 months before the lender registry's slice date (meta.coverage[].lenders.as_of). A private lender is a hard-money lender by name or behaviour (is_hard_money) or an investor lender by behaviour (is_investor_lender). A lender whose class reads INDIVIDUAL or PRIVATE also counts as private. False keeps registered investors with none such, and the result is a floor of a partial feed. Buyers without an investor id pass unless registered_only=true. The API answers 422 lenders_unavailable when a market in play has no lender registry with the borrower match.
true, false Scope the rows to one buyer (the drawer's "Activity here"). The API follows an old id from an earlier data refresh to the investor that superseded it and echoes the old id in meta.resolved_from. A retired id is 410 gone.
^inv_[0-9a-f]{12}$Scope the rows to one deal.
^deal_[0-9a-f]{32}$Point latitude (with lng). With radius_miles it is the search geometry. With bbox it is the reference point only.
-90 <= x <= 90Point longitude (with lat).
-180 <= x <= 180Search radius in miles around the point or around the centre of the property_id parcel, 0.25 to 20 (default 2). Not allowed with bbox.
0.25 <= x <= 20Viewport as west,south,east,north (WGS84 degrees). West must be less than east, south less than north, and the diagonal at most 40 mi. It must intersect a loaded market's coverage bbox (422 outside_coverage otherwise). It can carry lat + lng (without radius_miles) as the reference point for distances and sort=distance.
Parcel geometry: search around the centre of that parcel, with radius_miles. Not allowed with lat, lng or bbox.
^prop_[0-9a-f]{32}$Place geometry: the parcels of these 5-digit ZIP codes, as a comma list or a repeated key, up to 50. On the deal and investor routes the Free and Starter plans take exactly one ZIP, and more is 403 plan_limit. You can add lat + lng as the reference point for distances. Not with radius_miles, bbox, property_id or city. A ZIP that no parcel of a loaded market carries is 422 outside_coverage (zips_unknown in the body).
1 - 50 elements^\d{5}$Place geometry: the parcels whose postal city is this one, as the county records it ("Scottsdale"). Case does not matter: the API compares the value folded upper case. Never the short-term rental jurisdiction (meta.coverage[].str.jurisdictions[]). You can add lat + lng as the reference point, but not radius_miles, bbox, property_id or zip. On the deal and investor routes of the Free and Starter plans a city-wide search is 403 plan_limit. A city that no parcel of a loaded market carries is 422 outside_coverage.
1 - 100The contract or asking price of the subject deal, whole dollars, for example 250000. Send it only when the deal has an asking price. It feeds the price_fit factor and never filters deals.
1 <= x <= 9007199254740991After-repair value of the subject, whole dollars, for example 560000. Send it only when it is known and above 0. Without an asking price it drives price_fit through the buy-to-resale ratio of the investor, or else the ratio of the metro (meta.coverage[].metro_buy_to_resale_ratio). It also enables the resale_fit reason (weight 0 by default).
1 <= x <= 9007199254740991Condition of the subject property, the Investorlift enum. TURN_KEY: move-in ready, where landlords and iBuyers fit best. LIGHT_REHAB: cosmetic work, for flippers and landlords. MAJOR_REHAB and FULL_GUT: heavy work, flippers first and builders next. TEAR_DOWN: a lot, builders first. It drives the strategy factor: if you omit it, the API drops that factor.
TURN_KEY, LIGHT_REHAB, MAJOR_REHAB, FULL_GUT, TEAR_DOWN Segment of the subject property: SFR, CONDO_TH (condo or townhouse) or OTHER. OTHER is a mixed bucket: manufactured, multi-family, land and commercial. The subject segment drives the segment factor, the share of the deals of the investor in this segment. It defaults from the parcel when the geometry is property_id. Otherwise omit it and the API drops the factor. Investorlift mapping: single_family maps to SFR, condo and townhouse map to CONDO_TH, and everything else maps to OTHER.
SFR, CONDO_TH, OTHER Bedrooms of the subject, for example 3. It defaults from the parcel when the geometry is property_id. The API accepts and echoes it for forward compatibility and does not score it in this version.
0 <= x <= 50Living area of the subject in square feet, for example 1650. It defaults from the parcel when the geometry is property_id. The API accepts and echoes it for forward compatibility and does not score it in this version.
1 <= x <= 9007199254740991Weight of the proximity factor, 0 to 1 (default 0.3). Proximity: how many separate purchase days they had near the subject and how close.
0 <= x <= 1Weight of the recency factor, 0 to 1 (default 0.25). Recency: how close to the deed data end (meta.coverage[].data_end) they last bought, and how often they buy.
0 <= x <= 1Weight of the price_fit factor, 0 to 1 (default 0.2). Price fit: if the subject price sits inside what they usually pay. Needs subject_asking_price or subject_arv.
0 <= x <= 1Weight of the strategy factor, 0 to 1 (default 0.1). Strategy: if their kinds suit the subject condition. Needs subject_condition.
0 <= x <= 1Weight of the segment factor, 0 to 1 (default 0.05). Segment: the share of their deals in the subject segment. Needs subject_segment or property_id.
0 <= x <= 1Weight of the wholesale_buyer factor, 0 to 1 (default 0.1). Wholesale buyer: how many documented wholesale purchases they made in the 5 years ending on the deed data end (meta.coverage[].data_end).
0 <= x <= 1Weight of the resale_fit factor, 0 to 1 (default 0). Resale fit: the subject ARV against their median flip resale. Needs subject_arv. The default is 0, so the API shows the reason without moving the score.
0 <= x <= 1Weight of the activity signal, 0 to 1 (default 0: off), not part of reasons[] or meta.weights. The API multiplies the score by the probability that the operator buys in the 180 days after the data end (buyer_signal.activity_p_180), raised to this power. A power of 1 ranks by expected purchases, 0.5 softens the effect, and 0 leaves the ranking as it is. Any change starts a new ranking and invalidates the cursor, and the activity_multiplier of the row shows what the signal did. An investor with no probability, a dormant operator or one with no signal row, scores as 0.034, the measured dormant re-activation rate. In the Phoenix measurement 3.4% of dormant operators bought again within 180 days.
0 <= x <= 1Add summary.unregistered[]: the id-less buyers inside the geometry, households and unclassified names that bought here. The API scores them on proximity and recency only. A lead list, not a ranking: most have one deal.
true, false With include_unregistered=true, also list the excluded buyers: custodian trusts, relocation companies, auction houses and ambiguous surnames. Default false.
true, false Page size, 1-200 (default 100).
1 <= x <= 200Opaque cursor from page.next_cursor of the previous page. A change of query, sort, weights or data version invalidates it (400 invalid_cursor). Then restart from page 1.
1 - 4096Response
Ranked buyers, best first, with reasons; summary for the whole area; meta.weights and meta.reference_point.
Ranked buyers, best first, with reasons; summary for the whole area; meta.weights and meta.reference_point.
The rows of this page.
Show child attributes
Show child attributes
Pagination: the page size, the rows returned and the cursor for the next page. Paged lists carry no total. The summary block does.
Show child attributes
Show child attributes
Response metadata: when the API produced it, which markets it covers, and how fresh they are.
Show child attributes
Show child attributes
Counts for the whole geometry, not only the page, plus the unregistered tail when you ask for it.
Show child attributes
Show child attributes
Was this page helpful?