Property Tax Delinquent Lead Aggregator avatar

Property Tax Delinquent Lead Aggregator

Pricing

Pay per usage

Go to Apify Store
Property Tax Delinquent Lead Aggregator

Property Tax Delinquent Lead Aggregator

Multi-county tax delinquent + pre-foreclosure property aggregator with parcel, owner, balance, and skip-trace search hints. Built for real estate wholesalers and pre-foreclosure investors. Pay per record.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

George Kioko

George Kioko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Real estate wholesalers and pre-foreclosure investors all hit the same wall: every county in the US publishes its delinquent tax list in a different shape. One county dumps a PDF every month. Another posts an ASPX search portal. A third drops an Excel file after the annual tax-lien sale. Buyers who cobble together a workflow across 5 counties spend more time scraping than calling owners. This actor fixes that. One API, one normalized record per delinquent property, across 5 starting counties.

Apify Store Pricing

Why this exists

A real-estate investor on BiggerPockets put it directly: "existing scrapers don't compile diverse information into unified format." Another wrote that he wanted to "get a list of a couple thousand properties and have them all imported into my CRM within an hour." Those two quotes are the entire product brief.

The market does pay for this. Tracerfy charges $0.01 per skip-trace record. DataZapp at $0.03 per match. Mojo runs $59/month unlimited. Those tools serve buyers who already have a list. The list itself is the harder problem. PropStream sells access to multi-county delinquent rolls at $97 to $197 per month per seat. Most of their revenue is the aggregation, not the database.

This actor sits upstream of the skip-trace tools. It pulls the delinquent record from the county source. It normalizes parcel ID, owner, balance, mailing address, and last sale. It hands you a skip-trace URL template you can drop into your existing flow. $0.03 per basic record. $0.05 per fully enriched record with last sale and skip-trace hints.

How it works

/search?county=fulton&state=GA /enrich?parcel_id=&county=
| |
v v
+-----------+-----------+ +-----------+-----------+
| County Adapter | | County Adapter |
| (one of 5): | | (single parcel |
| - Fulton GA | | lookup) |
| - Cook IL | +-----------+-----------+
| - Harris TX | |
| - Maricopa AZ | |
| - Wayne MI | v
+-----------+-----------+ +-----------+-----------+
| | Owner Name Normalizer|
v | (LLC vs individual, |
+-----------+-----------+ | first/last split) |
| Unified Schema | +-----------+-----------+
| (parcel + owner + | |
| balance + stage) | v
+-----------+-----------+ +-----------+-----------+
| | Skip-Trace Hint Gen |
| | (TruePeopleSearch + |
| | FastPeopleSearch + |
| | WhitePages URLs) |
v +-----------+-----------+
+-----------+-----------+ |
| basic record | v
| $0.03 per row | +-----------+-----------+
+-----------------------+ | enriched record |
| $0.05 per row |
+-----------------------+

Endpoints

MethodPathDescriptionCharge
GET/Service info, pricing, county listnone
GET/healthLiveness checknone
GET/countiesList of 5 v1-supported countiesnone
GET/search?county=&state=&min_balance=&limit=Recent delinquent properties from one county$0.03 per result
GET/enrich?county=&state=&parcel_id=Single parcel full enrichment$0.05 per record
POST/enrich/bulk body {records:[{parcel_id, county, state}, ...]} (max 25)Bulk enrichment$0.05 per record

Quick start

# List supported counties
curl -s "https://george-the-developer--property-tax-delinquent-leads.apify.actor/counties" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"
# Search recent delinquent properties in Fulton County, GA
curl -s "https://george-the-developer--property-tax-delinquent-leads.apify.actor/search?county=fulton&state=GA&min_balance=1000&limit=10" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"
# Enrich a single parcel
curl -s "https://george-the-developer--property-tax-delinquent-leads.apify.actor/enrich?county=fulton&state=GA&parcel_id=14F-0001-LL-149-7" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"
# Bulk enrich (max 25 records)
curl -s -X POST "https://george-the-developer--property-tax-delinquent-leads.apify.actor/enrich/bulk" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"records":[{"parcel_id":"14F-0001-LL-149-7","county":"fulton","state":"GA"},{"parcel_id":"14-21-410-005-0000","county":"cook","state":"IL"}]}'

Node.js example

const r = await fetch(
'https://george-the-developer--property-tax-delinquent-leads.apify.actor/search?county=fulton&state=GA&limit=10',
{ headers: { Authorization: `Bearer ${process.env.APIFY_TOKEN}` } }
);
const data = await r.json();
console.log(data.results.map((p) => `${p.parcel_id} | ${p.owner.name} | $${p.delinquency.amount_due}`));

Python example

import os, requests
r = requests.get(
'https://george-the-developer--property-tax-delinquent-leads.apify.actor/search',
params={'county': 'fulton', 'state': 'GA', 'limit': 10},
headers={'Authorization': f"Bearer {os.environ['APIFY_TOKEN']}"},
)
for p in r.json()['results']:
print(p['parcel_id'], p['owner']['name'], p['delinquency']['amount_due'])

