{
  "openapi": "3.0.1",
  "info": {
    "title": "HotPads Rentals Scraper - Apartments & Houses",
    "description": "Scrape apartments and houses for rent on HotPads across 69 rental categories. Rows carry the rent, bedroom range, full address, units available, promotion tag and leasing phone, with optional bathrooms, square footage, unit level rents, amenities, photos, pet policy, schools and fees.",
    "version": "0.0",
    "x-build-id": "Ffbi4gls1gU5bZEEv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~hotpads-rentals-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-hotpads-rentals-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/parseforge~hotpads-rentals-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-hotpads-rentals-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/parseforge~hotpads-rentals-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-hotpads-rentals-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": {
          "searchLocations": {
            "title": "Locations",
            "type": "array",
            "description": "US markets to scrape, one per line. Accepts the HotPads slug (austin-tx), the city and state (Austin, TX) or the spelled out state (Austin Texas); all three resolve to the same market page.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Rental category",
            "enum": [
              "apartments-for-rent",
              "houses-for-rent",
              "condos-for-rent",
              "townhomes-for-rent",
              "duplexes-for-rent",
              "rooms-for-rent",
              "sublets",
              "student-housing",
              "senior-housing-for-rent",
              "corporate-housing-for-rent",
              "studio-apartments-for-rent",
              "1-bedroom-apartments-for-rent",
              "2-bedroom-apartments-for-rent",
              "3-bedroom-apartments-for-rent",
              "4-bedroom-apartments-for-rent",
              "1-bedroom-houses-for-rent",
              "2-bedroom-houses-for-rent",
              "3-bedroom-houses-for-rent",
              "4-plus-bedroom-houses-for-rent",
              "affordable-apartments-for-rent",
              "affordable-houses-for-rent",
              "loft-apartments-for-rent",
              "furnished-apartments-for-rent",
              "furnished-houses-for-rent",
              "furnished-duplexes-for-rent",
              "pet-friendly-apartments-for-rent",
              "pet-friendly-houses-for-rent",
              "pet-friendly-duplexes-for-rent",
              "apartments-for-rent-with-parking",
              "apartments-for-rent-with-laundry",
              "apartments-for-rent-with-pool",
              "apartments-for-rent-with-gym",
              "apartments-for-rent-with-gated-entry",
              "apartments-for-rent-with-air-conditioning",
              "apartments-for-rent-with-heating",
              "houses-for-rent-with-pool",
              "townhomes-for-rent-with-pool",
              "for-rent-by-owner",
              "houses-for-rent-by-owner",
              "townhomes-for-rent-by-owner",
              "apartments-and-condos-for-rent-by-owner",
              "apartments-under-500",
              "apartments-under-1000",
              "apartments-under-1500",
              "apartments-under-2000",
              "apartments-under-2500",
              "apartments-under-3000",
              "houses-under-500",
              "houses-under-1000",
              "houses-under-1500",
              "houses-under-2000",
              "houses-under-2500",
              "houses-under-3000",
              "condos-under-500",
              "condos-under-1000",
              "condos-under-1500",
              "condos-under-2000",
              "condos-under-2500",
              "condos-under-3000",
              "duplexes-under-500",
              "duplexes-under-1000",
              "duplexes-under-1500",
              "duplexes-under-2000",
              "duplexes-under-2500",
              "duplexes-under-3000",
              "rooms-for-rent-under-500",
              "rooms-for-rent-under-1000",
              "rooms-for-rent-under-1500",
              "rooms-for-rent-under-2000"
            ],
            "type": "string",
            "description": "Which HotPads category page to paginate for every location. Each value is a real HotPads URL segment and applies the filter on the source side, so the row counts change with it.",
            "default": "apartments-for-rent"
          },
          "startUrls": {
            "title": "HotPads URLs",
            "type": "array",
            "description": "Optional. Paste HotPads search URLs to scrape them exactly as given, including neighbourhood, county, zip and university pages that the location plus category pair cannot express. When set, the locations above are still scraped as well.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: limited to 10 items (preview). Paid users: up to 1,000,000."
          },
          "maxPagesPerSearch": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How deep to paginate each location and category pair. HotPads returns 40 listings per page, so 25 pages is 1,000 listings per market."
          },
          "minPrice": {
            "title": "Minimum rent",
            "minimum": 0,
            "type": "integer",
            "description": "Drop listings whose starting rent is below this many US dollars per month."
          },
          "maxPrice": {
            "title": "Maximum rent",
            "minimum": 0,
            "type": "integer",
            "description": "Drop listings whose starting rent is above this many US dollars per month."
          },
          "minBeds": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Keep listings that offer at least this many bedrooms. Studios count as 0."
          },
          "maxBeds": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Keep listings whose smallest floor plan is at most this many bedrooms. Studios count as 0."
          },
          "listingTagFilter": {
            "title": "Listing tag contains",
            "type": "string",
            "description": "Keep only listings carrying a promotion tag that contains this text, for example \"Price Drop\", \"New Today\", \"Special Offer\" or \"Month Free\"."
          },
          "verifiedOnly": {
            "title": "Verified listings only",
            "type": "boolean",
            "description": "Keep only listings HotPads marks as Verified.",
            "default": false
          },
          "withPhoneOnly": {
            "title": "Only listings with a phone number",
            "type": "boolean",
            "description": "Keep only listings that publish a leasing phone number on the search card.",
            "default": false
          },
          "includeMarketSummary": {
            "title": "Market summary row",
            "type": "boolean",
            "description": "Add one extra row per market with the HotPads median rent, the national median it is compared against, the live inventory count and its 30 day move. Read from page one of the search; it is not on later pages.",
            "default": false
          },
          "includeDetails": {
            "title": "Open each listing page",
            "type": "boolean",
            "description": "Open every listing page to add bathrooms, square footage, the low and high of the rent range, the property description, the neighbourhood, the special offer text and when HotPads last updated it. Required by every block below, and it costs one extra page load per listing.",
            "default": false
          },
          "includeUnits": {
            "title": "Available units and floor plans",
            "type": "boolean",
            "description": "Add every currently available unit: unit number, rent, previous rent when it dropped, availability date, and the floor plan bedrooms, bathrooms and square footage.",
            "default": false
          },
          "includeAmenities": {
            "title": "Amenities",
            "type": "boolean",
            "description": "Add the full building amenity list as HotPads publishes it, typically 10 to 30 entries covering parking, pets, security, pool, gym and year built.",
            "default": false
          },
          "includePhotoGallery": {
            "title": "Photo gallery",
            "type": "boolean",
            "description": "Add every listing photo URL at 1200px, not just the thumbnail carried on the search row.",
            "default": false
          },
          "includeGeo": {
            "title": "Coordinates",
            "type": "boolean",
            "description": "Add the latitude and longitude of the building.",
            "default": false
          },
          "includePetPolicy": {
            "title": "Pet policy",
            "type": "boolean",
            "description": "Add the dog and cat policy: allowed or not, deposit, one time fee, monthly fee, how many pets and the weight limit.",
            "default": false
          },
          "includeFees": {
            "title": "Costs, fees and lease terms",
            "type": "boolean",
            "description": "Add the estimated total move in cost, the monthly rent and fees range and the one time fees total.",
            "default": false
          },
          "includeContact": {
            "title": "Property manager",
            "type": "boolean",
            "description": "Add the management company, its phone number, the office hours by day and the outbound website link.",
            "default": false
          },
          "includeSchools": {
            "title": "Nearby schools",
            "type": "boolean",
            "description": "Add the assigned school district and the nearby schools with type, grade range, distance in miles and GreatSchools rating.",
            "default": false
          },
          "includeDemand": {
            "title": "Demand signals",
            "type": "boolean",
            "description": "Add how many times the listing was viewed in the past week and how many renters have contacted it.",
            "default": false
          },
          "includeFaq": {
            "title": "Listing FAQ",
            "type": "boolean",
            "description": "Add the question and answer pairs HotPads publishes on the listing page, including the unit counts and starting rents per bedroom count.",
            "default": false
          },
          "includeSimilar": {
            "title": "Similar rentals",
            "type": "boolean",
            "description": "Add the comparable rentals HotPads shows on the listing page, each with its name and city.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy used for every browser session. Leave the default unless you have a reason to change it.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}