Property Sales Records - US Home Sale Prices & Comps avatar

Property Sales Records - US Home Sale Prices & Comps

Pricing

from $2.00 / 1,000 property sale records

Go to Apify Store
Property Sales Records - US Home Sale Prices & Comps

Property Sales Records - US Home Sale Prices & Comps

Property sales records with recorded sale prices and comps from official public records: NYC (5 boroughs), Cook County IL, Maryland (24 counties), Connecticut (169 towns), Norfolk VA. Sale date, price, address, ZIP, parcel ID, sq ft, year built, arm's-length flag. $2.00 per 1,000 sales.

Pricing

from $2.00 / 1,000 property sale records

Rating

0.0

(0)

Developer

OFFGRID LABS

OFFGRID LABS

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Property sales records: US home sale prices and comps from official county and state data

TL;DR: Property Sales Records returns recorded property sales from the official open-data APIs of New York City (5 boroughs), Cook County IL (Chicago), Maryland (all 24 counties), Connecticut (all 169 towns) and Norfolk VA in one unified format: sale date, sale price, address, ZIP, parcel ID, property type and class, year built, building and land area, price per sq ft, assessed value, sales ratio, deed type and an arm's-length flag. It is built for real-estate investors, appraisers, agents, proptech teams, lenders and AI agents that need sold-price comps from the public record rather than listing sites. No buyer, seller or owner names are ever returned. You pay $2.00 per 1,000 sales saved.

All data comes from official government Socrata open-data APIs. No browser, no login, no proxy, no Zillow scraping.

Sources

Source IDCoverageOfficial datasetUpdate cadence
nycNew York City, all 5 boroughsNYC Dept. of Finance Rolling Calendar Sales (data.cityofnewyork.us, usep-8jbt)Monthly, rolling 12 months
cook-countyCook County, IL (Chicago and suburbs)Cook County Assessor Parcel Sales (wvhk-k5uv) + parcel addresses (3723-97qp)Weekly, 1-3 month recording lag
marylandMaryland, all 24 countiesSDAT Real Property Assessments (opendata.maryland.gov, ed4q-f8tm), latest sale per parcelWeekly
connecticutConnecticut, all 169 townsOPM Real Estate Sales 2001-2024 (data.ct.gov, 5mzw-sjtu), sales of $2,000+Annually (by Oct 1 list year)
norfolk-vaNorfolk, VAProperty Assessment and Sales (data.norfolk.gov, qva7-tzrf)Current fiscal year

What data you get

One dataset row per recorded sale, with the same fields for every source. Values a source does not publish are null, never guessed.

FieldWhat it isExample
source, sourceName, stateSource ID, coverage, statemaryland, Maryland (all 24 counties), MD
county, city, neighborhoodLocation as publishedBaltimore, GWYNN OAK
saleDateRecorded transfer date (YYYY-MM-DD)2026-11-03
salePriceSale price / consideration, USD386000
pricePerSqftsalePrice / buildingAreaSqft337.41
address, unit, zipProperty address (never a mailing address)1303 DORCHESTER AVE, 21207
parcelIdParcel / PIN / BBL / account number04010122450050
propertyTypeNormalised: Residential, Condo / co-op, Multi-family, Commercial / industrial, Vacant land, Exempt / institutional, OtherResidential
propertyClassClass as published by the sourceResidential (R)
yearBuilt, buildingAreaSqft, landAreaSqft, unitsBuilding facts where published1942, 1144
assessedValue, salesRatioAssessed value and assessed / sale ratio214100, 0.5547
deedType, documentIdDeed / conveyance type and recording numberPrivate arms-length transfer, Improved (1)
isArmsLengthtrue / false when the source flags it, null if unknowntrue
latitude, longitudeCoordinates (Maryland, Connecticut)39.298072, -76.727057
recordUrl, datasetUrl, sourceUrlOfficial record page, dataset, API queryhttps://opendata.maryland.gov/d/ed4q-f8tm
rawEvery non-personal column the source publishes (optional)

