NewHomeSource - New Homes, Floor Plans & Communities avatar

NewHomeSource - New Homes, Floor Plans & Communities

Pricing

from $1.00 / 1,000 home results

Go to Apify Store
NewHomeSource - New Homes, Floor Plans & Communities

NewHomeSource - New Homes, Floor Plans & Communities

Scrape new homes, floor plans, builders and communities from NewHomeSource.com. Search by US state or city, or paste URLs. Get prices, beds, baths, stories, garage, square footage, builder, location, amenities, community details and available plans.

Pricing

from $1.00 / 1,000 home results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

22

Total users

14

Monthly active users

13 days ago

Last modified

Share

NewHomeSource Scraper: New Construction Homes, Floor Plans, Builders and Communities

NewHomeSource Scraper turns NewHomeSource into a clean new-construction data feed. Pick a US state (optionally narrow to one city) and get every matching community and every home or floor plan inside it, or paste community, home, state or market links to scrape only those. Each result is one flat row with home specs, price, address, geo coordinates, community context and builder contact, ready for JSON, CSV, Excel or your own API.

Why This Scraper?

  • Two ways to find data. Walk a whole state, optionally narrowed to one city, in search mode, or paste community, plan, spec-home, state or market links in URL mode. No need to build URLs by hand.
  • One flat row per home. Every result carries the home's own specs, price and status alongside the community's price band, floor-plan count, quick-move-in count and address, and the builder's name, id and phone, all in one record.
  • State-wide coverage on demand. Pick a state once and the actor walks its market areas, every community inside them, and every home or floor plan inside each community.
  • Optional deep detail. Turn on full detail extraction to add the complete specification, photo gallery, videos, amenities, fees, school districts and sales-office contact per home, billed only for homes actually returned.
  • Filters that narrow before you pay. Home type, price, bedroom, bathroom and size bounds apply to both search and URL mode, so filtered-out homes are never collected or charged.
  • Built for monitoring, with views. The dataset has Homes, Home details and Changes views. Incremental mode tracks a search over time and returns only new and changed homes on recurring runs, and a run that could not reach the data source fails loudly instead of returning an empty dataset.
  • Resume without re-paying. Continue an interrupted run from its run or dataset id and skip everything already collected there.

Use Cases

  • Builder and market research: track price bands, floor-plan counts and quick-move-in inventory across a state or metro to see where builders are pricing and releasing homes.
  • Real estate lead generation: collect builder and community contact details alongside home specs for outreach or CRM import.
  • Listing and price monitoring: schedule the actor with incremental mode to catch new homes, price changes and homes that sell out.
  • Market analytics and dashboards: feed home counts, price ranges and geo coordinates into a BI tool or map to visualize new-construction supply.
  • Relocation and homebuying tools: power a search or comparison app with structured floor plan, price and school-district data.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
homeId2787050
floorPlan"The Pearson"
bedrooms / bathrooms4 / 3
halfBathrooms / garageCount1 / 2
stories / homeSizeSqft2 / 2450
homePrice385990
status / homeType"Active" / "Single Family"
isSpecfalse
moveInDate"2025-06-01"
address"123 Example Lane"
city / state / zip"Example City" / "TX" / "75001"
latitude / longitude"32.7767" / "-96.7970"
communityId / communityName202479 / "Sample Community"
communityMinHomePrice / communityMaxHomePrice320000 / 450000
totalFloorPlans / qmiCount8 / 3
builderId / builderName5501 / "Sample Builder Homes"
phone"555-0100"
homeUrllink to the home or floor plan page
subtype"floorplan" (also "qmi" or "basic")
communityUrllink to the community page
schoolDistricts[{"id": null, "name": "Example County Schools"}]
changeType"NEW" (incremental mode only)

