← Guides

How-to

How to run Recent Home Sales & New Homeowner Leads Scraper

Step-by-step: the exact input, what each field does, and the rows that come back from 274 town assessor databases.

You sell something people buy in their first months in a house: a new furnace, a roof, a security system, home insurance. The people who just bought in your towns are on public record, in each town assessor’s online database. In Connecticut, 72 towns publish theirs on the same Vision Government Solutions platform, and each one is a separate site. Its Sales Search shows 20 sales a page, and the buyer’s name and mailing address sit on a separate property page per sale. A month of sales in one mid-size town like Fairfield was 36 sales on 28 October 2026, so doing it by hand means 36 page opens plus the searches, for every town you serve.

What you’ll need

Nothing but an Apify account. The actor talks to the assessors’ databases directly.

No API key, no proxy, no CAPTCHA. Our first run on Apify (28 October 2026, a test customer account) went out on Apify’s ordinary connection and returned 3 Fairfield sales in 12 seconds. The proxy setting stays off unless a run reports that a database refused it.

Step 1: Open the actor

Open Recent Home Sales & New Homeowner Leads Scraper on the Apify Store and press Try for free. The actor’s own page on this site lists its live health and pricing.

The Recent Home Sales & New Homeowner Leads Scraper listing on the Apify Store
The listing on the Apify Store. Pricing and the nightly health record are both public.

Step 2: Fill in the input

The input form for Recent Home Sales & New Homeowner Leads Scraper in the Apify Console
The input form, as it appears in the Apify Console.
FieldTypeRequiredWhat it does
statestringnoThe state to search. Covered: the cities, towns and counties whose assessor publishes its records on a Vision Government Solutions online database (274 in all). (default CT)
citiesarraynoCity or town names, e.g. ‘New Haven’ or ‘Canton’. In Virginia and Pennsylvania, a county or independent city, e.g. ‘Gloucester County’. Leave empty to search every city and town in the state.
citystringnoOne city or town; kept for saved tasks and API callers that send one value. Combined with ‘Cities or towns’.
soldWithinDaysintegernoSales recorded in this many days up to today. (default 30)
dateFromstringnoStart date, YYYY-MM-DD. Overrides ‘Sold within the last’.
dateTostringnoEnd date, YYYY-MM-DD. Defaults to today.
propertyTypesarraynoWhich sales to return: single_family, condo, multi_family, vacant_land, commercial, other. (default ['single_family', 'condo', 'multi_family'])
minPriceintegernoThe default of 1 leaves out $0 deeds (transfers between family members or into a trust). Set 0 to include them. (default 1)
maxPriceintegernoOptional upper price limit.
includeOwnerDetailsbooleannoOpen each property’s record for the buyer, the seller, the owner’s mailing address, beds, baths, year built and assessed value. (default True)
maxResultsintegernoSpend cap for the whole run, across every city and town, not per city. (default 1000)

Two fields decide what you get. soldWithinDays has to fit the town’s own posting schedule: when we checked 24 towns on 28 October 2026, four had sales from the week before, most were one to three months behind, and about nine showed nothing since July because they update once a year. If a town comes back empty at 30 days, try 90 before deciding it had no sales. The other is cities: leave it empty and the run covers every covered town in the state (72 in Connecticut), which is what a statewide mailing wants but costs accordingly.

A working input:

{
  "state": "CT",
  "cities": [
    "Bridgeport",
    "Fairfield",
    "Trumbull"
  ],
  "soldWithinDays": 30
}

Step 3: Run it

Press Start. The run log prints one line per town with its sale count and its newest sale date.

In our test runs on 28 October 2026, that input returned 112 sales (43 in Bridgeport, 36 in Fairfield, 33 in Trumbull) in 24 seconds. A run over all 72 Connecticut towns for the same 30 days returned 628 sales in a little over 3 minutes, with 28 towns posting no sales in that window. An empty result is a free notice row saying so, not a silent zero; widen the window before suspecting the actor.

