Switching from Zillow Detail Scraper to Zillow Scraper
Zillow Scraper (arcadium/zillow-properties) reads input written for maxcopell/zillow-detail-scraper: 3 of its 5 input fields work as they are. Field list from its public input schema (build 0.0.151, 2026-10-31); prices and run results from the public Apify API, 2026-11-02.
Their fields that work as they are
| Their field | Type | Note |
|---|---|---|
startUrls | array | As is |
addresses | array | Read as places to search; each address is searched on its own. |
propertyStatus | string | As is |
Their fields this actor does not read
extractBuildingUnits, searchResultsDatasetId. Leave them out of the input; the actor’s own options are in the guide.
Side by side: their input, our rows
Input written for maxcopell/zillow-detail-scraper, pasted unchanged:
{
"startUrls": [
{
"url": "https://www.zillow.com/homedetails/17-Zelma-Dr-Greenville-SC-29617/11005484_zpid/"
}
],
"propertyStatus": "RECENTLY_SOLD"
}One row from arcadium/zillow-properties (README example; long text shortened):
{
"rowType": "property",
"platform": "zillow",
"propertyId": "70345655",
"url": "https://www.zillow.com/homedetails/3207-Wickham-Ln-Austin-TX-78725/70345655_zpid/",
"status": "FOR_SALE",
"price": 324900,
"currency": "USD",
"address": "3207 Wickham Ln, Austin, TX 78725",
"city": "Austin",
"state": "TX",
"zipcode": "78725",
"latitude": 30.232096,
"longitude": -97.5937,
"beds": 4,
"baths": 3,
"livingArea": 2575,
"lotArea": 4800.312,
"lotAreaUnit": "sqft",
"homeType": "SINGLE_FAMILY",
"daysOnMarket": 140,
"zestimate": null,
"rentZestimate": null,
"taxAssessedValue": 365588,
"priceChange": -15000,
"priceChangeDate": "2026-10-14",
"brokerName": "T J Lewis Real Estate",
"photos": null,
"detailed": false,
"searchInput": "Austin, TX",
"searchRank": 1,
"scrapedAt": "2026-10-22T10:00:00.000Z"
}Output fields: rowType, platform, propertyId, url, status, statusText, price, currency, address, street, city, state, zipcode, latitude, longitude, beds, baths, livingArea, lotArea, lotAreaUnit, homeType, yearBuilt, daysOnMarket, zestimate, rentZestimate, taxAssessedValue, priceChange, priceChangeDate, dateSold, lastSoldPrice, brokerName, photos, photoCount, hasVideo, has3DModel, detailed, description, monthlyHoaFee, propertyTaxRate, mlsId, listingDataSource, county, parcelId, facts, priceHistory, taxHistory, schools, pageViewCount, favoriteCount, searchInput, searchRank, scrapedAt, input, code, message. The rows use these names, not the other actor’s.
Price
| Actor | Pricing model | Charged per | Per 1,000, Free plan | Per 1,000, lowest plan |
|---|---|---|---|---|
| arcadium/zillow-properties | Pay per event | Property | $2.10 | $1.20 |
| maxcopell/zillow-detail-scraper | Pay per event | result | $3.60 | $0.80 |
Live Apify prices on 2026-11-02, in USD, for each actor’s main charged event. Start fees and platform usage are not included. Units differ: compare what one charged row contains. The Store page of each actor is the current source.
Common issues: failed or timed-out runs
- Zillow Detail Scraper timed out: 0.0% of 711,131 runs timed out.
- Zillow Detail Scraper failed: 1.1% of 711,131 runs ended as failed.
| Actor | Runs, last 30 days | Failed | Timed out |
|---|---|---|---|
| arcadium/zillow-properties | under 50 runs | - | - |
| maxcopell/zillow-detail-scraper | 711,131 | 1.1% | 0.0% |
Apify’s public run statistics for each actor, last 30 days to 2026-11-02: FAILED and TIMED-OUT runs as a share of all runs. Shown from 50 runs. A failed run can also come from a bad input. Here an input that cannot be read comes back as a free error row with a code, and the other inputs still arrive.
How to switch
In the Apify Store
- Open arcadium/zillow-properties and sign in to Apify.
- On the Input tab, switch the editor to JSON and paste the input you used for maxcopell/zillow-detail-scraper, without the fields listed above as not read.
- Start the run. Set a maximum cost per run in the run options if you want a hard cap.
Over the API
Change the actor ID in the URL from maxcopell~zillow-detail-scraper to arcadium~zillow-properties; the body stays the same apart from the fields this actor does not read.
curl -X POST "https://api.apify.com/v2/acts/arcadium~zillow-properties/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.zillow.com/homedetails/17-Zelma-Dr-Greenville-SC-29617/11005484_zpid/"}],"propertyStatus":"RECENTLY_SOLD"}'
In n8n
In the Apify node, change the actor to arcadium/zillow-properties and keep the input JSON. With an HTTP Request node:
{
"nodes": [
{
"name": "Run arcadium/zillow-properties",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
0,
0
],
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/arcadium~zillow-properties/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\"startUrls\":[{\"url\":\"https://www.zillow.com/homedetails/17-Zelma-Dr-Greenville-SC-29617/11005484_zpid/\"}],\"propertyStatus\":\"RECENTLY_SOLD\"}",
"options": {
"timeout": 300000
}
}
}
],
"connections": {}
}
From an AI assistant (MCP)
Add the actor as a tool on Apify’s MCP server; an agent can pass the same input fields.
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=arcadium/zillow-properties",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
}
}