# Opendoor Homes Scraper (`parseforge/opendoor-homes-scraper`) Actor

Scrape Opendoor iBuyer inventory: price, beds, baths, sq ft, lot, year built, days on market, status, coordinates. Export to CSV, Excel, JSON or XML.

- **URL**: https://apify.com/parseforge/opendoor-homes-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.62 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🏠 Opendoor Homes Scraper

> 🚀 **Export every home Opendoor owns in seconds.** 3,210 homes across 92 live markets, 45 fields each, coordinates and days on market included.

Opendoor is an iBuyer: it buys houses with its own cash and resells them. What it publishes is therefore not a portal feed of other people's listings, it is a company's own inventory, priced by one seller with one strategy. On 2026-09-09 that inventory was **3,210 homes**, spread across **92 markets that actually held stock out of the 140 Opendoor lists**. This Actor turns any of those markets, or all of them, into a clean table.

Every row is built from the property page itself, not from the search card, so you get year built, lot size, days on market, HOA dues, the MLS the listing came from, school ratings and the full photo set on top of price, beds, baths and square footage. Latitude and longitude come from Opendoor's own map layer, so every home is mappable without a geocoding step.

| 🎯 Target Audience | 💡 Primary Use Cases |
| --- | --- |
| Real estate investors and flippers | Watch one seller's whole book for price cuts and aged inventory |
| iBuyer and proptech analysts | Track Opendoor's market entries, exits and inventory size over time |
| Hedge funds and equity researchers | Inventory count and days on market as a read on the business |
| Local agents and brokerages | See exactly what the biggest cash buyer is holding in your metro |
| Appraisers and valuation teams | Asking prices with lot size, year built and price per square foot |
| Build-to-rent and SFR operators | Bulk acquisition targets from a single motivated seller |
| Data teams and researchers | A small, clean, fully geocoded national housing dataset |

### 📋 What the Opendoor Homes Scraper does

It takes an Opendoor market, walks it page by page, opens every home, and writes one row per property.

- **Pick markets or paste URLs.** Choose from 138 verified market identifiers, paste market pages such as `/homes/atlanta`, paste single property pages, or leave everything empty to sweep the whole country.
- **Filters read from Opendoor's own search.** Price, bedrooms, bathrooms, living area, lot size, year built, property type, self-tour, pool, single storey and no-HOA, plus three sort orders. Every one was tested against a live market and returns the same counts the site shows.
- **The property page, not the card.** Year built, lot size, days on market, HOA dues, annual tax, price per square foot, storeys, garage spaces, school ratings, floor plan and the complete photo set exist only on the property page, and every row goes through it.
- **Coordinates for every home.** Opendoor's map layer ships latitude and longitude for the whole market in one response, so nothing needs geocoding afterwards.
- **Price cut and buy-direct pricing.** Where Opendoor publishes an earlier asking price, the row carries the original price and the cut. The 1% buy-direct discount Opendoor offers is on every row as its own column.
- **Honest sentinels.** `Not Disclosed` where Opendoor withholds a value, `N/A` where it does not apply, never a silent blank.

> 💡 **Why it matters:** Zillow, Redfin and Realtor.com show you the whole MLS. This shows you one buyer's balance sheet. When Opendoor cuts a price, exits a metro or lets a house sit for 200 days, that is a signal you cannot read off a portal.

### 🎬 Full Demo (🚧 Coming soon)

A recorded walkthrough is on the way. Until then, run the Actor with its default market and you will have 10 homes on screen in well under a minute.

### 📊 Output

