Distressed Property Scraper — Tax Delinquent & Pre-Foreclosure avatar

Distressed Property Scraper — Tax Delinquent & Pre-Foreclosure

Pricing

from $60.00 / 1,000 enriched leads

Go to Apify Store
Distressed Property Scraper — Tax Delinquent & Pre-Foreclosure

Distressed Property Scraper — Tax Delinquent & Pre-Foreclosure

Pull a tax delinquent properties list, pre-foreclosure list, sheriff sale list, code violations, vacant property & probate leads from US county/city records — fused per property, scored for distress, and skip-traced to a callable owner. Motivated seller leads, pay-per-event, first 20 rows free.

Pricing

from $60.00 / 1,000 enriched leads

Rating

0.0

(0)

Developer

Domin Vo

Domin Vo

Maintained by Community

Actor stats

0

Bookmarked

30

Total users

14

Monthly active users

4 days ago

Last modified

Share

Distressed Property AI Scraper turns every public distress signal into clean motivated seller leads — a tax delinquent properties list, pre-foreclosure list, sheriff sale list, code violations, and probate leads — fused per property, scored, and enriched to a callable owner.

Pull a tax delinquent properties list, a pre-foreclosure list, a sheriff sale list, a tax lien properties list, code violations, vacant property registries, and probate filings from official county and city sources across 17+ US metros. The Actor deduplicates every signal onto one property, computes a DISTRESS-SCORE, and optionally does skip tracing to find the owner's phone — giving real estate wholesalers and fix-and-flip investors a motivated seller lead list that rivals PropStream credits at a fraction of the cost.

It's a real PropStream alternative / API for the automation buyer: pulled direct from county and city open data (Socrata SODA, ArcGIS REST, county recorder feeds), not a reseller feed that can vanish or raise prices.

What does Distressed Property AI Scraper do?

It scrapes pre-public distress triggers, fuses them per property, and scores motivation. Pick the mode that matches the list you want:

Lead list you wantMode to start withWhat you get
Tax delinquent properties list / tax lien properties listtax_delinquentUnpaid-tax & tax-lien parcel rows by county
Pre-foreclosure listpre_foreclosureNotice-of-default rows from the county recorder
Sheriff sale list / trustee sale list / foreclosure auction listforeclosure_auctionsSheriff & trustee sale dates and parcels
Code violation property listcode_violationsAddress + violation type, 13–17 metros
Vacant property list / condemned property listvacant_registryRegistered vacant / blighted / condemned parcels
Probate leads (real estate)probate_filingsDecedent + parcel from county probate
Absentee owner listabsentee_ownerDeed-vs-mailing mismatch owners
High equity property listhigh_equityAssessment-vs-mortgage equity headroom
Fused distress scoredistress_matchOne row per property, all stacked signals, scored
Enriched callable leadenriched_leadDistress match + owner name, mailing, phone

All data is pulled direct from free public sources — Socrata SODA, ArcGIS REST, county recorder feeds — not from a reseller that can vanish or raise prices.

Why use this motivated seller leads scraper?

  • Beat the market. Catch motivated sellers before they list publicly. Tax-delinquent, pre-foreclosure, and sheriff-sale owners are weeks to months ahead of the MLS.
  • One API, every trigger. Tax delinquent list + tax liens + code violations + vacant property list + pre-foreclosure + probate, all in one run. No juggling five subscriptions.
  • The fusion moat. Other tools dump raw events. This Actor deduplicates signals onto a single parcel key and hands you a ranked distress score — so your dialer works the hottest leads first.
  • Built-in skip tracing for real estate. Optionally enrich any distress match to a callable owner phone and mailing address — no separate skip-trace subscription.
  • Price vs incumbents. $0.06 per enriched lead (owner + phone) vs $0.12+ per PropStream credit. The first 20 raw signal rows per run are free; enriched leads are billed per lead from the first.
  • AI-first output. Clean structured JSON with a distress score, ready for a wholesaler's dialer, an LLM workflow, or a spreadsheet.
  • No reseller dependency. Data is fetched directly from official city/county open-data portals — a true source-direct PropStream alternative, not a third-party feed that can vanish.

Who is this for?

PersonaBest modes
P1 — Real estate wholesalers (wholesale real estate leads)enriched_lead, distress_match, pre_foreclosure, tax_delinquent, probate_filings
P2 — Fix-and-flip / buy-and-hold investorsdistress_match, code_violations, vacant_registry, high_equity, absentee_owner

How to use Distressed Property AI Scraper

  1. Open the Actor on Apify and click Try for free.
  2. Pick a mode: start with code_violations or tax_delinquent for the fastest signal.
  3. Set cities (e.g. ["Chicago", "Philadelphia"]) or counties for county-based modes.
  4. For enriched_lead, just pick the mode — owner contact is resolved automatically via a built-in skip-trace step. You're billed $0.06 per fully enriched lead, from the first lead (enriched leads have no free tier; the 20-free-rows allowance covers raw signal rows).
  5. Click Save & Start and download results from the Output tab.

