{
  "openapi": "3.0.1",
  "info": {
    "title": "D.R. Horton Scraper",
    "description": "[💰 $0.9 / 1K] Extract D.R. Horton new-home data: communities, move-in ready homes and floor plans with prices, beds, baths, square footage, amenities, GPS, selling status and available-home counts across 37 states. Filter by price, size, property type, amenities and home series.",
    "version": "1.0",
    "x-build-id": "plFGLhmgJOeU0y8fk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~drhorton-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-drhorton-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/solidcode~drhorton-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-drhorton-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/solidcode~drhorton-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-drhorton-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "states": {
            "title": "States",
            "uniqueItems": true,
            "type": "array",
            "description": "Pick one or more states to scrape. Every D.R. Horton community in each selected state is collected in a single pass. Only the 37 states where D.R. Horton currently builds are listed.",
            "items": {
              "type": "string",
              "enum": [
                "alabama",
                "arizona",
                "arkansas",
                "california",
                "colorado",
                "delaware",
                "florida",
                "georgia",
                "hawaii",
                "idaho",
                "illinois",
                "indiana",
                "iowa",
                "kansas",
                "kentucky",
                "louisiana",
                "maryland",
                "minnesota",
                "mississippi",
                "missouri",
                "nebraska",
                "nevada",
                "new-jersey",
                "new-mexico",
                "north-carolina",
                "ohio",
                "oklahoma",
                "oregon",
                "pennsylvania",
                "south-carolina",
                "tennessee",
                "texas",
                "utah",
                "virginia",
                "washington",
                "west-virginia",
                "wisconsin"
              ],
              "enumTitles": [
                "Alabama",
                "Arizona",
                "Arkansas",
                "California",
                "Colorado",
                "Delaware",
                "Florida",
                "Georgia",
                "Hawaii",
                "Idaho",
                "Illinois",
                "Indiana",
                "Iowa",
                "Kansas",
                "Kentucky",
                "Louisiana",
                "Maryland",
                "Minnesota",
                "Mississippi",
                "Missouri",
                "Nebraska",
                "Nevada",
                "New Jersey",
                "New Mexico",
                "North Carolina",
                "Ohio",
                "Oklahoma",
                "Oregon",
                "Pennsylvania",
                "South Carolina",
                "Tennessee",
                "Texas",
                "Utah",
                "Virginia",
                "Washington",
                "West Virginia",
                "Wisconsin"
              ]
            }
          },
          "startUrls": {
            "title": "D.R. Horton URLs",
            "type": "array",
            "description": "Paste any drhorton.com state, metro-area, city or community page URL — for example https://www.drhorton.com/texas/austin. Useful when you want a single metro area or a single community instead of a whole state.",
            "items": {
              "type": "string"
            }
          },
          "includeAvailableHomes": {
            "title": "Also scrape available homes in each community",
            "type": "boolean",
            "description": "Off by default. When on, the scraper also collects the individual move-in ready homes inside each community (address, price, monthly payment, beds, baths, square footage, lot number, plan name, construction status). A community holds about 13 homes on average and up to 130, so a 100-community run can return well over 1,000 extra rows. Turning this on also fills in each community's street address, description, sales office phone and photo gallery, which are only available on the community's own page. Note: this stage runs for up to 50 minutes. On a very large run (several big states at once) any communities left after that are still returned, but without their homes and floor plans — the run then reports partial results and says so."
          },
          "includeFloorPlans": {
            "title": "Also scrape floor plans in each community",
            "type": "boolean",
            "description": "Off by default. When on, the scraper also collects each community's floor plans (plan name, plan code, base price, square footage, beds, baths, garages, stories). A community offers about 8 plans on average and up to 50, so a 100-community run can return around 800 extra rows. Turning this on together with available homes costs nothing extra — both come from the same visit to each community page, which also fills in each community's street address, description, sales office phone and photo gallery. Note: this stage runs for up to 50 minutes. On a very large run (several big states at once) any communities left after that are still returned, but without their homes and floor plans — the run then reports partial results and says so."
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop starting new communities once this many results have been collected. Set to 0 for no limit (a hard safety cap of 50,000 results still applies). IMPORTANT when you also collect homes or floor plans: a community's homes and plans are always delivered together with the community, so the final count can go WELL PAST your number — the last community alone can add up to about 180 records, and results are billed as they are delivered. A cap of 5 has been measured returning 27 records. Set the limit in the hundreds or thousands when either child type is on, or leave both off for exact community counts. A whole state can hold up to about 500 communities."
          },
          "minPrice": {
            "title": "Minimum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep communities whose starting price is at or above this amount. Communities that do not publish a price are excluded while this filter is set. Leave empty — or set 0 — for no minimum."
          },
          "maxPrice": {
            "title": "Maximum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep communities whose starting price is at or below this amount. Communities that do not publish a price are excluded while this filter is set. Leave empty for no maximum."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only keep communities that offer at least this many bedrooms in their largest home. Matched on the community; all of its homes and floor plans are then kept. Leave empty — or set 0 — for any."
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only keep communities that offer at least this many bathrooms in their largest home. Matched on the community; all of its homes and floor plans are then kept. Leave empty — or set 0 — for any."
          },
          "minGarages": {
            "title": "Minimum garage spaces",
            "minimum": 0,
            "maximum": 6,
            "type": "integer",
            "description": "Only keep communities that offer at least this many garage spaces. Matched on the community; all of its homes and floor plans are then kept. Leave empty — or set 0 — for any."
          },
          "minSquareFeet": {
            "title": "Minimum square feet",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep communities whose largest home is at least this size. Matched on the community; all of its homes and floor plans are then kept. Leave empty — or set 0 — for any."
          },
          "maxSquareFeet": {
            "title": "Maximum square feet",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep communities whose smallest home is at or below this size. Matched on the community; all of its homes and floor plans are then kept. Leave empty for any."
          },
          "stories": {
            "title": "Number of stories",
            "uniqueItems": true,
            "type": "array",
            "description": "Only keep communities that offer homes with any of these storey counts. A community offering 1 to 3 storeys matches a request for 2. Matched on the community; all of its homes and floor plans are then kept. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3"
              ],
              "enumTitles": [
                "1 story",
                "2 stories",
                "3 stories"
              ]
            }
          },
          "propertyTypes": {
            "title": "Property types",
            "uniqueItems": true,
            "type": "array",
            "description": "Only keep communities that build any of these property types. Matched on the community; all of its homes and floor plans are then kept. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Single family",
                "Townhome",
                "Multifamily",
                "Condo",
                "Duplex",
                "Patio home",
                "MultiGen"
              ],
              "enumTitles": [
                "Single family homes",
                "Townhomes",
                "Multifamily",
                "Condos",
                "Duplexes",
                "Patio homes",
                "Multi-generational homes"
              ]
            }
          },
          "homeSeries": {
            "title": "Home series",
            "uniqueItems": true,
            "type": "array",
            "description": "D.R. Horton groups its homes into brand series by price point and finish level. Only keep communities in the series you pick — about one community in seven has no series assigned and is excluded while this filter is set. Matched on the community; all of its homes and floor plans are then kept. Leave empty for all series.",
            "items": {
              "type": "string",
              "enum": [
                "Express",
                "Tradition",
                "Emerald",
                "Cottage",
                "Freedom",
                "Pacific Ridge"
              ],
              "enumTitles": [
                "Express Series — entry level",
                "Tradition Series — mid range",
                "Emerald Series — luxury",
                "Cottage Series — compact",
                "Freedom Series — active adult",
                "Pacific Ridge Series — West Coast"
              ]
            }
          },
          "sellingStatuses": {
            "title": "Selling status",
            "uniqueItems": true,
            "type": "array",
            "description": "Only keep communities in these sales stages. Great for spotting brand new openings or final-opportunity closeouts. Matched on the community; all of its homes and floor plans are then kept. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Now Selling",
                "Now Pre-Selling",
                "Coming Soon",
                "New Phase Coming Soon",
                "New Phase Now Selling",
                "New Phase Open",
                "New Section Open",
                "New Model Open",
                "New Plans Now Available",
                "Model For Sale",
                "Final Opportunities",
                "Closing Out",
                "Sold Out"
              ],
              "enumTitles": [
                "Now selling",
                "Now pre-selling",
                "Coming soon",
                "New phase coming soon",
                "New phase now selling",
                "New phase open",
                "New section open",
                "New model open",
                "New plans now available",
                "Model for sale",
                "Final opportunities",
                "Closing out",
                "Sold out"
              ]
            }
          },
          "amenities": {
            "title": "Required amenities",
            "uniqueItems": true,
            "type": "array",
            "description": "Only keep communities that offer ALL of the amenities you pick. Matching is forgiving — asking for \"Pool\" also matches a community listed with \"Community Pools\" or \"Pool House\", and \"Park\" also matches \"Dog Park\". Pick the more specific option when you want only that one. Matched on the community; all of its homes and floor plans are then kept. Leave empty for no amenity filter.",
            "items": {
              "type": "string",
              "enum": [
                "Community Pools",
                "Pool",
                "Pool House",
                "Club House",
                "Gated",
                "Active Adult",
                "Dog Park",
                "Playground",
                "Park",
                "Tot Lot",
                "Walking - Nature Trails",
                "Exercise - Fitness",
                "Golf",
                "Tennis",
                "Pickleball",
                "Basketball Court",
                "Bocce",
                "Cornhole",
                "Polo",
                "Putting Green",
                "Lake",
                "Multiple Lakes",
                "Pond",
                "Fishing Pond",
                "Beach View",
                "Water Front or Access",
                "Private Dock",
                "Cabana",
                "Pavilions",
                "Gazebo",
                "Fire Pits",
                "Grilling Station",
                "Community Grilling Area",
                "Community Outdoor Kitchen",
                "Event Lawn",
                "HOA",
                "Home is Connected Smart Home System",
                "Granite Countertops in Kitchen",
                "Quartz Countertops in Bathrooms",
                "Stainless Steel Appliances",
                "Landscaped Front Yard",
                "Fully Fenced Back Yard",
                "Spray Foam Insulation",
                "Nearby Grocery Stores & Shops",
                "Quick Access to Highways"
              ],
              "enumTitles": [
                "Community pools",
                "Pool",
                "Pool house",
                "Club house",
                "Gated community",
                "Active adult (55+)",
                "Dog park",
                "Playground",
                "Park",
                "Tot lot",
                "Walking / nature trails",
                "Fitness center",
                "Golf",
                "Tennis",
                "Pickleball",
                "Basketball court",
                "Bocce",
                "Cornhole",
                "Polo",
                "Putting green",
                "Lake",
                "Multiple lakes",
                "Pond",
                "Fishing pond",
                "Beach view",
                "Waterfront or water access",
                "Private dock",
                "Cabana",
                "Pavilions",
                "Gazebo",
                "Fire pits",
                "Grilling station",
                "Community grilling area",
                "Community outdoor kitchen",
                "Event lawn",
                "HOA",
                "Smart home system",
                "Granite kitchen countertops",
                "Quartz bathroom countertops",
                "Stainless steel appliances",
                "Landscaped front yard",
                "Fully fenced back yard",
                "Spray foam insulation",
                "Nearby grocery stores & shops",
                "Quick access to highways"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}