| Field | Type | What it holds |
| --- | --- | --- |
| `imageUrl` | string | Lead photo of the home |
| `address` | string | Full address as Opendoor writes it |
| `url` | string | Opendoor property page |
| `id` | string | Opendoor address ID, stable across runs |
| `slug` | string | Address slug used in the URL |
| `status` | string | For Sale, Pending, Sold, Coming Soon, Available Soon or Temporarily Unavailable |
| `listPriceUsd` | number | Current asking price |
| `buyDirectPriceUsd` | number | Price when buying direct from Opendoor without an agent |
| `buyDirectSavingsUsd` | number | The discount that buy-direct route carries |
| `originalListPriceUsd` | number or `N/A` | Earlier asking price, when Opendoor publishes one |
| `priceCutUsd` | number or `N/A` | Original price minus current price when a cut is published |
| `pricePerSqFtUsd` | number | Asking price divided by living area |
| `estimatedMonthlyPaymentUsd` | number | Opendoor's own payment estimate |
| `bedrooms` | number | Bedroom count |
| `bathrooms` | number | Bathroom count |
| `squareFeet` | number | Interior living area |
| `lotSizeSqFt` | number | Lot size in square feet |
| `yearBuilt` | string | Year the home was built |
| `propertyType` | string | Single Family, Condo, Townhouse, Apartment or Other |
| `stories` | number | Number of storeys |
| `garageSpaces` | number | Garage spaces |
| `hoaMonthlyUsd` | number or `Not Disclosed` | Monthly homeowners association dues |
| `annualPropertyTaxUsd` | number or `Not Disclosed` | Annual property tax |
| `daysOnMarket` | number | Days the current listing has been live |
| `listedDate` | string | Date the current listing started |
| `mlsSource` | string | MLS the listing is filed with, for example FMLS or ARMLS |
| `selfTourAvailable` | `Yes` or `No` | Whether a buyer can unlock and tour it alone |
| `virtualTourUrl` | string or `N/A` | Walkthrough video when one is published |
| `floorPlanUrl` | string or `N/A` | Floor plan image |
| `market` | string | Opendoor market identifier, for example `phoenix` |
| `marketName` | string | Readable market name, for example Phoenix, AZ |
| `street` | string | Street line |
| `unitNumber` | string or `N/A` | Unit number for condos and townhomes |
| `city` | string | City |
| `state` | string | Two-letter state code |
| `zipCode` | string | ZIP code |
| `neighborhood` | string or `Not Disclosed` | Neighborhood name when Opendoor names one |
| `latitude` | number | Latitude from Opendoor's map layer |
| `longitude` | number | Longitude from Opendoor's map layer |
| `description` | string | Opendoor's own listing copy |
| `photoCount` | number | How many photos the listing carries |
| `schools` | array | Assigned schools with their ratings |
| `photos` | array | Every photo URL for the home |
| `scrapedAt` | string | ISO timestamp of the extraction |
| `error` | string or null | Only set on a row that failed |

Three real records from a live run:

