Texas Tax Sale Monitor — 12 Counties, New Listings, No Login
Pricing
from $20.00 / 1,000 listings
Texas Tax Sale Monitor — 12 Counties, New Listings, No Login
Watch tax sales in 12 Texas counties (Harris, Dallas, Travis, Bexar, Tarrant and more) and get only NEW or changed listings: address, cause number, adjudged value, minimum bid, sale date. Daily schedule. No login. MCP-ready. $20 per 1,000 alerts.
Pricing
from $20.00 / 1,000 listings
Rating
0.0
(0)
Developer
Peter Skotte
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Texas Tax Sale Monitor — new delinquent-tax sale listings, daily
Get a daily feed of only the new or changed tax foreclosure sale listings across the big Texas counties —
Harris, Dallas, Travis, Bexar, Tarrant, El Paso, Montgomery, Galveston and more — with the sale date, cause
number, appraisal-district account, address, adjudged value, minimum bid and a Google Maps link. The monitor
remembers every listing it has already reported, so a scheduled run emits just the delta (new or updated),
posts a summary to your webhook, and costs you only for what actually changed.
Built for distressed-property investors, wholesalers and title researchers who want every county's list the day it is posted, not a week later from a paid aggregator.
County coverage
County (counties value) | Source | Fields | Typical posting cadence |
|---|---|---|---|
harris | Harris County Tax Office listing (hctax.net) | full: address, cause, HCAD account, adjudged value, min bid, precinct, legal description, judgment date, tax years | Monthly sale on the first Tuesday; list posted ~3-4 weeks ahead, cancellations flagged up to sale day |
dallas | Dallas County Sheriff online auction (RealAuction) | address, cause, DCAD account, adjudged value, est. min bid, sale number | First Tuesday; items appear ~3 weeks before the sale |
travis | Travis County Constables online auction (RealAuction / realforeclose) | address, cause, TCAD account, adjudged value, est. min bid, precinct | First Tuesday; posted ~15 days ahead |
bexar | Bexar County Clerk foreclosure map, tax layer (maps.bexar.org) | address, city, ZIP, cause (document number), school district, lat/lon | Updated twice a month: ~18 days before the sale and the Friday after |
tarrant | Tarrant County Constable Pct. 3 monthly listing pages | cause number, TAD account, status (For Sale / Withdrawn) | Pages for the next 1-2 sale dates; no address or bid on the county page |
el-paso | El Paso County online auction (RealAuction) | same as Dallas | First Tuesday; posted a few weeks ahead (not every month has a sale) |
montgomery | Montgomery County Constables online auction (RealAuction / realforeclose) | same as Dallas | First Tuesday; not every month has a sale |
galveston, smith, nueces, cameron, hidalgo | County online auction (RealAuction) | same as Dallas | First Tuesday |
Counties whose only public list is not machine-readable are not supported and are skipped with a warning: Fort Bend (published only on the Linebarger portal, whose listing API has been returning server errors), Collin (upcoming sales are posted at the courthouse only; the county site lists struck-off resales by private offer only) and Denton (GovEase auction platform, listings behind a bidder login).
Texas law puts every tax sale on the first Tuesday of the month, 10:00 to 16:00 local time. A county with no scheduled sale for the coming month simply returns zero listings until its next list is posted.
How it works
- Pulls the current sale list for each county in
counties(all upcoming sale dates on the county's calendar). - Applies your
saleTypes,minBid/maxBidandpropertyTypesfilters. - Compares each listing against the monitor's saved state (
county + cause number + account). - Emits a record when the listing is unseen (
changeType: "new") or when its sale date, minimum bid or status changed since it was last reported (changeType: "updated"). - Saves the updated state, then POSTs a run summary to
webhookUrlif set.
State lives in a named key-value store txtaxsale-monitor-<hash of monitorId> in your Apify account, capped
at 50,000 listings (oldest are dropped). Delete the store to reset a monitor.
Input
| Field | Default | Notes |
|---|---|---|
counties | ["harris","dallas"] | Any of the county keys in the table above. Names like "El Paso" or "Harris County" are accepted |
saleTypes | ["tax","resale","struck-off"] | tax original foreclosure sale, resale struck-off property re-offered, struck-off bid off to the county, execution Harris County execution / order-of-sale listings. Empty = all |
minBid, maxBid | unset | Filter on the published minimum / opening bid in USD. Listings with no published bid are excluded when either is set |
propertyTypes | [] | Substring match on the property type where a source publishes one; listings without a type are kept |
maxNewPerCounty | 10 | Cap per county per run. Anything beyond stays unseen and comes out next run |
maxItems | 10 | Overall cap per run, shared round-robin across counties so every county is represented |
firstRunMode | emitAll | emitAll reports every current listing on the first run; baseline records them silently |
webhookUrl | "" | Optional POST target for the run summary |
monitorId | default | One state store per ID — run several watchlists side by side |
proxyConfiguration | none | All sources are reachable from the Apify platform without a proxy |
Recommended setup for a daily feed
- Create a task with your counties and bid range, and set
monitorId(for exampledfw-under-50k). - First run: set
firstRunModetobaseline. This records every listing currently posted, emits nothing, and stops day one from being a 300-row backlog. Skip this if you want the full current list. - Set
maxItemsandmaxNewPerCountyto 500+ so a busy posting day is never truncated. - Schedule the task daily at 07:00 America/Chicago. Counties post and update their lists during the business day; a morning run catches everything from the previous day. Around the third week of each month (when most lists for the first-Tuesday sale go up) a second afternoon run is worth the start fee.
- Point
webhookUrlat Slack, Zapier, Make, or your own endpoint.
The default settings ({}) run in emitAll mode for Harris and Dallas so you see real output on the first try.
Example: DFW and Houston, bids under $50k
{"counties": ["harris", "dallas", "tarrant", "montgomery", "galveston"],"saleTypes": ["tax", "resale"],"maxBid": 50000,"maxNewPerCounty": 500,"maxItems": 2000,"firstRunMode": "baseline","webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ","monitorId": "dfw-houston-under-50k"}
Output
One record per new or updated listing:
{"county": "Harris","state": "TX","saleDate": "2026-10-06","saleType": "tax","status": "For Sale","causeNumber": "201568888","accountNumber": "0720160010046","address": "4114 E TOLIVER ST","city": "HOUSTON","zip": "77016-6239","legalDescription": "The West 50 feet of Lot 46 of Cranford Place, a subdivision in Harris County, Texas ...","propertyType": null,"adjudgedValue": 64263,"minimumBid": 18088.24,"estimatedValue": null,"precinct": "Precinct 1","saleNumber": "1","judgmentDate": "2016-06-29","taxYears": "2013 - 2015","schoolDistrict": null,"source": "Harris County Tax Office (hctax.net)","sourceUrl": "https://www.hctax.net/Property/listings/taxsalelisting","detailUrl": "https://www.hctax.net/Property/listings/saledetail?account=0720160010046","cadUrl": "https://public.hcad.org/records/outsider/hc.asp?acct=0720160010046","mapUrl": "https://www.google.com/maps/search/?api=1&query=4114%20E%20TOLIVER%20ST%2C%20HOUSTON%2C%20TX%2C%2077016-6239","changeType": "new","firstSeenAt": "2026-09-28T19:23:10.318Z","monitorId": "default"}
firstSeenAt is the run in which the listing was first reported; updated records keep their original
firstSeenAt. Fields a county does not publish are null (Bexar has no bids, Tarrant has no address or bid;
open sourceUrl or look the account up at the appraisal district for those).
Webhook payload
POSTed once per run as application/json, also saved as the SUMMARY record in the run's key-value store:
{"monitorId": "dfw-houston-under-50k","runAt": "2026-09-29T12:00:03.118Z","newCount": 4,"updatedCount": 1,"counties": { "harris": { "scanned": 231, "emitted": 3 }, "dallas": { "scanned": 33, "emitted": 2 } },"seenTotal": 812,"baseline": false,"listings": [ { "...first 50 records, same shape as the dataset..." } ]}
Pricing
Pay per event: a small start fee plus a per-listing fee only for records emitted. A daily monitor that finds nothing new costs just the start fee.
Notes
- A listing counts as
updatedwhen its sale date, minimum bid or status changes (for example a Harris County cancellation or a Tarrant County withdrawal). - RealAuction counties are read from the auction calendar for the current month and the next two, so a list posted early for the following month is picked up as soon as it appears.
- Sources are public county and constable sites; the actor paces requests and needs no login or API key.