{
  "openapi": "3.0.1",
  "info": {
    "title": "Homes.com Scraper",
    "description": "Scrape Homes.com listings for sale, for rent and recently sold by city, ZIP, coordinates or URL: price, beds, baths, sqft, photos, MLS number, public records, features and listing agent contacts. Search agents too.",
    "version": "1.0",
    "x-build-id": "yWSiYGXuOgpdhtL3T"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~homes-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-homes-com-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/parsebird~homes-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-homes-com-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/parsebird~homes-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-homes-com-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": [
          "operation"
        ],
        "properties": {
          "operation": {
            "title": "Operation",
            "enum": [
              "searchByLocation",
              "searchByZip",
              "searchByCoordinates",
              "searchByUrl",
              "detailsById",
              "detailsByUrl",
              "agentSearch",
              "agentDetails",
              "autocomplete"
            ],
            "type": "string",
            "description": "Choose what to look up. Each operation uses the fields listed in its name: location, ZIP code, coordinates, URL, property ID, agent name or agent ID.",
            "default": "searchByLocation"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Enter a city and state (\"Austin, TX\"), a neighborhood (\"Mueller, Austin, TX\"), a county (\"Travis County, TX\"), a metro area or a whole state (\"Vermont\"). Used by Search by location, Agent search and Location autocomplete. Put several locations on separate lines to run them one after another."
          },
          "zipCode": {
            "title": "ZIP code",
            "type": "string",
            "description": "Enter a 5-digit US ZIP code for Search by ZIP code, e.g. 78724. Separate several ZIP codes with commas."
          },
          "latitude": {
            "title": "Latitude",
            "type": "string",
            "description": "Center point latitude for Search by coordinates, e.g. 30.2672."
          },
          "longitude": {
            "title": "Longitude",
            "type": "string",
            "description": "Center point longitude for Search by coordinates, e.g. -97.7431."
          },
          "radius": {
            "title": "Radius (miles)",
            "type": "string",
            "description": "Search radius around the coordinates, in miles (0.1–50). Default: 1."
          },
          "url": {
            "title": "Homes.com URL",
            "type": "string",
            "description": "Paste a Homes.com URL copied from your browser: a search page (https://www.homes.com/austin-tx/homes-for-rent/) for Search by URL, a property page (https://www.homes.com/property/...) for Property details by URL, or an agent profile (https://www.homes.com/real-estate-agents/...) for Agent details. Put several URLs on separate lines."
          },
          "id": {
            "title": "Property ID",
            "type": "string",
            "description": "Homes.com property ID for Property details by ID: the propertyId of a search row, or the last part of a property URL (e.g. x5zewgn876r6t). Separate several IDs with commas."
          },
          "name": {
            "title": "Agent name",
            "type": "string",
            "description": "Real estate agent name for Agent search, e.g. John Smith. Name search covers the whole US."
          },
          "agentId": {
            "title": "Agent ID",
            "type": "string",
            "description": "Homes.com agent ID for Agent details: the agentId of an Agent search row (e.g. w9enbmj). Separate several IDs with commas."
          },
          "searchType": {
            "title": "Listing type",
            "enum": [
              "FOR_SALE",
              "FOR_RENT",
              "SOLD"
            ],
            "type": "string",
            "description": "Homes for sale, homes for rent, or recently sold homes. Applies to location, ZIP and coordinate searches (a search URL keeps its own listing type).",
            "default": "FOR_SALE"
          },
          "propertyType": {
            "title": "Property type",
            "type": "array",
            "description": "Limit the search to one or more property types. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "house",
                "townhouse",
                "condo",
                "multi_family",
                "apartment",
                "land",
                "mobile",
                "coop",
                "other"
              ],
              "enumTitles": [
                "House",
                "Townhouse",
                "Condo",
                "Multi-family",
                "Apartment (rentals)",
                "Land",
                "Mobile / manufactured",
                "Co-op",
                "Other"
              ]
            }
          },
          "priceMin": {
            "title": "Min price ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest list price (or monthly rent for rentals)."
          },
          "priceMax": {
            "title": "Max price ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest list price (or monthly rent for rentals)."
          },
          "bedsMin": {
            "title": "Min bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only homes with at least this many bedrooms."
          },
          "bathsMin": {
            "title": "Min bathrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only homes with at least this many bathrooms."
          },
          "includeDetails": {
            "title": "Scrape full property details",
            "type": "boolean",
            "description": "Open each property page found by a search and add the full description, MLS number, full feature lists, price history, tax and purchase records, open houses and agent emails. Search rows are then charged as property details instead of basic listings.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of rows to save in this run (listings, property details, agents or suggestions).",
            "default": 100
          },
          "generateReport": {
            "title": "Save market report",
            "type": "boolean",
            "description": "For searches, save a market KPI report (median price, price per sq ft, breakdowns by property type, beds and ZIP code) to the key-value store as report.html and REPORT.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Route requests through Apify Proxy or your own proxies.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}