{
  "openapi": "3.0.1",
  "info": {
    "title": "Redfin Scraper — US Homes for Sale, Sold & Estimates",
    "description": "Scrape Redfin homes for sale, for rent and recently sold from search URLs or any US city, ZIP or neighborhood: price, beds, baths, sqft, photos, agent, open houses, Redfin Estimate.",
    "version": "0.1",
    "x-build-id": "tbEObcp3amfmAeJ0c"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tortuga~redfin-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tortuga-redfin-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/tortuga~redfin-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tortuga-redfin-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/tortuga~redfin-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tortuga-redfin-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": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Redfin search URLs with filters set in the browser (copy the address bar, e.g. https://www.redfin.com/city/30818/TX/Austin/filter/property-type=house,min-beds=3, https://www.redfin.com/zipcode/78704/filter/include=sold-3mo or https://www.redfin.com/city/30818/TX/Austin/apartments-for-rent), or home URLs (.../home/31240372), which return that home with full details. Leave empty if you use Locations below.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "US cities, ZIP codes, neighborhoods, counties or school districts, one per line, e.g. 'Austin, TX', '78704', 'South Congress, Austin', 'Travis County, TX', 'Brooklyn, NY'. Each is searched separately. Whole states cannot be searched on Redfin.",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "For sale, for rent or sold",
            "enum": [
              "for_sale",
              "for_rent",
              "sold"
            ],
            "type": "string",
            "description": "Which listings the Locations searches return (start URLs keep their own: /apartments-for-rent or /rentals = for rent, include=sold-... = sold).",
            "default": "for_sale"
          },
          "soldWithinDays": {
            "title": "Sold in the last N days (sold searches)",
            "minimum": 1,
            "maximum": 1825,
            "type": "integer",
            "description": "For sold searches: how far back. Redfin offers 7, 30, 90, 180, 365, 730, 1095 and 1825 days; other values use the nearest longer one. Default 90."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Only these home types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "single_family",
                "condos",
                "townhomes",
                "multi_family",
                "land",
                "mobile",
                "coop",
                "other"
              ],
              "enumTitles": [
                "House (single family)",
                "Condo",
                "Townhouse",
                "Multi-family",
                "Land",
                "Manufactured / mobile",
                "Co-op",
                "Other"
              ]
            }
          },
          "minPrice": {
            "title": "Min price ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum list price (sold searches: sale price; rentals: monthly rent) in US dollars."
          },
          "maxPrice": {
            "title": "Max price ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum list price (sold searches: sale price; rentals: monthly rent) in US dollars."
          },
          "minBeds": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bedrooms."
          },
          "maxBeds": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of bedrooms."
          },
          "minBaths": {
            "title": "Min bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bathrooms."
          },
          "minSqft": {
            "title": "Min living area (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum interior living area in square feet."
          },
          "maxSqft": {
            "title": "Max living area (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum interior living area in square feet."
          },
          "minLotSqft": {
            "title": "Min lot size (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum lot size in square feet (1 acre = 43,560 sq ft)."
          },
          "maxLotSqft": {
            "title": "Max lot size (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum lot size in square feet (1 acre = 43,560 sq ft)."
          },
          "minYearBuilt": {
            "title": "Built in or after (year)",
            "minimum": 1700,
            "type": "integer",
            "description": "Only homes built in or after this year."
          },
          "maxYearBuilt": {
            "title": "Built in or before (year)",
            "minimum": 1700,
            "type": "integer",
            "description": "Only homes built in or before this year."
          },
          "maxHoaFee": {
            "title": "Max HOA fee ($/month)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum monthly HOA fee."
          },
          "maxDaysOnMarket": {
            "title": "Max days on market",
            "minimum": 1,
            "type": "integer",
            "description": "Only listings that have been on Redfin for at most this many days (e.g. 7 for new listings)."
          },
          "includePending": {
            "title": "Include pending and contingent",
            "type": "boolean",
            "description": "For-sale searches show active and coming-soon homes like the site does; tick to add homes under contract (pending / contingent)."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "price_low",
              "price_high",
              "recommended",
              "largest",
              "price_per_sqft_low",
              "recently_sold"
            ],
            "type": "string",
            "description": "Order of the results. Default: newest first (sold searches: most recently sold; rentals: Redfin's recommended order). Searches with more than 2,000 wanted results are loaded in price bands, lowest prices first."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many listings (you pay per listing). With 'Only new or changed items' this is the number of listings checked per run.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include full description, history, Redfin Estimate, schools and walk score",
            "type": "boolean",
            "description": "Load each home's detail data (full description, features, price/listing history, tax history, public records, Redfin Estimate, Walk/Bike/Transit Score, schools). Four extra requests per home, charged as the 'detail' event. Not available for rentals.",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed items",
            "type": "boolean",
            "description": "Remember what earlier runs of this search returned and output only new items or items whose price/status changed. Use with a Schedule; unchanged items are not charged.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name for this watch, so several schedules on the same search stay separate; defaults to a key derived from the search input."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (datacenter) works for Redfin's API and is the cheapest option. Switch to RESIDENTIAL (US) only if runs report blocks.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}