{
  "openapi": "3.0.1",
  "info": {
    "title": "Realtor.com Property Listings Scraper",
    "description": "Scrape Realtor.com listings in bulk - for-sale homes, rentals, recently sold and new construction. Get price, beds, baths, sqft, lot, year built, address, GPS, agent/brokerage, photos and status flags. Paginate deep by city, ZIP or county. No login or API key.",
    "version": "0.1",
    "x-build-id": "iFqGVZw1CC8nhqcBh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapeworks~realtor-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapeworks-realtor-property-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/scrapeworks~realtor-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapeworks-realtor-property-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/scrapeworks~realtor-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapeworks-realtor-property-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",
        "required": [
          "searchLocations"
        ],
        "properties": {
          "searchLocations": {
            "title": "Search locations",
            "uniqueItems": true,
            "type": "array",
            "description": "One or more places to pull listings from. Each entry can be a city + state (\"Austin, TX\"), a ZIP code (\"78701\"), a county (\"Travis County, TX\"), a neighborhood, or a street address. Every location is paginated DEEP automatically (200 listings per page, up to Realtor.com's ~10,000-result window per location), so a handful of metros returns tens of thousands of listings. Results are billed per listing, so more locations = more rows.",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "for_sale",
              "for_rent",
              "sold",
              "ready_to_build"
            ],
            "type": "string",
            "description": "Which listings to pull. 'For sale' = homes on the market; 'For rent' = rentals (the price field is the monthly rent); 'Recently sold' = sold homes (soldPrice/soldDate populated, listPrice is the last asking price); 'New construction' = ready-to-build / builder listings.",
            "default": "for_sale"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevant",
              "newest",
              "price_low",
              "price_high",
              "lot_size"
            ],
            "type": "string",
            "description": "Order listings within each location. 'Most relevant' is Realtor.com's default ranking; 'Newest' returns freshly-listed homes first (great for lead-gen); 'Price low/high' and 'Largest lot' sort by those fields.",
            "default": "relevant"
          },
          "maxResultsPerLocation": {
            "title": "Max results per location",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum listings to return for EACH search location. The actor paginates automatically (200 per page). Realtor.com's API exposes up to ~10,000 results per location; set high to pull a whole metro, lower it to sample. Every listing returned is billed.",
            "default": 1000
          },
          "maxResults": {
            "title": "Max results overall (optional)",
            "minimum": 1,
            "maximum": 500000,
            "type": "integer",
            "description": "Optional overall cap across ALL locations combined. Leave empty for no overall cap (each location is still bounded by Max results per location). Useful to cap the total billed rows for a run."
          },
          "priceMin": {
            "title": "Min price (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings at or above this price. For rentals this is the minimum monthly rent. Leave empty for no lower bound."
          },
          "priceMax": {
            "title": "Max price (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings at or below this price. For rentals this is the maximum monthly rent. Leave empty for no upper bound."
          },
          "bedsMin": {
            "title": "Min bedrooms (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with at least this many bedrooms. Leave empty for any."
          },
          "bedsMax": {
            "title": "Max bedrooms (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with at most this many bedrooms. Leave empty for any."
          },
          "bathsMin": {
            "title": "Min bathrooms (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with at least this many bathrooms. Leave empty for any."
          },
          "sqftMin": {
            "title": "Min square feet (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with at least this interior square footage. Leave empty for any."
          },
          "propertyTypes": {
            "title": "Property types (optional)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict to specific property types. Common values: single_family, condo, townhomes, multi_family, mobile, land, farm, condos. Leave empty for all types.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Fallback proxy for reaching Realtor.com's API. The actor sends requests DIRECTLY first (the GraphQL API answers datacenter requests fine, so no proxy is needed on the happy path) and only routes through this proxy - rotating exits - if a request is ever rate-limited. The default (Apify Residential, US) is a safe fallback; leave it in place.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}