DR Horton icon

DR Horton

From $1/1K. Extract new-home data from drhorton.com, America’s largest homebuilder. Pull communities and quick move-in homes by state with prices,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

DR Horton at a glance

DR Horton is a ready-to-run Apify actor from abotapi for collecting real estate data. Its documented output includes type, change type (incremental mode), state, community and city, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Real Estate, Automation, Developer Tools
Pricing
$2.00 per 1,000 results (Free plan), from $1.00 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
27 options

From $1/1K. Extract new-home data from drhorton.com, America’s largest homebuilder. Pull communities and quick move-in homes by state with prices, payment estimates, floor plans, square footage, amenities, and map coordinates.

What DR Horton $1💰 New Homes, Communities & Move-In Listings can do

  • Three record types in one run: communities (neighbourhood summaries with price, bed, bath and sqft ranges), quick move-in homes (firm prices, monthly payment estimates), and floor plans (model name, code, specs).
  • Whole states in a couple of requests: one state search returns every community and every quick move-in home D.R. Horton lists there, often hundreds of records.
  • Price-drop visibility: every quick move-in home carries both its current and original price, so a repeat run shows exactly which homes dropped in price and by how much.
  • Search or paste links: pick one or more states from a list, or paste any drhorton.com state, market, city or community page.
  • Floor plans on demand: switch on a detail crawl per community to add plan name, plan code, specs and the community's sales-office contact info, without paying for it on every run.
  • Resume and recurring monitoring: continue an interrupted crawl from a previous run, or turn on Incremental mode to get only NEW, UPDATED, REAPPEARED or EXPIRED records on a schedule.

Choose what to collect

These inputs let you configure DR Horton $1💰 New Homes, Communities & Move-In Listings. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredHow to choose what to scrape. 'search' iterates the states you pick; 'url' scrapes specific drhorton.com state, market, city, or community pages you paste.

Choices: search, url

statesarrayOne or more US states to scrape. Each state returns every community and quick move-in home D.R. Horton lists there. Only applies in 'search' mode.
statestringOptional single state name, plain ('New Hampshire') or hyphenated ('New-Hampshire'). Added to the States list in 'search' mode.
includeCommunitiesbooleanOutput one record per community (neighbourhood) with price, bed, bath, sqft ranges, amenities, brand, status, and coordinates.
includeQmiHomesbooleanOutput one record per move-in-ready home with a firm price, monthly payment estimate, exact address, lot, beds, baths, and status.
includeFloorPlansbooleanOutput one record per floor plan offered in each community (plan name, plan code, square footage, beds, baths, price). This fetches one extra page per community, so it is slower and billed separately. Leave off for the fast, cheap community + home overview.
minPriceintegerKeep records priced at or above this amount. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
Show 20 more inputs
More input fields
InputWhat it controls
maxPriceintegerKeep records priced at or below this amount. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
minBedroomsintegerKeep records with at least this many bedrooms. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
minBathroomsnumberKeep records with at least this many bathrooms. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
minSqftintegerKeep records with at least this living area. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
maxSqftintegerKeep records with at most this living area. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
minGaragesintegerKeep records with at least this many garage spaces. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
minStoriesintegerKeep records with at least this many stories. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
propertyTypestringKeep records whose property type contains this text, for example Townhome or Single family. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
seriesstringKeep records whose series or brand contains this text, for example Express or Tradition. Optional, off when empty. Applied to the records of the selected states/URLs before they are saved; records missing the filtered value are left out when the filter is set. Communities are compared on their price/size ranges.
startUrlsarraydrhorton.com URLs to scrape: a state page (drhorton.com/texas), a market page (drhorton.com/texas/dallas), a city page, a community page (returns its floor plans), or a same-origin /api/comms/direct or /api/qmis/direct endpoint. http/https, with or without www, trailing slash, tracking query and mixed-case paths are all accepted; unsupported URLs are skipped with a warning. Only applies in 'url' mode. Leaving it untouched scrapes the four page examples (state, market, city, community); the two API examples in the prefill resolve to the same market data as the market page.
maxItemsintegerStop after this many records across the whole run. The default (20) keeps a trial run small and cheap; set 0 for no limit (full coverage of every selected state, which can be hundreds of records per state).
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue an interrupted crawl: records already collected there are skipped so you get only what's still missing. One-off continuation of a SPECIFIC run, for ongoing scheduled monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanFor a search you run on a schedule (e.g. daily/weekly): remembers what this exact search returned last time and classifies every record as NEW / UPDATED / UNCHANGED / REAPPEARED / EXPIRED, so you can act on only what changed. Compared: every output field (prices, selling status, availability counts, beds/baths/sqft, pending/sold flags, the upstream raw object). Excluded from the comparison but still in the output: image and thumbnail links (including the community image and photo gallery on floor-plan rows), badge labels and amenity tag lists, which rotate without a real listing change (list more with Ignore fields below). Off by default so existing scheduled runs are unaffected. Separate from Resume above, which continues one specific interrupted run. Uses State key below to isolate different searches; see Emit unchanged rows / Emit expired rows to control which of those get pushed (both bill extra rows when on).
stateKeystringNames the saved baseline Incremental mode compares against. Leave empty to auto-derive one from mode/states/startUrls/includeCommunities/includeQmiHomes/includeFloorPlans, two differently-configured searches never share a baseline even with this left empty. Set your own text only if you want to explicitly reuse or separate baselines yourself. Ignored when Incremental mode is off.
emitUnchangedbooleanWhen Incremental mode is on: also push rows classified UNCHANGED (identical to last run), not just NEW/UPDATED/REAPPEARED/EXPIRED. Off by default to save you from paying for rows that didn't change. Turning this on bills the per-result event (and the detail-enrichment surcharge, for floor-plan rows) for every unchanged row too.
emitExpiredbooleanWhen Incremental mode is on: push a synthetic EXPIRED row for records tracked in a previous run that no longer appear in this one. Only fires after a run that scanned every selected state/URL completely, no cap, resume, or fetch failure truncating it, a partial scan can't tell 'gone' apart from 'not reached yet', so it's skipped (with a log line) otherwise. Off by default; turning it on bills the per-result event for each EXPIRED row emitted. EXPIRED rows count against maxItems like any other record; if maxItems is reached, the remaining gone records stay tracked and are reported on a later run rather than being emitted uncapped.
ignoreFieldsForChangesarrayTop-level output field names (for example availableHomes) that must never mark a record UPDATED or appear in changedFields when Incremental mode is on. Added to the built-in exclusions (imageUrl, thumbnail, communityImage, communityImages, badges, badge, amenities). The fields still appear in the output. Ignored when Incremental mode is off.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON, the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