Turning on full detail extraction, or pasting a specific home link (see below), adds a larger set of fields to the same row: description and marketingDescription, lotSqft, the full photo gallery (images, imagesCount), videos, tourUrl and planViewerUrl, the builder's builderUrl, the sales office's salesOfficeAddress, salesOfficeEmail and salesOfficePhone, schools and a detailed schoolDistricts, agents, homeOptions, feesAndRates, utilities, amenities, customAmenities and planAmenities, plus the community's own communityImages, communityVideos, communityHours, communityDirections, communityMapUrl, communitySchoolDistricts, communitySchools and communityAgents. (The brand fields brandId, brandLogo and brandSiteUrl are already present on every record; full detail only refreshes them.) In incremental mode, changedFields, firstSeenAt and lastSeenAt are added alongside changeType.

How to Use

  1. Pick a mode: search (walk a US state, optionally one city) or url (paste specific community or home links).
  2. Set the home type, price, bedroom, bathroom and size filters. They apply to both modes, and homes they exclude are never collected or charged.
  3. Optionally turn on Fetch full home details to add the full specification, photo gallery, amenities and sales-office contact per home, billed only for homes returned.
  4. Set Max items to cap run size and cost, then click Start.

Search a whole state:

{
"mode": "search",
"state": "Texas",
"maxItems": 50
}

Search one city with filters:

{
"mode": "search",
"state": "Florida",
"city": "Orlando",
"homeTypes": ["qmi"],
"minPrice": 350000,
"maxPrice": 600000,
"minBedrooms": 3,
"maxItems": 100
}

Paste community and home links:

{
"mode": "url",
"urls": [
"https://www.newhomesource.com/community/id/kuna/medallion-at-valor-by-tresidio-homes/202479",
"https://www.newhomesource.com/plan/the-pearson-smith-douglas-homes-columbiana-al/2787050"
]
}

Recurring monitoring with incremental mode:

{
"mode": "search",
"state": "North Carolina",
"incrementalMode": true,
"stateKey": "nc-monitor",
"maxItems": 0
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/newhomesource-scraper").call(run_input={"mode": "search", "state": "Texas", "maxItems": 50})
for home in client.dataset(run["defaultDatasetId"]).iterate_items():
print(home["floorPlan"], home["homePrice"], home["city"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/newhomesource-scraper').call({ mode: 'search', state: 'Texas', maxItems: 50 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Link shapeExampleResult
Community/community/tx/austin/parten-65ft-lots-highland-homes/159524Every home and floor plan in the community
Plan/plan/the-pearson-smith-douglas-homes-columbiana-al/2787050That floor plan, with full detail
Spec home/specdetail/595-bird-hollow-austin-tx-78737/3317367That quick-move-in home, with full detail
Basic home/basichome/...That home, with full detail
State/communities/tx, /state/texas or /new-homes/texasEvery community and home in the state
Market/communities/tx/austin-area or /new-homes/texas/austin-areaEvery community and home in the market area

Links are resolved by their numeric id. A link the actor cannot resolve (for example an inactive community) logs a warning naming it and is skipped. The default urls value is four example links, one per shape (community, plan, spec home, market), so a URL-mode run with the field untouched scrapes those examples, bounded by Max items. Changing the field replaces the examples entirely.

Detail enrichment and billing

Turning on Fetch full home details adds one extra request per home for the full specification, gallery, videos, amenities, fees, utilities and sales-office contact, plus one request for the home's community details, each with a bounded per-home time budget so one slow home cannot stall the run. The detail-enrichment surcharge is charged one unit per home, at the moment that home is added to the dataset, so it is never lost if a run is stopped part-way; it applies only to homes that are both enriched and actually returned, never per fetch alone. A home suppressed by incremental mode because it is unchanged since the last run still has its detail page read to compute the comparison, but it is never billed the surcharge if it is not returned. Pasted single-home links (plan, specdetail, basichome) always fetch and return full detail and community context, and are always charged the surcharge, because those links only resolve through the detail endpoint; the toggle only controls whether homes found by a state or city search, or by a pasted community link, also fetch full detail per home.

Resume and recurring updates

  • Resume (resumeFromRunId): paste a previous run or dataset id to continue an interrupted run without returning or re-charging homes already collected there.
  • Incremental mode (incrementalMode): for scheduled runs over the same search. Each home is classified NEW the first time it is seen, UPDATED (with changedFields listing what changed) when its data differs from the stored baseline, or UNCHANGED (suppressed and not billed unless emitUnchanged is on). Turning on emitExpired marks homes no longer found as EXPIRED, but only once a run reaches the natural end of every scope it tracks, not when Max items or Max pages cut a walk short, and not on a Resume run; a partial run leaves the previous state untouched instead of guessing. REAPPEARED is not a routine result: it only appears for a home that an earlier complete run, with emitExpired on, had already marked EXPIRED, and that is then found again on a later run. stateKey names or shares the stored state; leave it empty and the actor derives one automatically from the state, city, URLs and filters, so different searches never mix state with each other.
  • Ignore fields when detecting changes (ignoreFieldsForChanges): list field names that must not count as a change. A name matches at any depth, including nested objects and lists; ignored fields stay in the output and are only left out of the UPDATED comparison and changedFields. The scrape timestamp scrapedAt is never compared. Every other output field (price, beds, baths, size, status, incentives, plans, specs and nested values) is compared.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape; the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each home, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify > Settings > Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. If the picker is empty, you have not authorized a connector yet.
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch walks a state (optionally one city); url scrapes only pasted links.
statestringAlabamaUS state to walk in search mode. The default is just a starting example, pick any state.
citystring(none)Optional. Narrow a state search to one city by plain name (e.g. Austin); a name that matches nothing logs a warning. Search mode only.
urlsarray4 example links (community, plan, spec, market)NewHomeSource community, plan, /specdetail/, basic home, state (/communities/{st}, /state/{name} or /new-homes/{state}) or market (/communities/{st}/{market}-area or /new-homes/{state}/{market}-area) links, where {st} is the 2-letter state code. URL mode only. Behaviour note: in URL mode with this field untouched, the actor scrapes one example per link shape (bounded by Max items). Links it cannot resolve log a warning naming the link.
startUrlsarrayemptyAlias of urls, merged with it. Strings or {"url": ...} objects. Behaviour note: if you fill this field, the run switches to URL mode even when Mode says search, and when urls is left at its four example links only your startUrls run (the examples are not scraped or billed).
homeTypesarray["floorplan", "qmi"]Which kinds of listings to include: floor plans, QMI / spec homes, or both.
minPriceinteger(none)Only keep homes priced at or above this amount.
maxPriceinteger(none)Only keep homes priced at or below this amount.
minBedroomsinteger(none)Only keep homes with at least this many bedrooms.
minBathroomsinteger(none)Only keep homes with at least this many bathrooms.
minSqftinteger(none)Only keep homes at least this many square feet.
maxSqftinteger(none)Only keep homes at most this many square feet.
fetchDetailsbooleanfalseFetch the full specification, gallery, videos and sales-office contact per home. Billed as a per-home surcharge for homes returned.
maxItemsinteger20Stop after this many home rows across all searches or URLs. 0 = unlimited.
maxPagesinteger0Optional hard cap on result pages walked per state, city or URL. 0 = unlimited.
resumeFromRunIdstring(none)Continue one interrupted run without re-collecting or re-charging its homes.
incrementalModebooleanfalseTurn on for recurring runs over the same search: classify homes as new, updated, unchanged, expired or reappeared.
stateKeystring(none)Name or share an incremental-mode state. Leave empty to derive one automatically from the search setup.
emitUnchangedbooleanfalseAlso return (and bill) homes unchanged since the last run. Incremental mode only.
emitExpiredbooleanfalseAlso return (and bill) homes no longer found, once a run completes a full scan. Incremental mode only.
ignoreFieldsForChangesarray[]Field names (matched at any depth) that do not count as a change. Incremental mode only.
proxyobjectApify Proxy enabledConnection settings.
mcpConnectorsarray(none)Optional: send a summary of each home to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which home pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"homeId": 2787050,
"planId": 145201,
"specId": null,
"floorPlan": "The Pearson",
"bedrooms": 4,
"bathrooms": 3,
"halfBathrooms": 1,
"garageCount": 2,
"stories": 2,
"homeSizeSqft": 2450,
"homePrice": 385990,
"status": "Active",
"homeType": "Single Family",
"isSpec": false,
"moveInDate": "2025-06-01",
"address": "123 Example Lane",
"city": "Example City",
"county": "Example County",
"state": "TX",
"zip": "75001",
"latitude": "32.7767",
"longitude": "-96.7970",
"communityId": 202479,
"communityName": "Sample Community",
"communityMinHomePrice": 320000,
"communityMaxHomePrice": 450000,
"totalFloorPlans": 8,
"qmiCount": 3,
"builderId": 5501,
"builderName": "Sample Builder Homes",
"phone": "555-0100",
"brandId": 12,
"brandLogo": "https://example.com/logo.png",
"homeUrl": "https://www.newhomesource.com/plan-detail/2787050",
"communityUrl": "https://www.newhomesource.com/community/tx/example-city/sample-community/202479",
"searchMode": "search",
"schoolDistricts": [{ "id": null, "name": "Example County Schools" }]
}

Plan Requirement

Keep Apify Proxy enabled under Proxy & connection; it is on by default and no extra proxy group is needed. The listing data is served by a separate data service, so every link is resolved through its numeric id instead of the bot-protected public pages. A blocked request is retried on a fresh connection, and if every attempt fails the run ends with a clear message rather than an empty success. If your account is not permitted to use the requested connection, the actor logs a warning and continues on a backup gateway for the rest of the run, where coverage may be limited; enable Apify Proxy or upgrade your plan to avoid that. An explicit proxy group you choose is always honored.

FAQ

How much does it cost?

You are charged per home returned in the dataset, plus a smaller per-home charge only for homes returned with full detail extraction enabled, plus a small per-run start charge. The Pricing tab on the actor page shows the current rates. Use Max items to cap the cost of any run.

This actor collects only publicly available new-construction listing data. You are responsible for how you use it: follow NewHomeSource's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Listing facts like price, specs and address are generally not protected, but photos, floor-plan renderings and marketing copy may be subject to third-party rights.

Can I get only new or changed homes on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Later runs then return only new and updated homes, and unchanged homes are not billed unless you also turn on Emit unchanged.

Yes, and this is the most common source of confusion. A pasted plan, specdetail or basichome link only exists as a detail record on the storefront, so the actor always fetches and returns its full detail and community context for that link, and always applies the detail-enrichment surcharge, no matter how Fetch full home details is set. That toggle only controls whether homes found by a state or city search, or by a pasted community link, also get the extra fetch.

Why does a run sometimes fail instead of returning an empty dataset?

If every attempt to reach the listing service was blocked this run and no homes were scanned, the actor fails the run with a clear message instead of reporting a false empty success, so a saved incremental baseline is never corrupted by a single outage. Try again shortly, or switch the Proxy configuration. If the account's connection specifically was refused, the message says so; that points to a plan or connection-access limit, not an empty result.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push a summary of results into Notion, Linear or Airtable.

πŸ”— Want more real estate data?

Pair this actor with these related scrapers from the same team:

🏠 DR Horton
From $1/1K. Extract new-home data from drhorton.com, America’s largest homebuilder. Pull...
🏠 Lennar Homes, Communities & Floor Plans Scraper
Scrape Lennar new-home communities, move-in-ready homes and floor plans. Extract prices...
🏠 Redfin Scraper
Scrape redfin.com home listings: price, beds, baths, sqft, lot, year built, coordinates...
🏠 Rent.com Scraper
Extract rental listings from rent.com. Get comprehensive data including monthly rent...
🧩 Homes.com Scraper
Scrape US property records from Homes.com. Pick a city, state or ZIP and a channel (for...
🏠 Properstar
Extract property listings from Properstar across global domains like .com, .co.uk, .ch...

πŸ‘‰ Browse all abotapi scrapers

πŸ’¬ Support

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • πŸ› οΈ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.