```json
[
  {
    "imageUrl": "https://images.opendoor.com/pre/ios-listing-zoom/36c708f3-93ed-4762-bd4e-4f6950ae84e1.jpg",
    "address": "9889 Northrup Dr Reno NV 89521",
    "url": "https://www.opendoor.com/properties/9889-Northrup-Dr-Reno-NV-89521/aid_82acc460-3a08-5383-959e-ff94f75e78a6",
    "id": "82acc460-3a08-5383-959e-ff94f75e78a6",
    "slug": "9889-Northrup-Dr-Reno-NV-89521",
    "status": "For Sale",
    "listPriceUsd": 583000,
    "buyDirectPriceUsd": 577170,
    "buyDirectSavingsUsd": 5830,
    "originalListPriceUsd": "N/A",
    "priceCutUsd": "N/A",
    "pricePerSqFtUsd": 347.85,
    "estimatedMonthlyPaymentUsd": 2833.9,
    "bedrooms": 3,
    "bathrooms": 2,
    "squareFeet": 1676,
    "lotSizeSqFt": 6142,
    "yearBuilt": "1999",
    "propertyType": "Single Family",
    "stories": 1,
    "garageSpaces": 2,
    "hoaMonthlyUsd": 40,
    "annualPropertyTaxUsd": "Not Disclosed",
    "daysOnMarket": 98,
    "listedDate": "2026-06-03",
    "mlsSource": "NNRMLS",
    "selfTourAvailable": "No",
    "virtualTourUrl": "N/A",
    "floorPlanUrl": "https://images.opendoor.com/source/s3/cabinet-assets/production/storage/e3548c6c-a957-4d64-b9cf-6eb53376d721.png",
    "market": "reno_nv",
    "marketName": "Reno, NV",
    "street": "9889 Northrup Dr",
    "unitNumber": "N/A",
    "city": "Reno",
    "state": "NV",
    "zipCode": "89521",
    "neighborhood": "Double Diamond",
    "latitude": 39.437583,
    "longitude": -119.741623,
    "description": "Don't miss 9889 Northrup Dr, arranged for everyday comfort with a practical design. The interior features a fireplace and a kitchen island, complemented by all stainless steel appliances and double sinks in the primary bathroom. A patio extends to the fully fenced in backyard. A perfect blend of interior style and outdoor appeal awaits.",
    "photoCount": 21,
    "schools": [
      "DOUBLE DIAMOND ELEMENTARY SCHOOL (rating 5)",
      "DEPOALI MIDDLE SCHOOL (rating 7)",
      "DAMONTE RANCH HIGH SCHOOL (rating 5)"
    ],
    "photos": [
      "https://images.opendoor.com/pre/ios-listing-zoom/36c708f3-93ed-4762-bd4e-4f6950ae84e1.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/226b483d-eddf-4ab0-9057-80940a5951cb.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/a6fa2764-f419-4807-b038-c11d75627e34.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/f710b423-18be-44c3-9323-4bc674a7204a.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/d004c7e4-e3d8-4f6b-8012-0b6bae4e2f23.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/0f2c19af-4cb0-4366-bb36-01da51df4a97.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/0241eab4-9385-4789-a023-851516978724.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/44dd8b5e-146d-4053-baa5-9b5b550522a7.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/fb760df6-449f-469e-ad12-293c4d6cd9a2.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/6113b6ce-0547-4aea-9949-591f4a69bbc7.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/51b48f3c-5e20-4755-8647-492f959a7ef2.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/6b991ea4-8a11-450a-b42f-d4da6f090803.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/05123d7e-fa0f-44b8-9b3e-88257a1969ad.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/081c5b53-398a-4772-b28b-bd482104f81b.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/3c133f49-d198-41a9-9f04-043a1c9e1ac3.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/109332c5-8c6f-4a3e-9a0c-25f5e3fe8c15.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/c4df30cb-75e4-408e-abde-ba55ce7b4ba3.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/16455477-7cb7-486d-af14-0687460b69af.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/01ff0e48-5958-4924-9ccd-7c30ea1e5cad.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/2689d8a0-6355-46e0-ae74-0179eb892b6f.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/097f8cad-25a8-46b9-a08f-58ee30e91170.jpg"
    ],
    "scrapedAt": "2026-09-09T19:34:04.432Z",
    "error": null
  },
  {
    "imageUrl": "https://images.opendoor.com/pre/ios-listing-zoom/77236fbc-58c8-42c7-82a6-356d61f406b0.jpg",
    "address": "18036 E Curva De Plata Rio Verde AZ 85263",
    "url": "https://www.opendoor.com/properties/18036-E-Curva-De-Plata-Rio-Verde-AZ-85263/aid_a0921aa9-bab5-5060-a9a5-26fd308f8a6b",
    "id": "a0921aa9-bab5-5060-a9a5-26fd308f8a6b",
    "slug": "18036-E-Curva-De-Plata-Rio-Verde-AZ-85263",
    "status": "For Sale",
    "listPriceUsd": 585000,
    "buyDirectPriceUsd": 579150,
    "buyDirectSavingsUsd": 5850,
    "originalListPriceUsd": "N/A",
    "priceCutUsd": "N/A",
    "pricePerSqFtUsd": 300.31,
    "estimatedMonthlyPaymentUsd": 2843.62,
    "bedrooms": 2,
    "bathrooms": 2,
    "squareFeet": 1948,
    "lotSizeSqFt": 6496,
    "yearBuilt": "2016",
    "propertyType": "Single Family",
    "stories": 1,
    "garageSpaces": 2,
    "hoaMonthlyUsd": 541.67,
    "annualPropertyTaxUsd": "Not Disclosed",
    "daysOnMarket": 0,
    "listedDate": "2026-09-09",
    "mlsSource": "ARMLS",
    "selfTourAvailable": "No",
    "virtualTourUrl": "N/A",
    "floorPlanUrl": "https://images.opendoor.com/source/s3/cabinet-assets/production/storage/747f0540-80d8-45cd-a6f6-df70f2274d7c.png",
    "market": "phoenix",
    "marketName": "Phoenix, AZ",
    "street": "18036 E Curva De Plata",
    "unitNumber": "N/A",
    "city": "Rio Verde",
    "state": "AZ",
    "zipCode": "85263",
    "neighborhood": "Not Disclosed",
    "latitude": 33.74255,
    "longitude": -111.689851,
    "description": "INCREDIBLE BUYER INCENTIVES: $9,000 MORTGAGE CONCESSION. Seller will pay up to $9,000 at closing towards your interest rate buydown if you finance with lender of sellers choice.\n\n18036 E Curva De Plata is a one-story Rio Verde home with two bedrooms, two bathrooms, an office, and 1,811 square feet of living space. Built in 2016, the home has a kitchen with a sink island, stainless steel appliances, and cabinetry around the cooking area. The living and dining spaces connect to wide sliding doors leading outdoors. The primary bedroom includes a walk-in closet, and its bathroom has dual vanities and an enclosed shower. A covered patio with a built-in grill adjoins the landscaped yard. An attached two-car garage completes the layout, which brings the main living spaces together on one level.",
    "photoCount": 27,
    "schools": [
      "FOUNTAIN HILLS MIDDLE SCHOOL (rating 6)",
      "MCDOWELL MOUNTAIN ELEMENTARY SCHOOL (rating 4)",
      "FOUNTAIN HILLS HIGH SCHOOL (rating 4)"
    ],
    "photos": [
      "https://images.opendoor.com/pre/ios-listing-zoom/77236fbc-58c8-42c7-82a6-356d61f406b0.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/d09ad1b6-bf98-4ca4-a1ce-ab8b576677cb.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/2cb29939-dcd3-44ed-89d7-bcb5a16963e7.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/cecfd73b-d543-4a92-8042-84d5b716ce95.jpg",
      "https://images.opendoor.com/source/s3/cabinet-assets/production/storage/e5e360b3-513d-4839-bd45-497349489240.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/498a1bfd-5cbb-41fc-9d49-1326bb8582f8.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/0d276782-217f-4c0d-9510-490d8ef606cd.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/1e45ba65-e6aa-4c16-b92e-8c9f1c38bc44.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/9a560774-34e6-448f-97aa-177fbd430604.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/86dfb0d5-f7ac-4666-8483-174527df760b.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/d0781e2a-4de7-475e-8f6a-ac50d9a5ccbb.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/c8e87604-39e4-40ed-8bd6-9774fa2175fa.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/8dbc0709-0e8d-44fd-a5c4-c0219178c22f.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/f66a3d2b-7449-4049-bec5-3ea2142f421e.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/64ac0af3-656b-4121-b05e-f46e0c513718.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/7beccd23-12b6-4eb2-8617-9bbaaf3be2c3.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/51a9d777-ab09-443b-ab43-1c6df5d6a12c.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/7165732f-b8d3-4a46-bf4b-fde4fdde9c25.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/650d5367-8900-4728-a99f-0dd99c0c0807.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/c13c4c6e-55fb-49a5-8dc9-ca25ed0647d6.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/2c16065d-2168-43eb-9e7e-142ead0c5ca1.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/4d81dc16-3f57-4db2-9489-8ca90d9027be.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/b11e547a-4f5d-44a4-81e9-78c95d02f6db.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/148b2b32-6179-4687-8b5a-0f575ca64875.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/6a3f4d1f-bbf3-4d57-99e0-47f957a79840.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/3d905972-e7a9-4d7d-b2de-2536aeca17f7.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/5e225d56-137f-444e-af7d-94687cc48535.jpg"
    ],
    "scrapedAt": "2026-09-09T19:34:05.956Z",
    "error": null
  },
  {
    "imageUrl": "https://images.opendoor.com/pre/ios-listing-zoom/2ea5047e-f533-46b6-9c09-a7487a267dc0.jpg",
    "address": "25798 W Hilton Ave Buckeye AZ 85326",
    "url": "https://www.opendoor.com/properties/25798-W-Hilton-Ave-Buckeye-AZ-85326-18440847/aid_ff8c195b-a973-5b02-906f-f0afdad86c17",
    "id": "ff8c195b-a973-5b02-906f-f0afdad86c17",
    "slug": "25798-W-Hilton-Ave-Buckeye-AZ-85326-18440847",
    "status": "For Sale",
    "listPriceUsd": 375000,
    "buyDirectPriceUsd": 371250,
    "buyDirectSavingsUsd": 3750,
    "originalListPriceUsd": "N/A",
    "priceCutUsd": "N/A",
    "pricePerSqFtUsd": 150.91,
    "estimatedMonthlyPaymentUsd": 1822.83,
    "bedrooms": 5,
    "bathrooms": 3,
    "squareFeet": 2485,
    "lotSizeSqFt": 8386,
    "yearBuilt": "2006",
    "propertyType": "Single Family",
    "stories": 2,
    "garageSpaces": 2,
    "hoaMonthlyUsd": 60,
    "annualPropertyTaxUsd": "Not Disclosed",
    "daysOnMarket": 0,
    "listedDate": "2026-09-09",
    "mlsSource": "ARMLS",
    "selfTourAvailable": "Yes",
    "virtualTourUrl": "N/A",
    "floorPlanUrl": "https://images.opendoor.com/source/s3/cabinet-assets/production/storage/d35f784f-7787-4fea-93d7-9dff4504957c.png",
    "market": "phoenix",
    "marketName": "Phoenix, AZ",
    "street": "25798 W Hilton Ave",
    "unitNumber": "N/A",
    "city": "Buckeye",
    "state": "AZ",
    "zipCode": "85326",
    "neighborhood": "Not Disclosed",
    "latitude": 33.426818,
    "longitude": -112.605901,
    "description": "INCREDIBLE BUYER INCENTIVES: $6,000 MORTGAGE CONCESSION. Seller will pay up to $6,000 at closing towards your interest rate buydown if you finance with lender of sellers choice.\n\n25798 W Hilton Ave is a two-story Buckeye home with 2,566 square feet of living space, built in 2006. The kitchen combines stainless steel appliances with an island for meal preparation and counter seating. Adjacent dining and sitting areas provide room for meals and seating, while the main living room has a high ceiling and an open staircase connecting the levels. The upstairs primary bedroom includes a walk-in closet for storage, and its bathroom has double sinks, a tub, and a separate shower. A covered patio provides shaded outdoor space overlooking the backyard. An attached two-car garage completes the home's practical layout.",
    "photoCount": 28,
    "schools": [
      "WESTPARK ELEMENTARY SCHOOL (rating 5)",
      "YOUNGKER HIGH SCHOOL (rating 5)",
      "BUCKEYE PRE-SCHOOL (rating n/a)"
    ],
    "photos": [
      "https://images.opendoor.com/pre/ios-listing-zoom/2ea5047e-f533-46b6-9c09-a7487a267dc0.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/8986f225-ae43-4980-8b53-ee8235e3ab07.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/fd38534d-8514-42a2-8fcd-e5bbc458c306.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/ec44cfe3-eee3-419a-9591-71322b3205bb.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/0d6275f6-2503-4bb8-9e3d-a4151f1bee23.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/344b27a0-dd54-47e5-b2f8-1221ccd94e66.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/438b5088-d8e7-4fd3-b179-998ce5c77e9c.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/72b6eb08-3b27-470b-9278-c832ad508013.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/b9a78c75-6b06-4c6b-9235-7d002d449f3e.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/d0542b0d-c534-40f5-8d5c-cab4cee92a70.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/b9e3dbcd-2a2d-47c5-9724-cb7f12e80ef9.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/f68beeeb-e7e8-401b-9624-5eebd9810346.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/da58a3c1-204c-4736-9851-7047800c2364.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/2bf39ca2-5a35-4180-8d40-9ffbe87463dc.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/89fd3fbd-bb2b-429c-a5dd-cccfcb34f924.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/ff927975-1e8c-4420-933f-952d77f7417a.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/89acf4cf-573c-48d2-a687-05e76e101491.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/fb7cbacb-7ecc-4634-9dbd-055afebd6005.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/48547e40-0fbb-4909-83dc-3ddaffea1004.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/35e4870f-f76a-4bd9-b68f-d9e457f6a6cf.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/d90ee923-6bba-487b-af9e-12a282dd975f.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/309a8023-38ae-4af4-9401-e99d1085df4e.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/27c588ad-54bc-4636-a910-9743ecf3ed76.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/49bf80de-524c-496d-bffa-1013d3904744.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/d83232e3-37b9-42dd-b704-b8697f7ce0af.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/fb1cf342-c66c-411a-8416-5a7abf880af8.jpg",
      "https://images.opendoor.com/pre/ios-listing-zoom/11726928-39a3-4949-8c4d-19d81e46aafe.jpg",
      "https://images.opendoor.com/source/s3/cabinet-assets/production/storage/1fd65c31-37b2-4d42-815e-7a06d1b7e0c5.jpg"
    ],
    "scrapedAt": "2026-09-09T19:34:05.967Z",
    "error": null
  }
]
```

