{
  "openapi": "3.0.1",
  "info": {
    "title": "Realtor.com Scraper",
    "description": "Scrape Realtor.com for-sale, rental and sold listings by city, ZIP code or URL. Get prices, beds, baths, sqft, photos, price and tax history, schools and agent contacts as JSON, CSV or Excel. Flat $0.89 per 1,000 results with full details included. No login, cookies or proxies needed.",
    "version": "0.0",
    "x-build-id": "VgTIA0PWoxnMzwIcg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/batscrape~realtor-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-batscrape-realtor-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/batscrape~realtor-scraper/runs": {
      "post": {
        "operationId": "runs-sync-batscrape-realtor-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/batscrape~realtor-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-batscrape-realtor-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": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Places to search on Realtor.com: a city (\"Austin, TX\"), ZIP code (\"78701\"), neighborhood or county (\"Travis County, TX\"). Each location is searched separately, and results are deduplicated across locations so you never pay twice for the same property. Provide locations, start URLs, or both.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Realtor.com URLs. Search pages (for example realtor.com/realestateandhomes-search/Austin_TX/type-condo/price-200000-500000, /rentals/..., /show-recently-sold) keep their own mode and filters. Property pages (realtor.com/realestateandhomes-detail/...) return that one property.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "BUY",
              "RENT",
              "SOLD"
            ],
            "type": "string",
            "description": "Which listings to search for \"Locations\". Search URLs use the mode in the URL itself.",
            "default": "BUY"
          },
          "maxResultsPerQuery": {
            "title": "Max results per location or URL",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "How many properties to fetch for each location or search URL. 0 means all available results (Realtor.com shows at most 10,000 per search)."
          },
          "includeDetails": {
            "title": "Include full property details",
            "type": "boolean",
            "description": "On: each result is the full property (description, all photos, price and sale history, tax history, schools, agents, HOA fee, estimates, flood and noise data). Off: a lighter summary (price, beds, baths, size, address, up to 3 photos). Same price either way.",
            "default": true
          },
          "includeFloorplans": {
            "title": "Include floor plans",
            "type": "boolean",
            "description": "Add floor plans to full property details. Only community rentals (apartment buildings) have them.",
            "default": false
          },
          "type": {
            "title": "Property types",
            "type": "array",
            "description": "Only return these property types. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "single-family-home",
                "multi-family-home",
                "condo",
                "condop",
                "coop",
                "townhome",
                "apartments",
                "mfd-mobile-home",
                "farms-ranches",
                "land"
              ],
              "enumTitles": [
                "Single-family home",
                "Multi-family home",
                "Condo",
                "Condop",
                "Co-op",
                "Townhome",
                "Apartment",
                "Manufactured / mobile home",
                "Farm / ranch",
                "Land"
              ]
            }
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "relevant",
              "best-match",
              "newest",
              "recently-added",
              "sold-date",
              "newest-built",
              "luxury",
              "affordable",
              "highest-price",
              "lowest-price",
              "open-house-date",
              "recently-reduced",
              "largest-sqft",
              "lot-size",
              "photo-count"
            ],
            "type": "string",
            "description": "Result order. For sale: relevant, newest, newest-built, luxury, affordable, highest-price, lowest-price, open-house-date, recently-reduced, largest-sqft, lot-size, photo-count. For rent: best-match, recently-added, newest-built, luxury, affordable, highest-price, lowest-price. Sold: sold-date, newest-built, luxury, affordable, highest-price, lowest-price, largest-sqft, lot-size, photo-count. A sort that doesn't fit the mode is ignored. Leave empty for Realtor.com's default order."
          },
          "minPrice": {
            "title": "Min price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price. For rentals this is the monthly rent. In sold mode it filters on the listing price."
          },
          "maxPrice": {
            "title": "Max price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price. For rentals this is the monthly rent. In sold mode it filters on the listing price."
          },
          "minBed": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bedrooms. 0 includes studios."
          },
          "maxBed": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of bedrooms."
          },
          "minBath": {
            "title": "Min bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bathrooms."
          },
          "maxBath": {
            "title": "Max bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of bathrooms."
          },
          "minSqft": {
            "title": "Min home size (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum interior size in square feet."
          },
          "maxSqft": {
            "title": "Max home size (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum interior size in square feet."
          },
          "minLotSqft": {
            "title": "Min lot size (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum lot size in square feet (1 acre = 43,560 sqft)."
          },
          "maxLotSqft": {
            "title": "Max lot size (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum lot size in square feet (1 acre = 43,560 sqft)."
          },
          "minYearBuilt": {
            "title": "Built after (year)",
            "minimum": 1500,
            "maximum": 2100,
            "type": "integer",
            "description": "Earliest year built."
          },
          "maxYearBuilt": {
            "title": "Built before (year)",
            "minimum": 1500,
            "maximum": 2100,
            "type": "integer",
            "description": "Latest year built."
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Only listings whose text contains this keyword, e.g. \"pool\" or \"waterfront\"."
          },
          "radius": {
            "title": "Radius (miles)",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Widen the search to this many miles around the location (0-50)."
          },
          "daysOnMarket": {
            "title": "Listed within (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Only listings added to Realtor.com within this many days."
          },
          "tags": {
            "title": "Amenities",
            "type": "array",
            "description": "Only listings that have all of these amenities.",
            "items": {
              "type": "string",
              "enum": [
                "garage-1-or-more",
                "garage-2-or-more",
                "garage-3-or-more",
                "swimming-pool",
                "spa-or-hot-tub",
                "horse-facilities"
              ],
              "enumTitles": [
                "Garage (1+)",
                "Garage (2+)",
                "Garage (3+)",
                "Swimming pool",
                "Spa or hot tub",
                "Horse facilities"
              ]
            }
          },
          "includePending": {
            "title": "Include pending and contingent listings",
            "type": "boolean",
            "description": "Turn off to hide listings that are already pending or contingent.",
            "default": true
          },
          "soldWithin": {
            "title": "Sold within",
            "enum": [
              "1",
              "3",
              "6",
              "12",
              "24",
              "36"
            ],
            "type": "string",
            "description": "Sold mode only: how far back to look for sales.",
            "default": "6"
          },
          "maxItems": {
            "title": "Max items (total)",
            "minimum": 0,
            "type": "integer",
            "description": "Overall cap across all locations and URLs combined. 0 or empty means unlimited (each location or URL is still separately capped by \"Max results per location or URL\")."
          },
          "customMapFunction": {
            "title": "Custom map function",
            "type": "string",
            "description": "A function that takes each output object and returns a transformed object. MUST NOT be used for filtering — accounts using it for filtering may be banned. Leave empty to store items unchanged."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}