SalesWeb CivilView Sheriff Foreclosure Sales Scraper avatar

SalesWeb CivilView Sheriff Foreclosure Sales Scraper

Pricing

Pay per event

Go to Apify Store
SalesWeb CivilView Sheriff Foreclosure Sales Scraper

SalesWeb CivilView Sheriff Foreclosure Sales Scraper

Scrapes sheriff sale listings from SalesWeb (Tyler CivilView) — every county the portal publishes, across 18 states. Returns each county's open sales with sheriff number, sale date, plaintiff, defendant and address, plus optional detail-page status, attorney, parcel and judgment/upset amounts.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

10 days ago

Last modified

Share

Extract sheriff sale listings from the SalesWeb (Tyler CivilView) platform — the sheriff-sale portal published by county sheriff's offices and constables across 18 states, New Jersey, Texas, Ohio, Pennsylvania, Delaware, Iowa, Louisiana and Florida among them.

Leave countyIds blank and one run covers every county the portal lists (67 at last count). Each record carries the sheriff sale number, sale date, plaintiff (lender), defendant (owner), property address and a link to that sale's detail page. Turn on fetchDetails to add sale status, plaintiff attorney, parcel identifier and judgment / upset amounts wherever the county publishes them.

What you get

These fields are populated on every run:

FieldDescription
countyFull county + state label as the portal lists it (e.g. "Essex County, NJ")
stateState abbreviation (e.g. "NJ")
sheriff_numberSheriff / civil / case number as published (e.g. "F-22000326")
sales_dateSale date exactly as the county prints it — the format varies by county ("8/14/2026", "08/26/2026 11:00 AM") and is not normalised
plaintiffForeclosing lender / plaintiff name
defendantProperty owner / defendant name
property_addressStreet address
cityCity, split out of the county's address line
zipZIP code, split out of the county's address line
property_idThe portal's PropertyId for this sale
detail_urlLink to this sale's detail page
sale_typeAlways the literal "foreclosure" — see Limitations
first_seenISO timestamp of when this run scraped the record

Detail fields — usually need fetchDetails: true

The five fields below normally come from each sale's own detail page, so on a default run they are typically empty stringsfetchDetails is off unless you turn it on. A handful of counties (e.g. New Castle DE, the two Louisiana parishes) publish one or more of these directly in the listing table itself, so those specific fields can already be populated on a default run for those counties. Even with fetchDetails on, each field is only as complete as the county chooses to publish — the fill rates are measured over 80 records spanning 10 counties in 6 states:

FieldDescriptionMeasured fill
statusThe latest status line the county posts — free text, and the wording differs county to county ("Scheduled", "Re-Scheduled", "Adjourned - Court", "WRIT EXPIRED", "Bankruptcy Hold", "Cancelled")100%
attorneyPlaintiff attorney or firm name89%
parcel_apnThe parcel identifier as printed — an assessor parcel number in Ohio, a "LOT n, BLOCK n" designation in New Jersey, occasionally a longer legal description41%
judgment_amountApproximate judgment amount, for counties that publish one33%
upset_amountApproximate upset amount, for counties that publish one29%

Most New Jersey counties publish either a judgment figure or an upset figure, not both — Bergen and Essex publish only an upset amount, Burlington and Cape May only a judgment amount, and Atlantic publishes both as genuinely distinct numbers. In the non-New-Jersey counties sampled (Philadelphia PA, Allen OH, Palm Beach FL) neither amount was published at all.

Limitations

Worth reading before you build on the output.

  • Open sales only. Each county page splits into an "Open" list and a "Sold / Cancelled" list. This actor returns the Open list. Sales that have already been sold are not included, though a county sometimes leaves a Cancelled status on an entry still sitting in its open list.
  • sale_type is a constant, not a classification. Every record carries "foreclosure". The listing pages do not state a sale type and none is inferred, so a tax sale comes back labelled "foreclosure" too — Philadelphia's city tax sales are the clearest example. The field is kept for schema stability; do not filter on it.
  • Column layouts differ by county, mapped by each county's own header row. Around forty counties currently publish a sales table, in one of fifteen distinct column orders/sets — the actor reads each county's own table header to place values in the right field rather than assuming a fixed position, so a county like Philadelphia PA (Book & Writ | OPA # | Address | Plaintiff) doesn't shift into a neighboring field. A county whose listing page genuinely doesn't publish a given column (Philadelphia has no Sales Date or Defendant column, for example) returns that field empty rather than a guessed value — fetchDetails fills sales_date from the detail page where the listing itself doesn't carry it. If a county ever publishes a layout the actor doesn't recognize, that county's rows are skipped (not saved with guessed field placement) and logged for follow-up.
  • first_seen is per-run, not a first-observed date. It records when this run scraped the row; it is not carried across runs. Key on property_id if you need change tracking of your own.
  • Volume per county varies enormously. Philadelphia County, PA lists roughly 1,476 open sales; Allen County, OH lists 6. About 27 of the 67 counties have no open sales at all on a given day and return nothing — that is the county's own listing being empty, not a failed scrape.
  • maxItems is required. A run submitted without it is rejected before it starts. Set it high rather than leaving it blank if you want everything.

Use cases

  • Distressed property leads — identify properties headed to sheriff sale before they hit the MLS
  • Lender / plaintiff research — track which lenders are most active in foreclosure proceedings per county
  • Title company due diligence — monitor active sheriff sales in target counties
  • Investor deal flow — run weekly to catch newly scheduled sales and adjournments
  • Data aggregation — combine every New Jersey or Ohio county into one dataset for analysis

Input

ParameterTypeRequiredDescription
maxItemsIntegerYesMaximum records to return. A value is required — a run without one is rejected.
countyIdsArrayNoCounty IDs to scrape. Leave blank for every county on the portal.
fetchDetailsBooleanNoOff by default. Turn on to add status, attorney, parcel and amounts from each sale's detail page.
resumeCursorStringNoContinue a previous run where it stopped, without paying again for records already delivered.

The store's prefilled values run Essex County, NJ only, capped at 10 records — clear countyIds and raise maxItems for full coverage.

Finding a county ID

A county's ID is the countyId value in its listing URL on the portal: https://salesweb.civilview.com/Sales/SalesSearch?countyId=2 is Essex County, NJ. (The detail_url in the output carries a PropertyId, which is a different number.)

CountyID
Camden County, NJ1
Essex County, NJ2
Burlington County, NJ3
Bergen County, NJ7
Atlantic County, NJ25
Cape May County, NJ52

Leave countyIds blank to take every county in one run.

How it works

  1. County discovery — enumerates every county the portal lists and, unless you narrow it with countyIds, queues all of them.
  2. Listing — reads each county's open sales list in full; counties are single-page, so nothing is left behind.
  3. Detail enrichment (optional) — with fetchDetails: true, opens each sale's own detail page to add status, attorney, parcel identifier and amounts.

Notes

  • Counties that publish a refresh schedule — Essex County, NJ among them — state that their data updates every 30 minutes between 9 AM and 4 PM, Monday to Friday. Every county page also carries its own "last updated" stamp. Daily or weekly runs will pick up new listings and adjournments.
  • fetchDetails costs one extra page fetch per sale, so a full-portal run with it enabled is substantially longer than one without. Filter with countyIds when you only need a few counties enriched.