You can find likely cash buyers for one property by using API data to look for three things: recent local buying activity, past no-mortgage purchases, and a buy box that matches your deal.
I’d keep it simple. The article shows a repeatable process:
- Start with the subject property details: address, APN, county, ZIP code, size, type, condition, and target price
- Pull nearby sales and owner records through the API
- Look for buyers with 2 to 3+ purchases in the last 12 months
- Push buyers higher if they show a past pattern of no recorded mortgage
- Match buyers by market, price band, and property type
- Group related LLCs so one investor does not appear multiple times
- Add contact and compliance data before outreach
- Rank the list into outreach tiers
A key point: a recorded cash deal shows what a buyer did before. It does not prove they have cash today. So I’d use the data to sort and rank buyers, then confirm current buying ability through direct contact.
The article also grounds the process in market activity. In Q1 2026, investors made up about 32% of U.S. home purchases, and about 40% of investor sales went to another investor. That tells me buyer search is not just a one-off task. It’s something worth turning into a system.
If I were using this workflow, I’d focus on a short list of signals first: recent purchase count, cash-purchase history, average buy price, asset type, hold time, and local activity. Then I’d build an outreach-ready list with buyer name, entity type, mailing address, score, recency, and source IDs.
Below, the article explains how to do that step by step with BatchData’s API.