Quickest first test: leave the default mode as code_violations, set cities to ["Chicago"], and run. You'll get signal rows in under 2 minutes.

Input example

{
"mode": "distress_match",
"cities": ["Chicago", "Philadelphia"],
"signals": ["code_violations", "tax_delinquent", "vacant_registry"],
"output_format": "json"
}

For enriched leads with skip tracing — owner contact is resolved automatically via an integrated skip-trace step, so no extra setup is required:

{
"mode": "enriched_lead",
"metros": ["Philadelphia"],
"min_signals": 2,
"output_format": "json"
}

Output

signal_record (raw distress signal)

{
"sha256": "a3f9c1...",
"mode": "code_violations",
"parcel_key": "1420-N-CLARK-ST-CHICAGO-IL-60610",
"address": "1420 N Clark St, Chicago, IL 60610",
"signal_date": "2026-05-01",
"payload": {
"violation_type": "FAILED EXTERIOR",
"status": "OPEN",
"source": "chicago_socrata",
"dataset_id": "wvhk-k5uv"
}
}

distress_match (fused + scored)

{
"sha256": "b7d2e8...",
"mode": "distress_match",
"parcel_key": "1420-N-CLARK-ST-CHICAGO-IL-60610",
"address": "1420 N Clark St, Chicago, IL 60610",
"signal_date": "2026-05-01",
"payload": {
"distress_score": 7.4,
"signal_count": 3,
"signals": ["code_violations", "tax_delinquent", "vacant_registry"],
"absentee_owner": true,
"days_since_oldest_signal": 42
}
}

enriched_lead (callable owner)

{
"sha256": "c9a4f2...",
"mode": "enriched_lead",
"parcel_key": "1420-N-CLARK-ST-CHICAGO-IL-60610",
"address": "1420 N Clark St, Chicago, IL 60610",
"signal_date": "2026-05-01",
"payload": {
"distress_score": 7.4,
"signal_count": 3,
"signals": ["code_violations", "tax_delinquent", "vacant_registry"],
"enriched": true,
"owner_name": "JAMES R EXAMPLE",
"owner": { "full_name": "JAMES R EXAMPLE", "givenname": "JAMES", "surname": "EXAMPLE" },
"mailing_address": "500 W Madison St, Chicago, IL 60661",
"phones": ["+13125550123"],
"emails": ["james.example@example.com"]
}
}

You can download results as JSON, CSV, Excel, or NDJSON. JSON streams to the Apify dataset; other formats are saved as files in the key-value store.

Data fields

FieldMeaning
sha256Stable fingerprint per record — use for change detection between runs
modeThe signal or composite mode that produced this row
parcel_keyNormalized USPS Pub-28 address key — stable dedup identifier across sources
addressRaw address string from the source
signal_dateDate the signal was recorded at the source
payload.distress_scoreComputed DISTRESS-SCORE (see explainer below) — only on distress_match / enriched_lead
payload.signal_countNumber of distinct distress signals stacked on this parcel
payload.signalsList of signal modes that fired on this parcel
payload.owner_nameSkip-traced owner name — only on enriched_lead
payload.mailing_addressSkip-traced owner mailing address — only on enriched_lead
payload.phonesSkip-traced phone numbers (list) — only on enriched_lead
payload.emailsSkip-traced emails (list, when available) — only on enriched_lead

DISTRESS-SCORE explainer

The DISTRESS-SCORE is a weighted sum of all signals stacked on one parcel, with owner-state multipliers.

Signal weights (additive):

SignalBase weightWhy
tax_delinquent3.0Financial default — highest urgency
pre_foreclosure3.0Active foreclosure timeline — time-critical
foreclosure_auctions2.5Sheriff/trustee sale date set — near-term forced sale
probate_filings2.0Estate/heir — motivated to liquidate
code_violations1.5Deferred maintenance — can't or won't fix
vacant_registry1.5Abandoned / blighted — owner disengaged
demolition_permits1.0City has given up — owner likely motivated

Owner-state multipliers:

ConditionMultiplier
absentee_owner (deed vs mailing mismatch)×1.3
high_equity (assessment vs mortgage headroom)×1.2

Score = sum of signal weights × applicable multipliers. A Chicago property with tax_delinquent + code_violations + vacant_registry and an absentee owner scores (3.0 + 1.5 + 1.5) × 1.3 = 7.8.

Scores above 5 are strong leads for a wholesaler's dialer. Scores above 8 suggest multiple financial defaults — prioritize these.

PropStream alternative: vs PropStream, BatchLeads & DealMachine