### ✨ Why choose this Actor

- **A dataset the portals do not have.** iBuyer inventory is one seller's book. It is not a slice of the MLS and it does not behave like one.
- **It opens the property page for every row.** Lot size, year built, days on market, HOA, tax, schools and the full photo set exist nowhere else on the site.
- **Geocoded out of the box.** Latitude and longitude on every home, taken from Opendoor's own map data.
- **Honest about the size of the dataset.** 3,210 homes nationwide, 92 of 140 markets with any stock at all. This is stated up front rather than discovered after a run.
- **Honest about what is missing.** Sold homes drop off Opendoor's public surface. This Actor collects live inventory, not sold comps.
- **Every filter was tested.** Filters Opendoor ignores were left out of the schema on purpose. There is no input here that does nothing.
- **No proxy needed.** The source answers plain HTTP, so runs are fast and cheap and the proxy toggle is there only for very large sweeps.

### 📈 How it compares to alternatives

| | This Actor | MLS portal scrapers | Opendoor by hand |
| --- | --- | --- | --- |
| Dataset | One iBuyer's own inventory | Everyone's listings | One iBuyer's own inventory |
| Homes available | 3,210 nationwide, stated | Millions | 3,210, 30 per page |
| Markets with stock | 92 of 140, measured and reported | Not applicable | You find out by clicking |
| Fields per home | 45 | 12 to 25 | Whatever you retype |
| Lot size and year built | Yes | Sometimes | Yes, one at a time |
| Days on market | Yes | Sometimes | Yes, one at a time |
| Coordinates | Yes | Rarely | No |
| Price cut when published | Yes | Sometimes | Yes, one at a time |
| Sold homes | No, they leave the public site | Often yes | No, they leave the public site |
| Full photo set and floor plan | Yes | Rarely | Yes, one at a time |
| Whole country in one run | Yes | Yes | No |

