API: Buyer Search
Find the investors most likely to buy a property with POST /buyers.
POST /buyers takes a property address and returns the investors most likely to buy it — flippers and landlords with verified purchase activity, complete with contact information. It is the API counterpart of buyer search in the dashboard, and the fastest way to build a disposition list for a deal you're wholesaling.
Request parameters
| Field | Required | Description |
|---|---|---|
address.street / address.city / address.state | Yes | Subject property address (state is 2-letter). |
address.zip | No | 5-digit ZIP — improves comparable matching. |
take | No | Maximum buyer profiles to return, 1–100 (default 25). You are charged for what is returned. |
source | No | "auto" (default) | "live" | "cached" — see below. |
buyer_types | No | Filter by strategy: "flipper" (buys, renovates, resells) and/or "landlord" (buys and holds for rent). Default both. |
distance_miles | No | Comparable-sale search radius, 0.1–10 miles (default 1). |
sold_within_months | No | Only consider comparable sales within this window, 1–24 months (e.g. 12 = active in the last year). |
list_name | No | Label for the search in your pull history. |
How source works
cached— serves only from the platform's proprietary investor database: investors verified as buying and operating in that market, with phone-level intel (type, carrier, DNC/TCPA flags). Bills at the lowcached_buyer_profilerate (default 10 credits/profile) and never triggers a live search.live— always runs a fresh comparable-sales search: flippers and landlords who recently purchased similar properties nearby, ranked by portfolio size with acquisition/disposition counts. Only established investors (3+ lifetime transactions) are returned. Bills at thebuyer_profilerate (default 70 credits/profile).auto(default) — serves cached when the investor database can fill the request, otherwise falls back to live. The response'ssourcefield tells you which one answered.
Example
curl -X POST https://data.acquiredcrm.com/api/v1/buyers \
-H "Authorization: Bearer ad_live_XXXX" \
-H "Content-Type: application/json" \
-d '{
"address": {"street": "3741 W Evans Dr", "city": "Phoenix", "state": "AZ", "zip": "85053"},
"take": 25,
"buyer_types": ["flipper", "landlord"],
"sold_within_months": 12
}'{
"pull_id": "5d1f77a2-3c8b-4e9d-b6a0-7f2e1d4c5b60",
"source": "live",
"results_found": 137,
"returned_count": 25,
"credits_charged": 1750,
"credits_refunded": 0,
"environment": "production",
"buyers": [
{
"id": "a1b2c3d4",
"name": "Evergreen Holdings LLC",
"type": "Company Owned",
"classifications": ["landlord"],
"properties_owned": 48,
"total_acquisitions": 12,
"total_dispositions": 5,
"contacts": [
{
"first_name": "Dana",
"last_name": "Reyes",
"phones": ["6025551234"],
"emails": ["dana@evergreen.com"]
}
],
"phone_intel": null,
"markets": null,
"times_traced": null
}
]
}Live-source profiles carry the comparable-sales fields shown above (properties_owned, total_acquisitions, total_dispositions). Cached-source profiles instead populate the database-intel fields that are null on live results:
{
"phone_intel": [
{ "number": "6025551234", "type": "Mobile", "carrier": "Verizon", "dnc": false, "tcpa": false, "times_traced": 7 }
],
"markets": ["85008", "85053"],
"times_traced": 7
}The pull_id is a recorded history row — it shows up in GET /property-pulls alongside your property pulls.
Billing
Credits are held upfront for the requested take and settled against what was actually returned, at the rate of whichever source served. If an auto request is answered from the cache, you pay the cheaper cached_buyer_profile rate and the difference against the live-rate hold is refunded. If fewer profiles are found than requested, the shortfall is refunded too — the response reports both credits_charged and credits_refunded. Read your rates from GET /pricing.
Errors
402 insufficient_credits— balance belowtake× per-profile price.422 validation_error— missing address fields,takeout of range, or unknownbuyer_types.
To learn more about the property itself before pitching buyers, combine this with POST /enrich, or skip trace the sellers with bulk jobs.