Looking for a PropStream alternative, a PropStream API, or a BatchLeads / DealMachine alternative you can automate? This Actor steals the enterprise vocabulary — motivated seller, distress signals, skip trace, absentee owner, high equity — and undercuts on per-lead price with a pure API.

This ActorPropStreamBatchLeadsDealMachine
AccessAPI-first (Apify)Web app + limited APIWeb app + APIApp (driving for dollars)
Pricing$0.06 / enriched lead (raw signal rows: 20 free/run)~$100/mo seat + credits~$100/mo + skip credits~$60–120/mo + credits
Data sourceSource-direct county/city open dataAggregated third-party feedAggregated feedAggregated feed
Cross-signal fusionYes — scored distress matchNo (filter flags)NoNo
Pre-public triggersYes (tax, NOD, probate, sheriff sale)PartialPartialLimited

Why it wins: PropStream charges $0.12+ per phone-enriched lead on credits; this Actor delivers the same callable lead for $0.06, source-direct, on your own schedule and format. No seat fee, no monthly minimum.

How much does it cost to pull motivated seller leads?

This Actor uses pay-per-event pricing. The first 20 raw signal rows per run are free; enriched leads are billed per lead from the first.

Output typePrice per rowFree tierWhat you get
Raw signal record$0.002first 20/run freeOne address + signal event
Owner attribute$0.003first 20/run freeAbsentee owner / high-equity flag
Distress match (fused)$0.02first 20/run freeOne property, all signals stacked, scored
Enriched lead (callable)$0.06billed from row 1Distress match + owner name, mailing, phone

vs PropStream credits: PropStream charges $0.12+ per phone-enriched lead. This Actor delivers the same callable lead for $0.06 — and you control the data source, schedule, and format.

For full pricing, check the Pricing tab on the Actor page.

Tips for best results

  • Start with code_violations in Chicago — dense, daily-updated, fast to verify.
  • Run distress_match before enriched_lead — filter by distress_score > 4 before paying for skip tracing.
  • For county modes (pre_foreclosure, tax_delinquent, foreclosure_auctions), the quality varies by county. NYC, Cook County (Chicago), and Philadelphia are the most reliable starting points.
  • Use output_format: "csv" to open results directly in Excel or import to your dialer.

Use from Python

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("dominvo/distressed-property-ai-scraper").call(run_input={
"mode": "distress_match",
"cities": ["Chicago"],
"signals": ["code_violations", "tax_delinquent"],
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["payload"]["distress_score"], row["address"])

FCRA Disclaimer

This Actor is intended for making real estate purchase offers and investment research only.

Data from this Actor may NOT be used for:

  • Tenant screening or rental decisions
  • Credit decisions or creditworthiness evaluation
  • Employment screening or background checks
  • Any other purpose regulated by the Fair Credit Reporting Act (FCRA), 15 U.S.C. § 1681 et seq.

Using this data for FCRA-regulated purposes without complying with FCRA requirements is illegal. You are solely responsible for your use of the output.

FAQ and support

Is this a PropStream alternative?

Yes — it's a source-direct, API-first PropStream alternative for the automation buyer. Instead of a monthly seat plus credits, you pay per result ($0.06 per enriched lead) and pull data straight from county/city open-data portals. It also serves as a PropStream API, BatchLeads API, or DealMachine alternative for anyone who wants motivated seller leads inside their own workflow.

The source data is pulled from official public government portals (city open-data APIs, county recorder sites). Accessing public records for investment research is legal in the US. You are responsible for how you use the results — see the FCRA disclaimer above.

Does this scrape PropStream or BatchLeads?

No. Data is pulled directly from official city/county open-data sources (Socrata, ArcGIS, county recorder feeds). No third-party reseller is involved.

Which cities and counties are covered?

Socrata cities: NYC, Chicago, Los Angeles, Dallas, Austin, Fort Worth, San Francisco, Seattle. ArcGIS cities: San Jose, Columbus, Charlotte, Indianapolis, Washington DC, Philadelphia. County modes (pre_foreclosure, tax_delinquent, foreclosure_auctions, probate_filings) coverage varies — NYC, Cook County (Chicago), and Philadelphia are the gold tier with most reliable data.

What is skip tracing and why is it separate?

Skip tracing is the process of resolving a property owner's name, phone number, and mailing address from public records. This Actor handles it for you behind the enriched_lead mode — owner contact is resolved automatically via an integrated skip-trace step, so there's no separate subscription to wire up. It's isolated to enriched_lead so you only pay the lead price ($0.06) when you actually need a callable owner — never for raw signals or scored matches.

Can I schedule a daily tax delinquent or pre-foreclosure list?

Yes. Use Apify schedules to run the Actor daily, weekly, or on any cron. Each record carries a stable SHA-256 fingerprint, so you can dedupe against your prior pulls on your side.

Where do I get help?

Open the Issues tab on the Actor page for bugs, missing cities, or feature requests.