{
  "openapi": "3.0.1",
  "info": {
    "title": "HotPads Rental Scraper",
    "description": "[💰 $2.5 / 1K] Scrape HotPads rental listings by city, ZIP, map area, or URL. Get rent, beds, baths, sqft, address, coordinates, amenities, photos, pet policy, and property-manager contacts for apartments, houses, condos & rooms.",
    "version": "1.0",
    "x-build-id": "Y075xSspGFSmTDjLV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~hotpads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-hotpads-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/solidcode~hotpads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-hotpads-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/solidcode~hotpads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-hotpads-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": "Search Locations",
            "type": "array",
            "description": "Search for rentals by typing a city or ZIP code (e.g. 'Austin, TX' or '78701'). To target a specific neighborhood, pan/zoom the HotPads map to it and paste that URL under HotPads URLs instead. No need to build URLs manually. The filters below apply to these searches.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "HotPads URLs",
            "type": "array",
            "description": "Paste HotPads URLs directly. Works with search-results pages (city, neighborhood, or property-type pages) and individual listing pages. The location and property type built into the URL are honored. Price, bedroom, bathroom, and pet filters are NOT read from the URL — if you need those, use a Search Location with the Filters section below instead of pasting a filtered URL.",
            "items": {
              "type": "string"
            }
          },
          "propertyType": {
            "title": "Property Type",
            "enum": [
              "any",
              "apartment",
              "house",
              "condo",
              "townhome",
              "room",
              "multifamily"
            ],
            "type": "string",
            "description": "Only return this kind of rental. Applies to Search Locations only — ignored for pasted URLs."
          },
          "minPrice": {
            "title": "Minimum Rent (USD / month)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings at or above this monthly rent. Leave blank for no minimum."
          },
          "maxPrice": {
            "title": "Maximum Rent (USD / month)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings at or below this monthly rent. Leave blank for no maximum."
          },
          "minBedrooms": {
            "title": "Minimum Bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Fewest bedrooms to include. Use 0 to include studios. Leave blank for no minimum."
          },
          "maxBedrooms": {
            "title": "Maximum Bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Most bedrooms to include. Leave blank for no maximum."
          },
          "minBathrooms": {
            "title": "Minimum Bathrooms",
            "minimum": 0,
            "type": "number",
            "description": "Fewest bathrooms to include (half-baths allowed, e.g. 1.5). Leave blank for no minimum."
          },
          "petPolicy": {
            "title": "Pet Policy",
            "enum": [
              "any",
              "dogs",
              "cats",
              "dogs_and_cats"
            ],
            "type": "string",
            "description": "Only return listings that allow the selected pets. Applies to Search Locations only."
          },
          "sortBy": {
            "title": "Sort Results By",
            "enum": [
              "best_match",
              "newest",
              "price_low_to_high",
              "price_high_to_low"
            ],
            "type": "string",
            "description": "Order in which listings are collected. Applies to Search Locations only. Price sorting ranks up to about 3,000 listings per location before ordering — for markets larger than that, sort a smaller area (a ZIP code, or a pasted HotPads map URL) or add filters."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to return across all locations and URLs combined. Set to 0 to collect all available, up to 50,000 per run. Each location returns up to about 8,000 listings — split very large markets (e.g. New York) across ZIP codes or smaller pasted HotPads map areas to go beyond that. When sorting by price, up to about 3,000 listings per location are ranked. Tip: start with 20-50 to test, then increase."
          },
          "includeListingDetails": {
            "title": "Include Full Listing Details",
            "type": "boolean",
            "description": "Open each listing to collect the full record: all photos, amenities, unit floorplans, nearby schools, pet fees, and description. Slower but much richer. When off, only the data shown on search cards is returned."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}