The Zillow Scraper collects real estate listings from Zillow — including price, address, home details, and optional contact emails. You can search by keyword and refine results using filters like price, square footage, or lot size. Results are returned in JSON, CSV, or Excel format. This scraper job is asynchronous. You’ll receive a jobId, and can fetch results via polling or webhook delivery.

Example Request

curl --request POST \
  --url 'https://api.hasdata.com/scrapers/zillow/jobs' \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <your-api-key>' \
  --data '{
    "type": "forSale",
    "keyword": "Los Angeles, CA",
    "homeTypes": "house",
    "price": { "min": 500000, "max": 1000000 },
    "beds": { "min": 3 },
    "extractEmails": true
  }'

Job Parameters

type
string
required
One of: forSale, forRent, or sold
keyword
string
required
Location, e.g. “Seattle, WA”
keywords
string
MLS #, yard, etc.
homeTypes
string
One of: all, house, townhome, multiFamily, condo, lot, apartment, manufactured
price
object
Supports min and/or max in USD
beds
object
Minimum and/or maximum number of bedrooms
baths
object
Minimum and/or maximum number of bathrooms
yearBuilt
object
Filter by year built (min/max)
lotSize
object
Filter by lot size in square feet (min/max)
squareFeet
object
Filter by interior square footage (min/max)
daysOnZillow
string
Limit results by listing age. One of: all, 1, 7, 14, 30, 90, 6m, 12m, 24m, 36m
detailedInformation
boolean
Include detailed listing information
extractEmails
boolean
Extract agents emails (+5 credits per row)

Getting Results

Webhooks

Receive real-time updates when your scraper job starts, completes, or collects data.

Results API

Use the Results API to fetch your data using the jobId, with support for polling and pagination.

Stopping a Job

Cancel an active scraper job early if it’s no longer needed or you want to save credits.