Zillow Scraper — Bulk Property Data & CSV API avatar

Zillow Scraper — Bulk Property Data & CSV API

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Zillow Scraper — Bulk Property Data & CSV API

Zillow Scraper — Bulk Property Data & CSV API

Collect supported Zillow property URLs with returned listing details, prices and coverage diagnostics. Bulk export: JSON, CSV, Excel and API. PPE: $5/1K property results; start fee extra.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Apivault Labs

Apivault Labs

Maintained by Community

Actor stats

1

Bookmarked

10

Total users

3

Monthly active users

3 days ago

Last modified

Share

Zillow Property Scraper — Details & Zestimates

Paste individual Zillow property links and export available listing details as JSON, CSV or Excel. Each useful row includes the requested ZPID, numeric companions, collection time and missing-field information. No Zillow login or external API key is required; Apify API/MCP calls require your Apify token.

First run

Paste a /homedetails/.../123456_zpid/ link into Property links, set Maximum useful properties, then click Start. Open Properties for the rows and Summary for coverage. The default result cap is 5 across Console, REST and MCP. For one link, the maximum result fee is $0.005, plus the $0.00005 start event.

This actor enriches links you already have. It does not search cities, ZIP codes, addresses or map areas. Search URLs are rejected. Output order follows completion; join batches by zpid.

Copyable examples

One property

{
"propertyUrls": [
"https://www.zillow.com/homedetails/2026-Society-Dr-Holiday-FL-34691/46428193_zpid/"
],
"maxResults": 1
}

Two properties

{
"propertyUrls": [
"https://www.zillow.com/homedetails/2026-Society-Dr-Holiday-FL-34691/46428193_zpid/",
"https://www.zillow.com/homedetails/17199-Park-Ave-Sonoma-CA-95476/15800416_zpid/"
],
"maxResults": 2,
"maxConcurrency": 2
}

Select only comparison fields

{
"propertyUrls": [
"https://www.zillow.com/homedetails/2026-Society-Dr-Holiday-FL-34691/46428193_zpid/"
],
"maxResults": 1,
"extractAddress": true,
"extractPrice": false,
"extractBedrooms": true,
"extractBathrooms": true,
"extractSqft": true,
"extractYearBuilt": false,
"extractPropertyType": false,
"extractDescription": false,
"extractZestimate": true,
"extractLotSize": false,
"extractPricePerSqft": false,
"extractHOA": false,
"extractAgent": false,
"extractBrokerage": false,
"extractImage": false,
"extractStatus": true
}
{
"propertyUrls": [
"https://www.zillow.com/homedetails/2026-Society-Dr-Holiday-FL-34691/46428193_zpid/",
"https://www.zillow.com/homedetails/2026-Society-Dr-Holiday-FL-34691/46428193_zpid/?utm_source=example"
],
"maxResults": 1
}

Bound the first batch

{
"propertyUrls": [
"https://www.zillow.com/homedetails/2026-Society-Dr-Holiday-FL-34691/46428193_zpid/",
"https://www.zillow.com/homedetails/17199-Park-Ave-Sonoma-CA-95476/15800416_zpid/"
],
"maxResults": 1,
"maxConcurrency": 1
}

Input reference

InputDefaultMeaning
propertyUrlsRequired1–1000 individual HTTP(S) Zillow links. Exact zillow.com/www.zillow.com/m.zillow.com hosts only; numeric _zpid required. Query/fragment stripped; duplicates merged by ZPID.
maxResults51–10000 useful output rows. A cap is a maximum, not a promise of this many matches.
maxConcurrency31–10 in-flight requests. Use 1 for strict sequential collection.
timeout9030–300 seconds per property for submission and polling; network timeout may slightly extend this.
extract…trueIndividual field switches below. Disabled fields are omitted; enabled but unavailable fields are null. At least one must be enabled.
SwitchOutput
extractAddressaddress
extractPriceprice
extractBedroomsbedrooms
extractBathroomsbathrooms
extractSqftsqft
extractYearBuiltyearBuilt
extractPropertyTypepropertyType
extractDescriptiondescription
extractZestimatezestimate
extractLotSizelotSize
extractPricePerSqftpricePerSqft
extractHOAhoaFee
extractAgentagent
extractBrokeragebrokerage
extractImageimage
extractStatusstatus

The legacy writeSummary option defaults to true. If false, SUMMARY and its continuation link are omitted; ERRORS and FAILED_PROPERTIES remain free diagnostics.

This is the zillow-scraper Actor, separate from zillow-property-scraper. Both enrich existing property links; neither provides city/ZIP/map discovery. Their releases and billing are independent.

Output and data quality

Raw listing text is retained in the selected fields. priceValue, zestimateValue, bedroomsValue, bathroomsValue, sqftValue, yearBuiltValue, pricePerSqftValue and hoaFeeValue are numbers or null. They appear only when their raw field is enabled. Ambiguous ranges, unsupported units and unparseable values remain null; unknown is never converted to zero. Studio bedrooms may be zero. hoaFeeValue accepts monthly or unqualified fees, not annual/quarterly fees; check raw hoaFee before comparisons. priceValue follows the displayed amount: depending on listing status it may be an asking, rent or other displayed price. It is not guaranteed to be the last sale price. currency is USD; sqftValue is square feet.