recordTypeType (text)
changeTypeChange type (incremental mode) (text)
stateState (text)
communityNameCommunity (text)
cityCity (text)
addressAddress (text)
pricePrice (number)
minPriceMin Price (number)
maxPriceMax Price (number)
bedroomsBeds (number)
bathroomsBaths (number)
sqftSq Ft (number)
Show 21 more fields
propertyTypeProperty Type (text)
urlURL (link)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
monthlyPaymentEst. Monthly (number)
garagesGarages (number)
brandBrand (text)
sellingStatusStatus (text)
minBedsMin beds (number)
maxBedsMax beds (number)
minSqftMin sq ft (number)
maxSqftMax sq ft (number)
availableHomesHomes available (number)
latitudeLat (number)
longitudeLng (number)
planNamePlan (text)
planCodePlan code (text)
brandNameBrand (text)
homeNameHome name (text)
storiesStories (number)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "recordType": "home",
  "id": "home:/texas/dallas/sample-community/qmis/100-sample-drive",
  "state": "Texas",
  "address": "100 Sample Drive",
  "lot": "0000",
  "url": "https://www.drhorton.com/texas/dallas/sample-community/qmis/100-sample-drive",
  "communityName": "Sample Community",
  "communityUrl": "https://www.drhorton.com/texas/dallas/sample-community",
  "price": 347900,
  "originalPrice": 355900,
  "monthlyPayment": 1964.52,
  "bedrooms": 4,
  "bathrooms": 3,
  "garages": 3,
  "stories": 1,
  "sqft": 2273,
  "propertyType": "Single Family",
  "series": "Tradition Series",
  "city": "Sample City",
  "market": "Sample Market",
  "latitude": 33,
  "longitude": -87,
  "pending": false,
  "underContract": false,
  "sold": false
}

Ways to use this data

  • Homebuilder market research: track community counts, price ranges and amenities across states to benchmark D.R. Horton against other builders.
  • Real estate investment and site selection: monitor which markets are opening new communities and where available-home counts are growing or shrinking.
  • Homebuyer lead generation and alerts: get notified of new quick move-in homes or price drops in specific states or communities.
  • Real estate data products and dashboards: feed live new-construction listings into your own site, app or spreadsheet.
  • Pricing and appraisal analytics: compare firm prices, monthly payment estimates and price per square foot across communities and floor plans.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does DR Horton return?

The documented output for DR Horton includes type, change type (incremental mode), state, community, city, address, price and min price. Availability of each field depends on the source page and the selected mode.

How much does DR Horton cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

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

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated, reappeared and (if enabled) expired records; unchanged ones are not billed unless you turn that on too.

Why did floor plans not show up in my run?

Floor plans are off by default. Turn on Include floor plans (detail crawl) to add them; it fetches one extra page per community, so it costs more and takes longer than the community and move-in home overview alone.

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 results into Notion, Linear or Airtable.

Ready to collect with DR Horton?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.