{
  "openapi": "3.0.1",
  "info": {
    "title": "Redfin Scraper: Homes for Sale, Price Drops & Area Comps",
    "description": "Redfin homes for sale by US city, ZIP or Redfin URL. Each home compared with recent sales in its ZIP ($/sq ft vs median, Redfin Data Center). Schedule it: new listings, price drops and homes that left the market since your last run. No proxy needed.",
    "version": "1.0",
    "x-build-id": "XOKvFF7MvGTAylMH5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/wellbuilt_zythem~redfin-listings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-wellbuilt_zythem-redfin-listings",
        "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/wellbuilt_zythem~redfin-listings/runs": {
      "post": {
        "operationId": "runs-sync-wellbuilt_zythem-redfin-listings",
        "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/wellbuilt_zythem~redfin-listings/run-sync": {
      "post": {
        "operationId": "run-sync-wellbuilt_zythem-redfin-listings",
        "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": [
          "locations"
        ],
        "properties": {
          "locations": {
            "title": "Cities, ZIP codes or Redfin URLs",
            "type": "array",
            "description": "One per line: a US city with its state (\"Austin, TX\", \"Miami, Florida\"), a ZIP code (\"78758\"), or a Redfin URL of a city, ZIP, county or neighborhood (\"https://www.redfin.com/county/2866/TX/Travis-County\").",
            "items": {
              "type": "string"
            }
          },
          "maxHomesPerLocation": {
            "title": "Max homes per place",
            "minimum": 1,
            "type": "integer",
            "description": "Newest listings first. Austin has about 5,800 homes for sale, Houston about 16,500. To detect homes that left the market, read the whole place (leave the default or higher).",
            "default": 5000
          },
          "onlyChanges": {
            "title": "Only new listings and price drops since the last run",
            "type": "boolean",
            "description": "Deliver only homes not seen in the previous run of this feed, or whose price fell at least \"Price drop %\". The first run of a place has nothing to compare with: it delivers the homes listed in the last 7 days (and Coming Soon) and remembers the rest. Off: every home found, with the same signals as columns.",
            "default": false
          },
          "priceDropThresholdPct": {
            "title": "Price drop %",
            "minimum": 1,
            "type": "integer",
            "description": "A home counts as a price drop when its price is at least this much lower than in the last run.",
            "default": 1
          },
          "includeOffMarket": {
            "title": "Also deliver homes that left the market",
            "type": "boolean",
            "description": "Add a row for each home that was for sale in the last run and is not anymore (went pending, sold or was withdrawn). Only for places read completely, from the second run on.",
            "default": false
          },
          "minPrice": {
            "title": "Min price ($)",
            "minimum": 1,
            "type": "integer",
            "description": "Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Max price ($)",
            "minimum": 1,
            "type": "integer",
            "description": "Leave empty for no maximum."
          },
          "minBeds": {
            "title": "Min beds",
            "minimum": 1,
            "type": "integer",
            "description": "Leave empty for any."
          },
          "minBaths": {
            "title": "Min baths",
            "minimum": 1,
            "type": "integer",
            "description": "Leave empty for any."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Empty: all types.",
            "items": {
              "type": "string",
              "enum": [
                "house",
                "condo",
                "townhouse",
                "multi_family",
                "land",
                "mobile",
                "co_op",
                "other"
              ],
              "enumTitles": [
                "House",
                "Condo",
                "Townhouse",
                "Multi-family",
                "Land",
                "Mobile / manufactured",
                "Co-op",
                "Other"
              ]
            }
          },
          "maxDaysOnMarket": {
            "title": "Max days on market",
            "minimum": 1,
            "type": "integer",
            "description": "Only homes listed at most this many days ago. Coming Soon homes have no days on market and are kept."
          },
          "excludeComingSoon": {
            "title": "Exclude Coming Soon",
            "type": "boolean",
            "description": "Leave out homes marked Coming Soon (not yet open for showings).",
            "default": false
          },
          "maxPricePerSqftVsAreaPct": {
            "title": "Max $/sq ft vs ZIP sales (%)",
            "type": "integer",
            "description": "Only homes whose price per square foot is at most this far from the median sale price per square foot of their ZIP code. -10 keeps homes listed at least 10 % below recent sales; homes without square feet are left out."
          },
          "maxResults": {
            "title": "Max rows",
            "minimum": 1,
            "type": "integer",
            "description": "Cap for the whole run. Empty for no cap."
          },
          "stateStoreName": {
            "title": "Feed memory name",
            "type": "string",
            "description": "Key-value store that remembers the homes and prices seen, one record per place. Use the same name every run of a feed.",
            "default": "redfin-listings-seen"
          },
          "resetState": {
            "title": "Forget previous runs",
            "type": "boolean",
            "description": "Start the feed memory of these places from scratch in this run.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: Redfin answers without a proxy. Turn it on only if your runs start getting refused.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}