### 🚀 How to use

1. **Create a free Apify account.** New accounts get $5 of free credit, enough to try this Actor straight away: [sign up here](https://console.apify.com/sign-up?fpr=vmoqkp).
2. **Open the Actor** and keep the default market, or pick your own from the dropdown of 138 verified Opendoor markets.
3. **Or paste URLs instead.** Market pages such as `https://www.opendoor.com/homes/atlanta` and single property pages both work.
4. **Or leave both empty** and the Actor sweeps every market Opendoor publishes right now.
5. **Narrow it down.** Price range, bedrooms, bathrooms, living area, lot size, year built, property type, self-tour only, pool, single storey, no HOA.
6. **Set how many homes you want** and start the run.
7. **Download the result** as CSV, Excel, JSON or XML, or pull it from the dataset API into your own system.

Tip: Atlanta, Dallas-Fort Worth, Phoenix, Charlotte and Raleigh-Durham held 367, 242, 208, 194 and 172 homes on 2026-09-09. Most of the 48 empty markets are state-level buckets such as `vermont_other`, so start with a named metro.

### 💼 Business use cases

#### Price-cut hunting on one motivated seller

Opendoor holds houses on its own balance sheet and pays to carry them. Sort by days on market, watch `priceCutUsd`, and you have a list of properties whose owner is measurably losing money every week.

#### Tracking an iBuyer's footprint

Run the sweep weekly with no market filter and you have a time series of inventory count per metro. Market entries, exits and inventory build-ups show up before they reach a quarterly report.

#### Comparable asking prices with real specs

Every row carries lot size, year built, living area and price per square foot, which is enough to build a comparables table without touching a paid data provider.

#### Bulk acquisition sourcing

Build-to-rent and SFR buyers can filter a whole metro by beds, baths, year built and price and get a single counterparty for the entire list.

### 🔌 Automating Opendoor Homes Scraper

- **Make and Zapier:** trigger on run finish and push new homes into a CRM, a Slack channel or a Google Sheet.
- **Slack:** post an alert whenever a home in your metro drops below a price or crosses a days-on-market threshold.
- **Airbyte and Fivetran:** treat the dataset as a source and land it in BigQuery, Snowflake or Postgres.
- **GitHub Actions:** schedule a nightly run and commit the CSV so you have a versioned inventory history.
- **Google Drive and Sheets:** write each run to a dated sheet and let your team pivot it without touching the API.
- **Webhooks:** call your own endpoint the moment a run finishes, with the dataset ID in the payload.

### 🌟 Beyond business use cases

- **Research:** iBuyer inventory and holding times are a clean, public signal for housing liquidity in the metros Opendoor operates in.
- **Personal:** a buyer who wants a house they can tour alone, today, can filter the whole country for self-tour homes in one run.
- **Journalism:** the number of markets with zero stock is a measurable story about a company that has been shrinking.
- **Experimentation:** listing copy, floor plans and 20 to 30 photos per home make a compact, freely available dataset for image and text work.

### 🤖 Ask an AI assistant about this scraper

> I want to track Opendoor's inventory. Using the Apify Actor `parseforge/opendoor-homes-scraper`, explain how I would sweep every market weekly, which fields tell me a house is getting stale, and how I would detect that Opendoor has exited a metro entirely.

### ❓ Frequently Asked Questions

#### Do I need an Opendoor account or an API key?

No. Everything this Actor reads is on pages any visitor can open without logging in.

#### How many homes can I actually get?

3,210 on 2026-09-09, which was Opendoor's entire published inventory nationwide. That number moves as Opendoor buys and sells, so treat it as an order of magnitude, not a constant.

#### How many markets does Opendoor really operate in?

Opendoor lists 140 market identifiers, but only 92 of them held a single home on 2026-09-09. The other 48 returned zero. Many of the empty ones are state-level buckets such as `vermont_other` rather than real metros.

#### Can I get homes Opendoor has already sold?

No. Sold homes leave the public surface. Across 128 sampled homes every single one was on the market, and Opendoor's own sitemap contains exactly the same 3,210 properties the browse pages show. This is a live-inventory feed, not a sold-comps feed.

#### Why is `annualPropertyTaxUsd` sometimes "Not Disclosed"?

Because Opendoor does not publish it for that home. It filled on 53 of 128 sampled homes. `Not Disclosed` means the source withheld it, which is different from a parsing failure.

#### Why is `priceCutUsd` usually "N/A"?

Opendoor only publishes an earlier asking price for a minority of listings, 6 of 128 in our sample. Where it does, the row carries both the original price and the cut. Where it does not, no price cut is claimed.

#### What is `buyDirectPriceUsd`?

Opendoor offers a discount to buyers who purchase directly instead of bringing an agent. It was a flat 1% of the list price on every home we measured, and it is shipped as its own column so you can ignore it or model it.

#### Are these homes Opendoor owns, or other people's listings?

They are the homes on Opendoor's own marketplace, the inventory it buys and resells. The size of the set, about 3,200 homes nationally, is the giveaway: an MLS feed for the same metros would run into the millions.

#### Do the filters really work?

Yes, and only working ones shipped. Every filter was proven against a live market before it went into the schema. One internal flag that Opendoor's front end exposes but its URL ignores was deliberately left out because it does nothing.

#### How does pagination handle the end of a market?

Opendoor answers a page past the last one with a redirect back to page one. The Actor treats that redirect as the end of the market instead of scraping page one twice, so nothing is duplicated.

#### Do I need a proxy?

No. Opendoor answers plain HTTP requests from datacenter egress, so the proxy toggle ships off. Turn it on only for very large sweeps.

#### What happens if a property page fails to load?

About 1% of listed homes have no property page. Those rows are still delivered, built from the market listing card, and the log says which ones. A source that fails outright produces an `error` row that is never charged.

#### How fresh is the data?

Every run reads the live pages. There is no cache and no stored copy of Opendoor's inventory between runs.

#### Can I export to Excel?

Yes. CSV, Excel, JSON and XML are all one click away, and the same data is on the dataset API.

### 🔌 Integrate with any app

The dataset is available over the Apify API the second a run finishes, so anything that speaks HTTP can consume it. Use the official JavaScript or Python clients, call the REST endpoints directly, subscribe to a webhook, or connect through Make, Zapier, n8n, Airbyte or the Apify MCP server if your tooling is AI-native.

### 🔗 Recommended Actors

- [Realtor Agent Directory Scraper](https://apify.com/parseforge/realtor-agent-directory-scraper) for the agents working the same metros.
- [EstateSales Listings Scraper](https://apify.com/parseforge/estatesales-listings-scraper) for estate sales attached to property turnover.
- [Rightmove Property Scraper](https://apify.com/parseforge/rightmove-property-scraper) when the search moves to the UK.
- [City Crime Safety Watch Scraper](https://apify.com/parseforge/city-crime-safety-watch-scraper) to pair neighbourhood safety data with a home list.
- [ACV Auctions Scraper](https://apify.com/parseforge/acv-auctions-scraper) for another wholesale marketplace where one seller sets every price.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more real estate and lead generation Actors.

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** This is an independent tool and is not affiliated with, endorsed by or sponsored by Opendoor. It collects only publicly available data from pages any visitor can open.

# Actor input Schema

## `marketSlugs` (type: `array`):

Markets to sweep, taken from Opendoor's own market list. All 138 identifiers are verified against the live site. Opendoor is an iBuyer, so its inventory is small and uneven: on 2026-09-09 only 92 of them held a single home and the whole country came to 3,210 homes. Leave empty to sweep every market.

## `startUrls` (type: `array`):

Market pages such as https://www.opendoor.com/homes/atlanta or single property pages such as https://www.opendoor.com/properties/55-Concord-Ct-Covington-GA-30016/aid\_9f2c.... Filters set below are applied to market pages only.

## `maxItems` (type: `integer`):

Free users: limited to 10 items (preview). Paid users: optional, max 1,000,000. Opendoor's whole public inventory was 3,210 homes on 2026-09-09, so a full sweep needs roughly that many.

## `minPrice` (type: `integer`):

Only homes listed at or above this price, for example 250000.

## `maxPrice` (type: `integer`):

Only homes listed at or below this price, for example 600000.

## `minBedrooms` (type: `integer`):

Only homes with at least this many bedrooms.

## `minBathrooms` (type: `integer`):

Only homes with at least this many bathrooms.

## `minSquareFeet` (type: `integer`):

Only homes with at least this much interior living area.

## `maxSquareFeet` (type: `integer`):

Only homes with at most this much interior living area.

## `minLotSizeSqFt` (type: `integer`):

Only homes on a lot of at least this size. One acre is 43,560 sq ft.

## `maxLotSizeSqFt` (type: `integer`):

Only homes on a lot of at most this size.

## `minYearBuilt` (type: `integer`):

Only homes built in this year or later, for example 2010.

## `maxYearBuilt` (type: `integer`):

Only homes built in this year or earlier, for example 1990.

## `propertyTypes` (type: `array`):

Restrict to single family houses, condos or townhomes. Leave empty or pick all three for no restriction.

## `selfTourOnly` (type: `boolean`):

Only homes a buyer can unlock and tour alone without an agent appointment.

## `singleStoryOnly` (type: `boolean`):

Only homes with a single storey.

## `hasPool` (type: `boolean`):

Only homes with a pool.

## `noHoa` (type: `boolean`):

Only homes with no monthly homeowners association dues.

## `sortBy` (type: `string`):

Order Opendoor returns the homes in. Newest first is Opendoor's own default.

## `proxyConfiguration` (type: `object`):

Apify proxy settings.

## Actor input object example

```json
{
  "marketSlugs": [
    "phoenix"
  ],
  "startUrls": [],
  "maxItems": 10,
  "selfTourOnly": false,
  "singleStoryOnly": false,
  "hasPool": false,
  "noHoa": false,
  "sortBy": "newest",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Photo, address, price, beds, baths, sq ft, status and market

## `fullData` (type: `string`):

Complete dataset with all 45 fields

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "marketSlugs": [
        "phoenix"
    ],
    "startUrls": [],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/opendoor-homes-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "marketSlugs": ["phoenix"],
    "startUrls": [],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/opendoor-homes-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "marketSlugs": [
    "phoenix"
  ],
  "startUrls": [],
  "maxItems": 10
}' |
apify call parseforge/opendoor-homes-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/opendoor-homes-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/zMDYt6fDCHA45dmGb/builds/YRuThDBJJ4CQX3hU7/openapi.json