Use cases

  • Real-estate investors and wholesalers: pull every sale in a ZIP or neighbourhood for comps and price-per-sq-ft trends.
  • Appraisers and agents: arm's-length comparable sales with parcel IDs and links to the official record.
  • Proptech, lenders and analysts: one schema across NYC, Chicago, Maryland, Connecticut and Norfolk for AVMs, dashboards and sales-ratio studies.
  • Tax-appeal consultants: compare assessed values with recent sale prices (salesRatio).

How to get property sales records

  1. Pick Sources (or leave empty for all 5).
  2. Set Sold within last N days (default 90) or a fixed Sold on or after / Sold on or before date (YYYY-MM-DD).
  3. Optional filters: ZIP codes or prefixes (100, 21207), City / county / neighborhood contains (Brooklyn, Chicago, Hartford), Property types, Minimum / Maximum sale price (USD), Arm's-length sales only.
  4. Set Max sales per source (default 200; 0 = no limit) and click Start. For a monthly comps feed, schedule a run with Sold within last N days = 31.

Input example

{
"sources": ["nyc", "cook-county"],
"soldWithinDays": 90,
"zipCodes": ["112", "606"],
"propertyTypes": ["Residential", "Condo / co-op"],
"minPrice": 100000,
"armsLengthOnly": true,
"maxItemsPerSource": 500
}

Output example

{
"source": "maryland",
"sourceName": "Maryland (all 24 counties)",
"state": "MD",
"county": "Baltimore",
"city": "GWYNN OAK",
"neighborhood": null,
"saleDate": "2026-11-03",
"salePrice": 386000,
"pricePerSqft": 337.41,
"address": "1303 DORCHESTER AVE",
"unit": null,
"zip": "21207",
"parcelId": "04010122450050",
"propertyType": "Residential",
"propertyClass": "Residential (R)",
"yearBuilt": 1942,
"buildingAreaSqft": 1144,
"landAreaSqft": null,
"units": 1,
"assessedValue": 214100,
"salesRatio": 0.5547,
"deedType": "Private arms-length transfer, Improved (1)",
"documentId": "000000",
"isArmsLength": true,
"latitude": 39.298072,
"longitude": -76.727057,
"recordUrl": "https://sdat.dat.maryland.gov/RealProperty/Pages/viewdetails.aspx?County=04&SearchType=ACCT&District=01&AccountNumber=0122450050",
"datasetUrl": "https://opendata.maryland.gov/d/ed4q-f8tm",
"sourceUrl": "https://opendata.maryland.gov/resource/ed4q-f8tm.json?...",
"scrapedAt": "2026-11-03T14:41:21.301Z"
}

A per-source summary (saved, scanned, requests, errors) is stored in the key-value store record RUN_SUMMARY.

How much does it cost to get property sales data?

Pay per event: filters run before saving, so you only pay for sales you keep. Compute is included. The price is the same on every Apify plan.

