US Property Lookup & Listing Scraper by APN/Parcel
Pricing
$0.008 / property found
US Property Lookup & Listing Scraper by APN/Parcel
Give a US parcel number (APN), get the property's address from the county parcel map, then its Zillow / Redfin record: price, estimate, beds, baths, size, photos and listing link. Pay per property found.
Pricing
$0.008 / property found
Rating
0.0
(0)
Developer
ScrapeBench
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 hours ago
Last modified
Categories
Share
Pain points
- Zillow, Redfin and Realtor.com do not search by parcel number: in our 2026-10-29 test, Zillow's and Realtor.com's own search boxes resolved 0 of 10 known APNs.
- Turning a list of APNs into addresses means opening each county's parcel map, one parcel at a time, and every county's map works differently.
- County rolls write addresses a listing site cannot find: '0010 Dunkin DR (CR 521)' in 'Unincorporated Summit County', with no ZIP.
What we solve
- Looks each parcel number up in the county's or state's public parcel map and reads the property address from it.
- Cleans that address into a postal one (leading zeros and county-road tags removed; the postal town and ZIP from the US Census geocoder when the roll has none) and looks it up on Redfin, then Zillow.
- Returns one row per parcel number, and says plainly why when there is no property: state not covered, parcel not found, no street address on the roll, or no listing.
Summary
Give it US parcel numbers (APNs) written STATE/County/APN and it returns each property's Zillow or Redfin record: address, property type, beds, baths, living area, lot size, year built, price or estimate, photos and the listing link, plus the parcel's own address as the county roll writes it. Step one reads the county's public parcel map, so coverage goes state by state: statewide in Arkansas, California, Colorado, Connecticut, Florida, Idaho (13 counties), Indiana, Massachusetts, Minnesota (opt-in counties), Montana, New Jersey, New York, North Carolina, Ohio, Utah, Vermont, Washington and Wisconsin, plus big counties in 16 more states (Cook IL, Dallas and Tarrant TX, Maricopa AZ, Washoe NV, Philadelphia PA and more). A parcel number repeats across counties, so the county is required. You pay only for a parcel number that reaches a listing-site property; every other row is free and says why.
Who it's for
- Real-estate investors working from tax-delinquent, probate or auction lists that carry parcel numbers, not addresses
- Title, appraisal and lending teams matching assessor records to market listings
- Land and property data teams joining parcel datasets to listing data
- Agents and wholesalers researching a list of parcels in a county
How to use
Set the input, run the actor, and collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API). Example input:
{"apns": ["CA/Santa Clara/00361019","CO/Adams/0171901104005"]}
See Inputs below for every available field.
What you get
One row per record:
| Field | Description |
|---|---|
apn | The parcel number you asked for |
found | True when the parcel reached a listing-site property |
county, parcelId, parcelAddress | The county, and the parcel number and property address as the county roll writes them |
searchedAddress | The postal address sent to the listing sites |
address, city, state, zip | The property as the listing site resolved it |
propertyType, beds, baths, sqft, lotSizeSqft, yearBuilt | Core facts from the listing site |
sourceUrl | The listing page |
images, floorPlans | Photos and floor plans the listing publishes ([] when none) |
source | redfin or zillow |
notice, notice_type | On a free row: why there is no property (not_covered, not_found, no_address, no_match, blocked, input_error) |
Sample:
{"apn": "CA/Santa Clara/00361019","county": "Santa Clara","parcelId": "00361019","parcelAddress": "745 GARLAND DR","searchedAddress": "745 GARLAND DR, PALO ALTO, CA 94303","found": true,"address": "745 Garland Dr","city": "Palo Alto","state": "CA","zip": "94303","propertyType": "Single Family Residential","beds": 5,"baths": 4.5,"sqft": 4110,"lotSizeSqft": 12722,"yearBuilt": 2012,"estimatedValue": 8864967,"price": 6750000,"priceLabel": "Last Sold Price","lastSoldDate": "2018-08-09","status": "Sold","taxAssessedValue": 7680343,"sourceUrl": "https://www.redfin.com/CA/Palo-Alto/745-Garland-Dr-94303/home/1210666","source": "redfin"}
Inputs
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
apns | no | array | ["CA/Santa Clara/00361019", "CO/Adams/0171901104005"] | Assessor parcel numbers, one per line, written STATE/County/APN, e.g. 'CO/Summit/400358' or 'CA/Alameda/66-2763-16'. A parcel number is only unique within its county, so the county is required (or set it once below). Write the APN as the county does; dashes and spaces are optional. |
apn | no | string | — | One parcel number; kept for saved tasks and API callers that send one value. Combined with 'Parcel numbers'. |
stateHint | no | string | — | Two-letter state for bare parcel numbers (no 'STATE/County/' prefix), e.g. 'CO'. |
countyHint | no | string | — | County for bare parcel numbers, e.g. 'Summit'. Used with 'State'. |
source | no | string | "auto" | Where to look the address up. 'Redfin, then Zillow' tries Redfin first and falls back to Zillow. 'All' also checks Realtor.com through Apify's Web Fetch with YOUR Apify account, so Apify bills you for that separately (about $0.0015 a page). |
proxyConfiguration | no | object | {"useApifyProxy": false} | Optional. The county and state parcel maps answer without a proxy; set one only if a map refuses Apify's IPs. |
Pricing (Pay Per Event)
You pay per result (property-found) — no charge for empty runs. Example: 100 properties found at $0.008/result ≈ $0.80.
Example: 100 parcel numbers that each reach a property cost $0.80; parcel numbers that do not are free. With 'All' sites selected, Realtor.com pages are opened through Apify's Web Fetch on your account and billed by Apify separately (about $0.0015 a page). Apify platform usage is billed separately per your plan.
Use cases
- Tax-sale and auction lists: turn the county's list of parcel numbers into addresses with beds, baths, size and an estimate.
- Parcel dataset enrichment: add the listing link, photos and property facts to rows keyed by APN.
- Portfolio checks: see which of a set of parcels is listed for sale right now.
- Due diligence: confirm the property address behind a parcel number before an offer.
Why this actor
- Parcel number in, listing-site record out, in one run: no copying addresses out of county parcel maps by hand.
- Addresses are cleaned into postal ones first, so parcels in unincorporated areas still match.
- Every row says what happened; parcels that do not reach a property cost nothing.
- Built on the same property lookup as Zillow & Redfin Property Data Scraper.
Limitations & updates
US parcels in the covered states and counties only; coverage follows the public parcel maps counties and states publish, and some leave out the street address. The county is required. Harris County TX publishes only a bulk file and is not read yet. The listing record comes from Redfin or Zillow and exists only for homes they track. Parcel maps are snapshots the counties refresh on their own schedule.
FAQ
Which states and counties are covered?
Statewide: Arkansas, California, Colorado (44 of 64 counties), Connecticut, Florida, Idaho (13 of 44 counties), Indiana, Massachusetts, Minnesota (counties that publish open data), Montana, New Jersey, New York (most counties), North Carolina, Ohio, Utah, Vermont, Washington (all but Asotin County) and Wisconsin. Counties: Maricopa and Pima AZ, Fulton and Cobb GA, Cook and DuPage IL, Detroit and Oakland MI, Clay MO, Hinds and DeSoto MS, Lancaster NE, Santa Fe NM, Washoe NV (Reno), Multnomah OR (Portland), Philadelphia and Bucks PA, Davidson TN, Dallas and Tarrant TX, Chesterfield VA, Mobile AL and New Castle DE (Wilmington). A parcel elsewhere returns a free not_covered row.
How do I write a parcel number?
STATE/County/APN, e.g. 'CO/Summit/400358' or 'CA/Alameda/66-2763-16'. The county is required because the same number exists in other counties. If every parcel is in one county, give bare numbers and set State and County once. Write the number as the county does; dashes and spaces are optional, but a county that writes dashes cannot always be matched from a number typed without them.
Why did a parcel come back with no property?
The row says why. not_covered: no public parcel map we read covers that county yet. not_found: the county's map has no parcel with that number. no_address: the parcel has no street address on the roll (vacant land, roads, many rural lots). no_match: the address exists but neither Redfin nor Zillow has the property. blocked: a site did not answer; try again later. None of these are charged.
Does it accept a county's account number instead of the parcel number?
In Colorado and Utah, yes: those counties hand out both, and a lookup matches either exactly.
How am I charged?
$0.008 per parcel number that reaches a Zillow or Redfin property. Everything else is free. Realtor.com pages (optional, the 'All' setting) are billed by Apify to your account at about $0.0015 a page.
I already have addresses. Which tool should I use?
Zillow & Redfin Property Data Scraper: it takes addresses and returns the full property record (estimates, price and tax history, schools, agent).
Which actor to choose
Related property tools in the same suite:
- Zillow & Redfin Property Data Scraper — You already have street addresses and want the full property record.
- US Property Records Export & Owner Lookup — You want the assessor's own record for a parcel (owner, mailing address, assessed value, last sale), or every parcel in a county or ZIP.
Guides & use cases
Written up on scrapebench.dev — the bench that runs and verifies this actor against the live source every night:
- How-to: How to run US Property Lookup & Listing Scraper by APN/Parcel
- Use case: Santa Clara County APN Lookup: Parcel Number to Zillow & Redfin
More actors, coverage and nightly verification results: scrapebench.dev
Works with AI assistants (MCP)
Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the MCP tab on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.
Then just ask:
"Look up parcel 00361019 in Santa Clara County, California, and give me the property's address, size and listing link."
Parcel 00361019 is 745 Garland Dr, Palo Alto, CA 94303: a 5-bed, 4,110 sq ft home built in 2012, with its Redfin listing link (test run, 2026-10-29). Runs started this way bill exactly like any other run.
Data & lawful use
This actor collects publicly available information that County and state assessor and GIS offices (the parcel maps), the US Census Bureau (its public geocoder), and Redfin and Zillow (the listing data) publishes for public lookup — licence records, business listings and the contact details professionals list there. Some of it identifies individuals (sole proprietors, licence holders, agents), so treat any names, phone numbers and emails in your results as personal data.
When you run this actor, you decide what is collected and what it is used for, so you are the controller of that data and we act only as your processor (Apify Standard Actor Contract). You need a lawful basis for your use, must honour opt-out and deletion requests, and must follow the marketing rules that apply to you (CAN-SPAM, TCPA, GDPR, CCPA and similar). Don't use the output for unsolicited bulk messaging, for screening covered by the FCRA, or for anything the source's own terms forbid.
Your results are stored in your own Apify account. We don't keep a copy of your results and don't sell or share them.
Disclaimer
This is an independent tool. It is not affiliated with, endorsed by or sponsored by County and state assessor and GIS offices (the parcel maps), the US Census Bureau (its public geocoder), and Redfin and Zillow (the listing data). Names and marks are used only to describe the data source. Records are provided as published by the source and may be out of date or incomplete. For anything consequential (hiring, a permit, a legal decision), confirm the record with the issuing agency. You are responsible for making sure your use complies with applicable law and the source's terms.
Need help?
Open an issue on this actor's Issues tab and we'll respond there. Bug reports, missing fields and feature requests are all welcome. Guides and examples: scrapebench.dev.
If you are a person named in this data and want your record removed from our copy, email apify-help@scrapebench.dev; the source agency remains the official record.
Your run may be used to improve our services. If something looks off, or you want this actor to fit your use better, please share your run data with us: Apify Console → Settings → Security → Share run data with developers. It lets us see exactly what went wrong and keep improving the actor.