Step 4: Read the output

Each run returns a labelled table, not raw JSON:

The output fields returned by Recent Home Sales & New Homeowner Leads Scraper
The output view: every field the actor returns, named and typed.

Every row looks like this, a real row from a real run:

{
  "state": "CT",
  "city": "Branford",
  "address": "17 BALLOU RD",
  "sale_date": "2026-09-28",
  "sale_price": 340000,
  "property_type": "single_family",
  "model": "Residential",
  "style": "Ranch",
  "living_area_sqft": 710,
  "land_area_sqft": 10454,
  "buyer": "LUCY & DIANE DEVELOPERS LLC",
  "owner_is_buyer": true,
  "owner_mailing_address": "302 FIELD POINT RD, BRANFORD, CT 06405",
  "owner_mailing_zip": "06405",
  "absentee_owner": true,
  "book_page": "1436/0747",
  "previous_sale_price": 208000,
  "previous_sale_date": "2021-04-27",
  "year_built": 1950,
  "bedrooms": 2,
  "bathrooms": 1.0,
  "heat_type": "Hot Water",
  "assessed_value": 202400,
  "appraised_value": 289100,
  "photo_url": "https://gis.vgsi.com/photos/BranfordCTPhotos/0035/BALLOU%20RD%2017_35226.jpg",
  "source_url": "https://gis.vgsi.com/BranfordCT/Parcel.aspx?pid=8075"
}
FieldExample valueMeaning
sale_date, sale_price2026-09-28, 340000When the sale was recorded and for how much
city, state, addressBranfordThe property sold
property_typesingle_familysingle_family, condo, multi_family, vacant_land, commercial or other; plus the town’s own model and style
buyerLUCY & DIANE DEVELOPERS LLCThe new owner, from the sale history on the property record
owner_mailing_address302 FIELD POINT RD, BRANFORD, CT 06405Where the owner gets mail, also split into street, city, state and ZIP
owner_is_buyerTrueTrue when the owner of record (and the mailing address) is this sale’s buyer; false when the town has not updated the record yet
absentee_ownerTrueTrue when the buyer’s mailing address is somewhere else: an investor, landlord or second-home buyer
seller, previous_sale_price, previous_sale_date2021-04-27The previous owner and what they paid

The field people come for is owner_mailing_address, and the one to check before mailing is owner_is_buyer. When a town records a sale before it updates the property record, the owner and address shown are still the seller’s; that was 15 of the 628 Connecticut sales above, and those rows carry no buyer. Filter them out of a welcome mailer. absentee_owner was true on 85 of the 628: those buyers get mail somewhere other than the house, so a door hanger misses them and the mailing address reaches them.

Step 5: Export it

Open the Dataset tab and export to CSV, JSON or Excel, or pull the same rows from the API, which is what you want if this is going to run on a schedule.

What it costs

$0.02 per sale delivered. Notices are free: a town with no sales in the window, a database that did not answer, a run cut short. The three-town input above came to 112 sales, $2.24; the 72-town Connecticut month was 628 sales, about $12.56. Set maxResults to cap a run before you start it. Apify’s platform usage is billed separately per your plan.

Where the data comes from

This reads each town assessor’s online database, hosted by Vision Government Solutions at gis.vgsi.com, directly. Every night a canary runs this actor against that live source and diffs the result against a frozen fixture (what “verified” means).

Vision lists 286 databases across nine states, and we opened every one on 28 October 2026: 274 answer, while 7 have moved to another vendor, 3 Pennsylvania counties ask for a login and 1 returns an error. The sales search pages through postbacks whose row order is not stable between pages; without sorting first, our New Haven test skipped 60 of 179 sales. The actor sorts before paging, so you get every sale once.

See it used

Fairfield County CT New Homeowner Leads turns the three-town input above into a monthly mailing for a home-service company.

For every property in an area rather than only the recent sales, with owner lookups by address, use US Property Records Export & Owner Lookup.

Last updated 2026-10-28