availableFields, missingFields and dataCompletenessPct refer to the selected raw fields; 100% does not independently verify accuracy. A paid row must have a nonempty address and at least two parseable core numeric facts, plus at least one available requested field. No empty placeholder rows are exported.

collectedAt is the time this actor received and validated a response, not the listing's update date. sourceUpdatedAt is null and freshnessVerified is false: source caching and update latency cannot be independently verified. sourceMode is property_page_extraction; ZPID is derived from the requested URL. Prices, statuses and valuations can change. Agent, brokerage, description, HOA, price and photos may be unavailable, especially off-market. image is the first acceptable listing image when supplied.

Summary and errors

The default Dataset contains only useful properties. KVS SUMMARY reports delivered, attempted, invalid and duplicate counts, status, budget stop, remainingCount and nextInput. Copy nextInput into a new run to collect unprocessed links; this does not retry recorded failures or retain snapshots. Rerunning the original input collects and charges useful results again.

KVS ERRORS contains safe codes and the canonical URL/ZPID for failed valid links. Invalid links are identified by input index, without echoing credentials or arbitrary hosts. Codes include INVALID_PROPERTY_URL, SOURCE_ACCESS_DENIED, SOURCE_RATE_LIMITED, SOURCE_TIMEOUT, SOURCE_EMPTY, SOURCE_EXTRACTION_FAILED, SOURCE_RESPONSE_INVALID, INSUFFICIENT_PROPERTY_DATA and REQUESTED_FIELDS_UNAVAILABLE.

SUMMARY.status=PARTIAL means useful rows exist alongside failures or a budget stop; the Apify run can be SUCCEEDED. With zero useful rows caused by source/input failures, the run is FAILED. BUDGET_LIMIT means no row fits the event budget. Read SUMMARY and ERRORS even for a green run. A confirmed terminal extraction failure is retried once within the same per-property allowance. Ambiguous submit failures and timeouts are not automatically resubmitted. A missing/blocked page cannot reliably be distinguished from an empty extraction; the actor reports it as a failure. A capped successful batch may still have remaining links.

REST API

Send the input JSON to POST https://api.apify.com/v2/acts/apivault_labs~zillow-scraper/runs?build=latest&memory=256&timeout=600&maxTotalChargeUsd=0.05 with Authorization: Bearer YOUR_APIFY_TOKEN and Content-Type: application/json. Keep credentials in your client configuration.

Save the returned run id, defaultDatasetId and defaultKeyValueStoreId. Poll GET /v2/actor-runs/{id} until terminal. Then retrieve GET /v2/datasets/{defaultDatasetId}/items?clean=true and GET /v2/key-value-stores/{defaultKeyValueStoreId}/records/SUMMARY (also ERRORS). CSV export: /items?format=csv&clean=true. A still-running call is not a result; do not start a duplicate run while waiting.

MCP and AI agents

Use the hosted MCP endpoint https://mcp.apify.com/?actors=apivault_labs/zillow-scraper with your Apify token as a Bearer authorization header. Discover with tools/list; the actor tool is apivault_labs--zillow-scraper. Its input schema is the same Console contract. Run with the example below; waitSecs belongs to MCP, not the actor input.

{
"name": "apivault_labs--zillow-scraper",
"arguments": {
"propertyUrls": [
"https://www.zillow.com/homedetails/2026-Society-Dr-Holiday-FL-34691/46428193_zpid/"
],
"maxResults": 1,
"waitSecs": 45
}
}

If the call returns RUNNING, use get-actor-run for the returned runId until terminal. Read get-dataset-items with datasetId=defaultDatasetId, then get-key-value-store-record with keyValueStoreId=defaultKeyValueStoreId, recordKey=SUMMARY and ERRORS. The hosted result is run metadata, not a guarantee of complete property fields. MCP authentication is not a Zillow login. Configure spending limits in your client or use the capped REST call when a per-run monetary ceiling is required.

Agent rules: use actual URLs; select only supported switches; interpret null as unknown; check summary/errors; identify rows by zpid; never describe collectedAt as a listing update time or Zestimate as a verified price. Do not invent missing fields, live freshness, agent contacts, history, geographic search or pagination.

FAILED_PROPERTIES mirrors safe errors for older integrations.

Pricing

Current rate: $0.005 per useful property ($5/1,000) plus $0.00005 per run start at 256 MB. Error/invalid/duplicate entries do not add property events; failed runs can still incur the start fee. The SDK caps paid Dataset rows against the run event budget; in-flight source work can still have occurred. maxTotalChargeUsd is an event-charge cap, not a future platform-usage cap.

The existing schedule enables separately paid compute/proxy/storage usage on 18 October 2026 at 19:32:10 UTC, with event rates unchanged. Before that activation this separately paid usage flag is not active. Always confirm the effective pricing in the Store before a large run; this README is not a live billing API. No external source account or subscription is required from the caller.

Zillow and Zestimate are third-party names; this actor is not affiliated with Zillow. Zestimate is an automated estimate. Field availability and source access can change.