How to Find Cash Buyers Using API Data: 5-Step Workflow
Define the Target Property and Cash-Buyer Criteria
Before you query the API, get clear on two things: the property and the buyer profile. If either one is fuzzy, the results will be too broad to act on.
Gather the Core Property Details First
Start with the basics: street address, parcel ID (APN), county, and ZIP code. These details anchor the search area and distance filters. From there, add the physical specs: property type, bedroom and bathroom count, living area in square feet, lot size, year built, and condition.
You’ll also want the pricing details nailed down. Add the target price, target price range, and the planned exit strategy. That part matters more than many people think. A flip buyer and a rental buyer may look similar on paper, but they often shop for very different deals.
| Input Category | Fields to Lock Down | Why It Matters |
|---|---|---|
| Location | Street address, county, ZIP code | Sets the geographic search area |
| Property Specs | Beds, baths, square footage, lot size, year built | Matches the property to a buyer’s historical buy box |
| Valuation | Estimated value ($), target price range | Filters for buyers active in the same price tier |
| Strategy | Flip vs. rental | Prioritizes buyers by hold time and activity level |
These inputs become the starting filters for the buyer search.
Turn a Buyer Idea into Specific API Filters
Next, define the investor buy box. In plain English, that means the type of property they keep buying again and again.
"Every active investor has a buy box: the kind of property they keep buying. Three-bedroom, two-bath homes built before 1990 in the eastern suburbs, paid in cash." – Ivo Draginov, President, BatchData
A good target is an investor who bought similar properties in the same county or nearby ZIP codes within the last 6 to 12 months, has no recorded conventional mortgage on past purchases, and has an average acquisition price in the same range.
This is where the API fields do the heavy lifting. Metrics like totalPurchaseCountLast12Months, cashPurchasePropertyCount, and avgAcquisitionPriceLast36Months turn a rough buyer idea into something you can query again and again without guesswork.
At this stage, think of these filters as the first cut. After that, transaction and ownership data help narrow the list.
What Cash-Buyer Data Can and Cannot Tell You
A deed with no matching mortgage is one of the strongest public-record signs of a likely cash purchase. But it’s not proof that the buyer has cash ready today. Private loans, seller financing, and hard-money loans may not show up as standard liens in public records. So some deals marked as “cash” may still involve nonstandard financing instead of liquid funds.
That’s why the goal isn’t to treat the data as perfect. The goal is to rank buyers based on what they’ve done before, then use direct outreach to confirm whether they can buy now.
"We would rather show you why every buyer is on the list, and let you decide what a good buyer looks like for your deal." – Jesse Burrell, CEO, BatchData
Next, score buyers by activity, equity, and property fit.
sbb-itb-8058745
Query Ownership and Transaction Data Through the API
Once your buyer criteria are set, run five API steps: resolve the property, pull nearby sales, extract buyers, group related entities, and enrich each buyer profile. In practice, it helps to start with nearby recent sales and then narrow the list to buyers whose recorded financing pattern lines up with a cash purchase.
The Ownership, Deed, and Financing Fields That Matter
The fields that matter most fall into three buckets. Ownership fields include investors[].name, investors[].type (individual vs. LLC or corporation), and investors[].mailingAddresses[].fullAddress. These tell you who owns the property and whether the buyer is a person or a business entity.
Transaction fields include salePrice, saleDate, recordedDate, and deedType. These show the chain of title and help you spot whether a buyer flips properties fast or tends to hold them over time.
Then there are the financing indicators, which are often the clearest clue when you’re trying to spot cash buyers. Focus on lenderName, loanAmount, and originationDate on the mortgage lien side. If the mortgage lien is missing, or if there’s a no-recorded-mortgage flag, that’s the strongest public-record sign of a cash purchase. Start with those fields, then score buyers based on activity and equity.
How to Filter by Market, Date, Financing Pattern, and Volume
Start by filtering for the right market: county, ZIP, or a 1- to 5-mile radius around the subject property. Then add a date range, such as the last 30, 90, or 180 days. That makes it easier to separate active buyers from people who bought in the past but may not be buying now.
Next, filter for financing pattern. Put records with no recorded mortgage at the top of the list, then cross-check with cashPurchasePropertyCount to see whether the buyer has a repeat pattern of closing without standard financing. Set a floor of 3 purchases in the last 12 months so you screen out one-off buyers and keep your focus on active investors. Also, match the property type to the subject asset. A buyer active in small multifamily may not be the right fit for land or retail.
API Fields Mapped to Each Buyer-Discovery Goal
Map each field to one discovery goal so the query stays tight and usable.
| Objective | API Field / Filter | Requirement | Why It Matters |
|---|---|---|---|
| Identify cash sale | Mortgage lien / deed of trust | Required | Absence of a recorded mortgage indicates a probable cash transaction |
| Verify buyer type | investors[].type |
Required | Distinguishes individual buyers from professional LLCs and corporations |
| Filter by market | County, ZIP, or radius | Required | Ensures the buyer is active in the specific local submarket |
| Assess recency | totalPurchaseCountLast12Months |
Required | Separates active buyers from those who haven’t purchased recently |
| Verify cash history | cashPurchasePropertyCount |
Enrichment | Confirms a pattern of closing without financing |
| Match property fit | propertyTypeDistribution |
Enrichment | Confirms the buyer invests in the same asset class as your property |
| Group related LLCs | investors[].parentId |
Enrichment | Links related LLCs to one buyer |
A lot of active investors buy through multiple LLCs. In raw data, that can make one buyer look like five different buyers. Grouping by parentId fixes that. It pulls those records into one investor profile and shows the actual scale of that buyer’s activity.
"A wholesaler with a signed contract and no buyer has a liability, not an asset. Buy Box turns the sell side into a data problem instead of a relationship problem." – Ivo Draginov, President, BatchData
Qualify Buyers by Activity, Equity, and Property Fit
After you pull buyer candidates from transaction data, the next step is to score them by activity, equity, and property fit. This is where raw matches start to become a ranked prospect list. In plain English: you move active investors to the top and push stale buyers down.
How to Spot Active Local Investors Using Transaction Data
The clearest sign of an active buyer is recent, repeat buying in one market. Start with totalPurchaseCountLast12Months as your main filter. A floor of at least 2–3 purchases in the past year helps screen out buyers with little or no recent activity.
Then look at hold time. The avgOwnershipLengthMonths field gives you a quick read on buying style. Short hold periods can point to a flipper. Longer hold periods can point to a landlord building rentals.
You’ll also want to compare the buyer’s usual deal profile to your subject property. Fields like avgPurchasePrice, avgLivingAreaSquareFeet, and propertyTypeDistribution help you see whether the buyer tends to buy at a similar price point, size, and property type.
Geography matters too. A buyer already active in the same ZIP code, neighborhood, or radius is often a better fit than someone buying across town. It’s a simple signal, but an easy one to miss.
Using Equity and Portfolio Signals to Prioritize Buyers
Activity tells you who is buying. Equity helps you sort out who may be able to close with fewer hurdles.
Use equity as a ranking signal, not as proof of liquidity. Buyers with no mortgage debt, a high cashPurchasePropertyCount, and strong equity positions should move higher on the list. You can pair mortgage data with an automated valuation model (AVM) to estimate equity and rank buyers by likely financing flexibility.
Portfolio depth also helps. totalAcquisitionCount can separate a seasoned investor from a one-time buyer. That difference matters when you’re deciding who belongs near the top of your outreach list.
Build a Buyer Score with a Clear Qualification Table
Use the table below to score buyers the same way every time. A repeat local buyer with a strong cash history should rank above an older one-off purchaser.
"We would rather show you why every buyer is on the list, and let you decide what a good buyer looks like for your deal." – Jesse Burrell, CEO, BatchData
| Qualification Signal | API Field / Derived Metric | Action / Priority |
|---|---|---|
| Recency | totalPurchaseCountLast12Months |
High: ranks active buyers over stale ones |
| Cash evidence | cashPurchasePropertyCount |
High: prioritizes buyers with a proven pattern of non-financed closings |
| Price-band fit | avgPurchasePrice |
Medium: prioritizes buyers whose average price point matches your ask |
| Asset fit | propertyTypeDistribution |
Medium: confirms the buyer invests in the same property type |
| Experience | totalAcquisitionCount |
Medium: distinguishes seasoned investors from one-off buyers |
| Recent disposition activity | totalDispositionCountLast12Months |
Medium: identifies active flippers who need new inventory |
Once the core list is ranked, enrich those buyers with ownership and contact data. Using a skip tracing API allows you to find phone numbers and emails for these prospects instantly.
Enrich, Rank, and Build an Outreach-Ready Buyer List
Enrich Each Buyer Record with Ownership and Contact Data
After you score buyers, the next step is simple: add contact data so the list is ready to use.
Enrich each ranked buyer with verified contact and compliance data before outreach. BatchData can add identity fields like investors[].name, investors[].type, and investors[].classification[], along with mailing addresses, skip-traced phone numbers, and email addresses with deliverability checks. Phone records may also include reachability and compliance flags. For example, contacts[].phones[].reachable shows whether the number was reached in the last 90 days, while contacts[].phones[].dnc and contacts[].phones[].tcpa flag Do Not Call status and TCPA litigator lists.
That last part matters more than people think. Before you pass a list to a sales team, check those flags. If you skip that step, you can waste time and money calling dead numbers or risky contacts.
| Enrichment Category | Key API Fields | Why It Matters |
|---|---|---|
| Identity | investors[].name, investors[].type, investors[].classification[] |
Personalize outreach based on buyer strategy, such as flipper, landlord, or iBuyer |
| Contact | contacts[].phones[].number, contacts[].emails[].tested |
Reach decision-makers with verified contact data |
| Compliance | contacts[].phones[].dnc, contacts[].phones[].tcpa |
Reduce risk from non-compliant outreach |
| Buying Power | currentHoldings.cashPurchasePropertyCount, avgAcquisitionPriceLast36Months |
Show portfolio size and price-point fit for the deal |
| Recency | currentHoldings.totalPurchaseCountLast12Months, investors[].updatedAt |
Put active investors at the top of the list |
Next, collapse duplicate entities so one investor doesn’t show up as several records.
Deduplicate Related LLCs and Define Final Buyer-List Fields
Without deduplication, the same buyer can appear multiple times under different entity names. That pads list counts and leads to repeat outreach, which is messy fast.
Use investors[].parentId to merge related LLCs. Then cross-check the mailing address, manager name, and transaction history before you collapse records. Keep the legal owner name as-is, but normalize names for sorting and CRM import. Also, attach source-record IDs to every row so the linkage logic stays auditable.
Your final buyer record should include:
- Buyer name
- Entity type
- Mailing address
cashPurchasePropertyCount- Recency indicators
- Buyer score
- Source-record IDs
Rank Outreach and Run the Full Workflow End to End
Once the list is cleaned up, rank it into three outreach tiers.
Tier 1 should include recent repeat cash buyers that fit your price band and property type. Tier 2 includes local investors with strong equity and recent activity, even if some deals were financed or used private money. Tier 3 holds older or lower-activity records that need a second verification pass before outreach.
"A wholesaler with a signed contract and no buyer has a liability, not an asset. Buy Box turns the sell side into a data problem instead of a relationship problem." – Ivo Draginov, President, BatchData
The workflow starts with one property address. From there, move through transaction filtering, buyer scoring, enrichment, deduplication, and tiered ranking. Use investors[].updatedAt to refresh the list as new transactions are recorded.
FAQs
How accurate is cash-buyer data from public records?
Cash-buyer data from public records is most useful when it reflects recent, verified deals instead of static ownership records.
County records can tell you who owns a property. But they often don’t tell you whether that entity is still active, buying often in a market, or just made a one-off purchase.
For stronger data quality, focus on profiles built from actual buying behavior, including:
- Cash purchase counts
- Average acquisition prices
- Recent transaction frequency
What should I do if a buyer uses multiple LLCs?
Treat them as one entity with the API’s parent company identifier. The Buy Box API parentId lets you group properties and deal history across LLCs owned by the same investor.
That gives you a clearer view of total portfolio size, cash purchase volume, and buying patterns, so you can prioritize outreach based on full market activity instead of split-up records.
How often should I refresh my cash-buyer list?
You usually don’t need to update your cash-buyer list by hand. The database refreshes daily, so the easier move is to use automated triggers that watch for new matches or status changes 24/7.
For better accuracy, line up your refresh schedule with the type of data you’re tracking:
- Daily for new leads, listing status, and ownership transfers
- Weekly for contact and owner data
- Monthly for AVMs, equity, and loan balances