EventCharged whenPrice
saleOne property sale saved$2.00 per 1,000 ($0.002 each)
apify-actor-startOnce per run (Apify's standard start fee)$0.00005

Worked examples

  • 1,000 sales = 1,000 × $0.002 = $2.00 (+ $0.00005 start fee).
  • Comps for one Brooklyn ZIP over 12 months (about 400 sales): $0.80.
  • A monthly feed of all arm's-length Maryland sales over $100,000 (about 5,000 a month): $10.00 per month.

Set Maximum cost per run in the run options; the actor stops cleanly at the limit and never charges twice for the same sale.

How it compares (by approach)

This actor (official open data)Listing-site scrapers (Zillow, Redfin, Realtor)County-records lookup actorsCommercial property-data APIs
SourceRecorder / assessor / finance-department datasetsListing portalsCounty assessor sites, one parcel at a timeAggregated public records
Sale priceRecorded considerationListed / reported sold priceVariesRecorded
Coverage5 jurisdictions, every recorded saleNationwide, listed homes onlyPer lookupNationwide
Non-arm's-length flag, deed type, parcel IDYes, where publishedRarelySometimesYes
Personal namesNever returnedAgent namesOften owner namesOwner names
Blocking riskNone (public APIs)High (anti-bot, proxies)MediumNone
Cost$2.00 per 1,000 salesabout $0.90-$3.80 per 1,000about $45-$50 per 1,000 recordsSubscription, often $100s per month

FAQ

Where can I find recent home sale prices for comps?

Run this actor with Sold within last N days and a ZIP code or Locality filter. Each row has the recorded sale price, date, address, parcel ID and, where published, building area and price per sq ft.

Which areas are covered?

New York City (all 5 boroughs), Cook County IL (Chicago), all 24 Maryland counties, all 169 Connecticut towns and Norfolk VA. More jurisdictions that publish sales on Socrata can be added on request.

Does it include buyer, seller or owner names?

No. Buyer, seller, grantor, grantee and owner columns are never output, not even in the optional raw record. The data describes the property and the transaction only.

How fresh is the data?

As fresh as each source: Maryland weekly, Cook County weekly with a 1-3 month recording lag, NYC monthly (rolling 12 months), Norfolk for the current fiscal year, and Connecticut annually. If a recent window returns nothing for Connecticut, widen Sold within last N days to 400+.

How do I keep only real market sales?

Turn on Arm's-length sales only. It drops sales the source flags as non-arm's-length (Cook County sale filters, Maryland conveyance codes, Connecticut non-use codes, NYC nominal transfers of $10,000 or less). Sales with no flag (null) are kept. A Minimum sale price (default $1,000) also removes nominal transfers.

Why are some fields empty?

Sources publish different columns: for example NYC does not publish assessed values, Cook County sales carry no building area, and Connecticut has no ZIP codes. Missing values are null, never estimated.

Can I filter by ZIP code, property type or price?

Yes. ZIP codes accepts full ZIPs or prefixes, Property types uses the normalised types listed above, and Minimum / Maximum sale price are applied server-side so you only pay for matching sales.

All data comes from official government open-data APIs published for public reuse under each portal's terms. The actor keeps to one request per second per portal and returns no personal names.

Can an AI agent use this property sales API?

Yes. Through the Apify MCP server an agent can find it with search-actors, read the input schema and run it, for example "arm's-length condo sales in Brooklyn ZIP 11201 in the last 90 days". See Integrations.

Something wrong?

Open an issue on the Issues tab; we aim to respond within 24 hours.

Integrations

  • API: POST https://api.apify.com/v2/acts/offgrid-labs~property-sales-records/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN> with the input JSON as the body returns the sales directly (runs under 5 minutes; otherwise start a run and read its dataset).
  • Python / JavaScript: pip install apify-client / npm install apify-client, then client.actor("offgrid-labs/property-sales-records").call(run_input={...}).
  • No-code: Apify's integrations for Make, Zapier and n8n, plus Google Sheets, Slack, webhooks and Schedules (for example new sales in your ZIPs into a sheet every week).
  • MCP / AI agents: add https://mcp.apify.com?tools=offgrid-labs/property-sales-records to your MCP client to expose this actor as a tool.

Changelog

  • 2026-11-03 · First release: NYC, Cook County (with parcel-address join), Maryland, Connecticut and Norfolk VA via official Socrata APIs; unified schema with price per sq ft, sales ratio and arm's-length flag; ZIP / locality / type / price filters; buyer, seller and owner names never output; RUN_SUMMARY.
ActorWhat it does
US Building Permits ScraperNew construction, renovation and demolition permits from 12 US cities
Local Business Leads ScraperContractors, agents and other local businesses by category and city
Company Registry Lookup (KYB)Official company records for LLC buyers and developers

// OFFGRID LABS ─────────────────────────────────────────────
// status: monitored 24/7 by a self-hosted agent swarm
// health checks: every 6h · auto-repair + rollback on failure
// sources: official public APIs and open data only
// support: open an issue — human-reviewed response within 24h
// ───────────────────────────────────────────────────────────