Sample response

{
"ok": true,
"record": {
"parcel_id": "14F-001-12-001",
"county": "Fulton",
"state": "GA",
"owner": {
"name": "JOHN SMITH",
"raw_name": "SMITH, JOHN A",
"first_name": "JOHN",
"last_name": "SMITH",
"is_entity": false,
"co_owner": "",
"mailing_address": "PO Box 1234, Atlanta, GA 30301"
},
"property": {
"situs_address": "123 Peachtree St, Atlanta, GA 30303",
"city": "Atlanta",
"state": "GA",
"zip": "30303",
"property_type": "residential",
"land_use": "single-family",
"assessed_value": 250000
},
"delinquency": {
"tax_year": 2024,
"amount_due": 4523.18,
"status": "delinquent",
"first_delinquent_at": "2024-12-31",
"auction_date": "2026-08-15",
"stage": "tax_certificate"
},
"skip_trace_hints": {
"apollo_query": "JOHN SMITH Atlanta, GA",
"truepeoplesearch_url": "https://www.truepeoplesearch.com/results?name=JOHN%20SMITH&citystatezip=Atlanta%2C%20GA",
"fastpeoplesearch_url": "https://www.fastpeoplesearch.com/name/john-smith_atlanta-ga",
"whitepages_url": "https://www.whitepages.com/name/JOHN-SMITH/Atlanta-GA",
"google_query": "https://www.google.com/search?q=%22JOHN%20SMITH%22%20Atlanta%2C%20GA",
"note": "Skip-trace URLs are templates. Visit them or feed into a skip-trace SaaS for actual contact info."
},
"last_sale": {
"date": "2018-04-22",
"price": 215000,
"transfer_type": "warranty_deed"
},
"source": {
"county_url": "https://www.fultoncountyga.gov/inside-fulton-county/fulton-county-departments/tax-commissioner",
"scraped_at": "2026-05-09T14:00:00Z"
}
}
}

Pricing

EventPriceWhat you get
apify-actor-start$0.10 per run (per GB memory)Standby instance warm
delinquent-property$0.03 per recordParcel ID + owner + balance from one county
lead-enriched$0.05 per recordBasic + last sale + skip-trace search hints

For comparison: PropStream lists multi-county delinquent rolls at $97 to $197 per month per seat. At $0.05 per enriched record, you can pull 2,000 enriched records for $100. That sets the umbrella this is sitting under. Tracerfy at $0.01 per skip-trace record assumes you already have the upstream list. This actor is the upstream list, normalized.

Use cases

  • Real estate wholesalers building motivated-seller lists across multiple counties without paying for PropStream subscription seats
  • Pre-foreclosure investors targeting tax-certificate and sheriff-sale stages before auction date
  • Distressed-property funds running parcel-level due diligence on county tax rolls
  • County data brokers bundling delinquent-property feeds into their own products
  • Real-estate-focused SaaS that needs a normalized parcel + owner + balance feed for a wholesaler-facing UI

Honest tradeoffs (v1)

  • v1 covers 5 counties: Fulton GA, Cook IL, Harris TX, Maricopa AZ, Wayne MI. Each has the highest delinquent-property volume in its state and the cleanest public data portal.
  • v1 ships parcel lookup adapters. The bulk monthly delinquent-list parsers (county PDFs and Excel files) arrive in v1.1. Today the /search endpoint returns a sample list with the schema shape; the lookup endpoint returns live data per parcel.
  • v2 expands to ASPX-postback counties (Cobb GA, Mecklenburg NC, Florence SC, Oakland MI). These have stricter anti-bot. Adding them requires more session-state plumbing than the v1 5 needed.
  • Skip-trace hints are URL templates pointing at public people-search aggregators (TruePeopleSearch, WhitePages, FastPeopleSearch). The hints are not actual contact info. Pair the result with my Email Validator API for SMTP verification once you find an email, and my Domain WHOIS Lookup when the owner is an LLC and you need the registrant.
  • Owner-name parsing is heuristic. County tax rolls store names as "SMITH, JOHN A" or "SMITH JOHN" or "ACME LLC". The extractor flags entities (LLC, Trust, Corp) and splits first/last for individuals. For two-token names without a comma, the extractor flags low confidence on name order so downstream filters can drop ambiguous rows.

Test-payload short-circuit

Pass county=test or county=example (or parcel TEST-0001) and the actor returns {ok:true, mocked:true} with no charge. Use these for CI smoke tests without burning credit.

curl -s "https://george-the-developer--property-tax-delinquent-leads.apify.actor/search?county=test&_test=true" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"
# {"ok":true,"mocked":true,"count":0,"results":[],"reason":"test-payload short-circuit"}

More from this developer

Built by George The Developer. Source-of-record at github.com/the-ai-entrepreneur-ai-hub/property-tax-delinquent-leads-docs.