
Google Ads Scraper
scrape.ly/store/querystone/google-ads-scraperLead generationSEO tools
4 monthly users

Scrape HotPads.com rentals by city, neighborhood, ZIP code, map point or URL: monthly rent, beds, baths, sqft, address, coordinates, landlord or property manager with phone, photos, description, amenities, pet policy, floor plans with unit prices and nearby schools.
Scrape rental listings from HotPads.com: monthly rent, beds, baths, square feet, full address with coordinates, the landlord or property manager with phone number, photos, description, amenities, pet policy, floor plans with unit prices and nearby schools. Search by city, neighborhood, ZIP code, map point or HotPads URL. No login, no browser, and you pay only for the listings you get.
New York, NY, Brooklyn or 78758, or paste HotPads search or listing URLs.latitude,longitude,radiusMiles) and set filters: property type, rent, beds, baths, size, pets, amenities, keywords, listing age.| Field | What it does |
|---|---|
locations | Cities, neighborhoods, boroughs, ZIP codes or HotPads search URLs. Each entry is its own search. Add the state to ambiguous names (Astoria, NY). |
startUrls | HotPads listing (…/pad) or building (…/building) URLs, listing IDs, or search URLs. |
coordinates | latitude,longitude or latitude,longitude,radiusMiles (radius defaults to 1.5 miles). |
maxItems | Most listings to save for each location, map point or search URL. 0 means no limit. |
includeDetails | Load the full record of each listing (on by default, same price). |
propertyTypes, rentalTypes | Apartment, house, condo, townhouse, duplex; standard rental, room, sublet, corporate. |
minPrice / maxPrice, minBeds / maxBeds, minBaths, minSqft / maxSqft | Rent and size filters. |
pets, amenities, keywords, listedWithin | Cats or dogs allowed, laundry, parking and more, free text, new listings only. |
sortBy | Newest, rent low to high, rent high to low, most viewed or best match. |
{
"locations": ["New York, NY", "78758"],
"coordinates": ["40.7128,-74.006,1"],
"maxItems": 100,
"propertyTypes": ["apartment", "condo"],
"minBeds": 1,
"maxPrice": 4000,
"pets": ["dogs"],
"sortBy": "newest"
}
Filters apply to locations and coordinates. A pasted HotPads search URL keeps its own filters (price, beds, pets, sort and so on).
One row per rental listing. A building with several available units gives one row per unit listing.
| Field | Description |
|---|---|
id, buildingId, unit | HotPads listing ID, building (lot) ID and unit number |
url, buildingUrl | Listing page and building page |
title, propertyType, listingType | Name, apartment / condo / house / townhouse / duplex, rental / room / sublet / corporate |
price, priceMax | Monthly rent in USD (lowest and highest for buildings with several units) |
beds, bedsMax, baths, bathsMax, sqft, sqftMax | Size (ranges for multi-unit buildings; 0 beds = studio) |
street, city, state, zip, neighborhood, latitude, longitude | Location |
companyName, contactName, contactPhone, companyWebsite, officeHours | Landlord or property manager |
description, amenities, highlights | Listing text and amenity lists |
allowsCats, allowsDogs, petPolicy | Pet rules |
units | Floor plans and units with beds, baths, sqft, rent and layout image |
unitsAvailable, totalUnits, specialOffer, furnished | Availability and specials |
photos, coverPhoto, photoCount | Photo URLs (1200 px) |
schools | Nearby schools with type, rating and grades |
views, inquiries, listedAt, activatedAt, updatedAt | Popularity and dates |
searchInput, scrapedAt | The input that found the listing and the scrape time |
Example row from a test run (shortened; the contact person is fictional):
{
"id": "syn9c2ywsmde",
"buildingId": "252qc3k",
"unit": "9J",
"url": "https://hotpads.com/43-15-52nd-st-woodside-ny-11377-252qc3k/9j/pad",
"title": "43-15 52nd St #9J",
"propertyType": "condo",
"listingType": "rental",
"price": 5150,
"beds": 2,
"baths": 2,
"street": "43-15 52nd St",
"city": "Woodside",
"state": "NY",
"zip": "11377",
"neighborhood": "Woodside",
"latitude": 40.7435677,
"longitude": -73.9123689,
"companyName": "Example Property Management Inc",
"contactName": "Jordan Example",
"contactPhone": "718-555-0142",
"description": "Top floor penthouse unit with large terrace with city views! ...",
"amenities": ["Bicycle Storage", "Central Air Conditioning", "Dishwasher", "Fitness Center", "Laundry: In Unit", "Terrace"],
"allowsCats": true,
"allowsDogs": true,
"units": [{ "name": "9J", "type": "floorplan", "beds": 2, "baths": 2, "priceMin": 5150, "priceMax": 5150 }],
"totalUnits": 87,
"photoCount": 14,
"coverPhoto": "https://photos.zillowstatic.com/fp/c4bf267bf6df306a75f97c4d29da0f7f-rentals_large_1200_1200.webp",
"schools": [{ "name": "Ps 11 Kathryn Phelan", "type": "primaryschool", "rating": 9, "grades": "PK-6" }],
"listedAt": "2026-10-22T04:18:35+00:00",
"searchInput": "New York, NY",
"scrapedAt": "2026-10-22T06:58:19+00:00"
}
You pay $2.00 per 1,000 listings ($0.002 per listing saved), with or without full details, plus a small amount of platform usage (compute and datacenter proxy traffic). Example: 1,000 listings ≈ $2.00 in listing fees plus about two cents of usage (measured: about 55 seconds of compute at the default 512 MB and 14 MB of datacenter proxy traffic). Inputs that return nothing cost nothing, and the run stops cleanly when it reaches your maximum charge.
Is it legal to scrape HotPads? The actor only collects data that HotPads shows publicly to every visitor, without logging in. Check the site's terms and your local laws (including privacy rules for contact data) for your use case.
Do I need a HotPads account or my own proxy? No. No login is needed. The actor uses datacenter proxies by default and moves to US residential proxies by itself if HotPads keeps blocking them.
How many listings can I get?
As many as HotPads has for your search. HotPads serves about 4,200 properties per map area, so bigger areas such as all of New York City are split into smaller map tiles automatically. Set maxItems to 0 to collect everything.
Why is a field empty? Fields are only filled when the listing has them. For example, many individual apartments in New York show no square footage, and small landlords often list no company name.
Can I schedule it or use it from my code? Yes. Schedule runs in the console (for example daily, sorted by newest) and call the actor through the API. Results export to JSON, CSV, Excel and more.
I used a similar actor on another platform. Will my workflow fit? Yes. Location, coordinate, URL and listing ID inputs are all supported, with one flat row per listing.
locations instead.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
locationsarrayOptionalLocations
Cities ('Austin, TX'), neighborhoods or boroughs ('Brooklyn'), ZIP codes ('78758') or HotPads search page URLs. Each entry is its own search of rentals on HotPads. Leave empty when you only paste listing URLs or coordinates.
startUrlsarrayOptionalListing URLs or IDs
Optional. HotPads listing pages (…/pad), building pages (…/building, one row per available unit), listing IDs such as 4y217cc1nzpm3, or search page URLs. Each listing is saved with its full record.
coordinatesarrayOptionalMap coordinates
Optional. Search around a point: one 'latitude,longitude' or 'latitude,longitude,radiusMiles' per line, e.g. '40.7128,-74.006,1' for 1 mile around lower Manhattan. The radius defaults to 1.5 miles.
maxItemsintegerOptionaldefault 20Maximum listings per search
Most listings to save for each location, map point or search URL. Listing URLs and IDs always give their listing. 0 means no limit: HotPads serves about 4,200 properties per map area, and bigger areas are split into smaller map tiles automatically so you can collect every listing.
includeDetailsbooleanOptionaldefault trueFull listing details
Load each listing's full record: description, amenities, pet policy, floor plans and unit prices, office hours, nearby schools, views and inquiries. Turn off for faster, lighter rows with the search-card fields only (price, beds, baths, address, contact, photos). The price per listing is the same.
Optional. Filters apply to locations and coordinates; pasted search URLs keep their own filters.
propertyTypesarrayOptionalProperty types
Only these property types. Leave empty for all types.
rentalTypesarrayOptionalRental types
Only these rental types. Leave empty for all.
minPriceintegerOptionalMinimum rent (USD / month)
Only listings renting for at least this much per month.
maxPriceintegerOptionalMaximum rent (USD / month)
Only listings renting for at most this much per month.
minBedsintegerOptionalMinimum bedrooms
Only listings with at least this many bedrooms. 0 includes studios.
maxBedsintegerOptionalMaximum bedrooms
Only listings with at most this many bedrooms. Set minimum and maximum to 0 for studios only.
minBathsnumberOptionalMinimum bathrooms
Only listings with at least this many bathrooms, e.g. 1.5.
minSqftintegerOptionalMinimum size (sq ft)
Only listings with at least this much living space.
maxSqftintegerOptionalMaximum size (sq ft)
Only listings with at most this much living space.
petsarrayOptionalPets allowed
Only listings that allow these pets.
amenitiesarrayOptionalAmenities
Only listings that have all of these amenities.
keywordsstringOptionalKeywords
Only listings that mention this word or phrase, e.g. 'balcony' or 'utilities included'.
listedWithinenumOptionaldefault "any"Listed within
Only listings posted within this time.
onlyByOwnerbooleanOptionaldefault falseFor rent by owner only
Only listings posted by the owner, not a property manager or broker.
onlyWithSpecialOffersbooleanOptionaldefault falseSpecial offers only
Only listings with a move-in special such as a free month.
onlyWithPhotosbooleanOptionaldefault falseWith photos only
Only listings that have photos.
sortByenumOptionaldefault "newest"Sort by
Order in which HotPads returns listings. With a limit, this decides which listings you get.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy
Datacenter proxies work in our tests. If HotPads keeps blocking them, the run moves to US residential proxies by itself.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| coverPhoto | any | Photo |
| title | any | Title |
| price | any | Rent from ($/mo) |
| priceMax | any | Rent to ($/mo) |
| beds | any | Beds |
| baths | any | Baths |
| sqft | any | Sq ft |
| propertyType | any | Type |
| street | any | Street |
| city | any | City |
| state | any | State |
| zip | any | ZIP |
| companyName | any | Listed by |
| contactPhone | any | Phone |
| url | any | Listing |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One HotPads rental listing saved to the dataset, full details included. | $0.002 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/hotpads-scraper').call({
"locations": [
"New York, NY"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/hotpads-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/hotpads-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
No examples yet
The developer hasn't published example inputs for this actor.

Scrape Google Maps places for any search term and city, with no code or with one API call. A real run, its output, its log and its exact cost, plus the limits and the legal side.
Read the article
Paste an Amazon search or product URL into a ready-made Actor and get one row per product with price, ASIN, rating and review count. This guide covers the no-code steps, the API, ZIP code pricing, a real run and its cost.
Read the article
Scrape Google search results by query and country and get each results page as JSON: organic results with positions, People Also Ask and related searches. Run it without code or from Python, with a real run, the cost per page and Google's terms.
Read the articleScrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.