
Zillow Property Listing Scraper by Location & Category Using Bright Data API & Google Sheets Integration
Description
Categories
π€ AI & Machine Learningπ’ Marketing
Nodes Used
n8n-nodes-base.ifn8n-nodes-base.ifn8n-nodes-base.waitn8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceKostenlos
Views0
Last Updated11/28/2025
workflow.json
{
"id": "0eFmaRUQnmJfkcaI",
"meta": {
"instanceId": "bc8ca75c203589705ae2e446cad7181d6f2a7cc1766f958ef9f34810e53b8cb2",
"templateCredsSetupCompleted": true
},
"name": "Zillow Property Listing Scraper by Location & Category Using Bright Data API & Google Sheets Integration",
"tags": [],
"nodes": [
{
"id": "3ac2c390-45ef-4c40-99ba-7c41e387f88c",
"name": "π Form Trigger - Start Property Search",
"type": "n8n-nodes-base.formTrigger",
"position": [
-2040,
620
],
"webhookId": "1485a089-e3a3-4aff-8043-9e2e24a24bad",
"parameters": {
"options": {},
"formTitle": "Zillow Property Search",
"formFields": {
"values": [
{
"fieldLabel": "Location",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Listing Category",
"fieldOptions": {
"values": [
{
"option": "House for rent"
},
{
"option": "House for sale"
}
]
}
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e8976089-8572-45f0-b895-3517bf157801",
"name": "π€ Trigger Bright Data Scraping Job",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1800,
620
],
"parameters": {
"url": "https://api.brightdata.com/datasets/v3/trigger",
"method": "POST",
"options": {},
"jsonBody": "={\n \"input\": [\n {\n \"location\": \"{{ $json.Location }}\",\n \"listingCategory\": \"{{ $json['Listing Category'] }}\",\n \"HomeType\": \"\",\n \"days_on_zillow\": \"\"\n }\n ]\n}",
"sendBody": true,
"sendQuery": true,
"sendHeaders": true,
"specifyBody": "json",
"queryParameters": {
"parameters": [
{
"name": "dataset_id",
"value": "gd_lfqkr8wm13ixtbd8f5"
},
{
"name": "include_errors",
"value": "true"
},
{
"name": "type",
"value": "discover_new"
},
{
"name": "discover_by",
"value": "input_filters"
},
{
"name": "limit_per_input",
"value": "2"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer BRIGHT_DATA_API_KEY"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "1a3a3572-b249-4ca0-9b18-0fc2341aea93",
"name": "Form Submission Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2080,
545
],
"parameters": {
"color": 7,
"width": 180,
"height": 240,
"content": "Starts workflow when user submits location & category via form"
},
"typeVersion": 1
},
{
"id": "902fe79f-8373-4a17-9e6a-a8449bcd48f5",
"name": "API Trigger Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1850,
545
],
"parameters": {
"color": 2,
"width": 200,
"height": 240,
"content": "Sends search request to Bright Data API to trigger Zillow data scraping"
},
"typeVersion": 1
},
{
"id": "eea4519d-eaca-4bba-b31b-67c12bdd943b",
"name": "Status Check Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1610,
545
],
"parameters": {
"color": 6,
"width": 200,
"height": 240,
"content": "Monitors scraping job status and waits for completion"
},
"typeVersion": 1
},
{
"id": "0992cf05-aa2c-449f-af0f-c4cbd4cb340d",
"name": "β³ Check Scraping Job Status",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1560,
620
],
"parameters": {
"url": "=https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }}",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "format",
"value": "json"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer BRIGHT_DATA_API_KEY"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "ce4357aa-e6de-4082-8cef-7cb3aa9727a2",
"name": "Wait Timer Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1140,
660
],
"parameters": {
"color": 6,
"width": 220,
"height": 220,
"content": "Waits 1 minute before rechecking scraping job status"
},
"typeVersion": 1
},
{
"id": "5be9e5cb-57d3-47db-ba39-543799a1ecad",
"name": "β±οΈ Wait Before Retry",
"type": "n8n-nodes-base.wait",
"position": [
-1100,
720
],
"webhookId": "7047efad-de41-4608-b95c-d3e0203ef620",
"parameters": {
"unit": "minutes",
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "60878135-aa34-4b71-98ca-ac9dccc6b7e9",
"name": "Data Validation Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1140,
420
],
"parameters": {
"color": 5,
"width": 220,
"height": 220,
"content": "Validates if property data was found in scraping results"
},
"typeVersion": 1
},
{
"id": "4b6df4c2-c72a-4a29-8077-17332184a038",
"name": "Data Retrieval Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
400
],
"parameters": {
"color": 4,
"width": 220,
"height": 220,
"content": "Retrieves the actual property data using snapshot ID"
},
"typeVersion": 1
},
{
"id": "fc1fcdd3-f3cf-43aa-ac63-bfc5270b3663",
"name": "π₯ Fetch Property Listing Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
-820,
460
],
"parameters": {
"url": "=https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }}",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "format",
"value": "json"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer BRIGHT_DATA_API_KEY"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "b980cf99-85cc-4dd9-9c41-405f20e45827",
"name": "Google Sheets Save Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
400
],
"parameters": {
"color": 3,
"height": 220,
"content": "Saves the scraped property data to your Google Sheet"
},
"typeVersion": 1
},
{
"id": "a9daf529-3b67-4f07-8d55-95af66861baf",
"name": "π Save Property Data to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
-600,
460
],
"parameters": {
"columns": {
"value": {
"URL": "={{ $json.hdpUrl }}",
"City": "={{ $json.city }}",
"Country": "={{ $json.country }}",
"Home Type": "={{ $json.homeType }}",
"Zestimate": "={{ $json.zestimate }}",
"Year Built": "={{ $json.yearBuilt }}",
"Agent Phone": "={{ $json.listing_provided_by.phone_number }}",
"Home Status": "={{ $json.homeStatus }}",
"School Rating": "={{ $json.schools[0].rating }}",
"Street Address": "={{ $json.address }}",
"Interior Details": "={{ $json.interior_full[0].values }}"
},
"schema": [
{
"id": "URL",
"type": "string",
"display": true,
"required": false,
"displayName": "URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "City",
"type": "string",
"display": true,
"required": false,
"displayName": "City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Agent Phone",
"type": "string",
"display": true,
"required": false,
"displayName": "Agent Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Home Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Home Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Street Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Street Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Zestimate",
"type": "string",
"display": true,
"required": false,
"displayName": "Zestimate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "School Rating",
"type": "string",
"display": true,
"required": false,
"displayName": "School Rating",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Year Built",
"type": "string",
"display": true,
"required": false,
"displayName": "Year Built",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Home Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Home Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Country",
"type": "string",
"display": true,
"required": false,
"displayName": "Country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Interior Details",
"type": "string",
"display": true,
"required": false,
"displayName": "Interior Details",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "Zillow",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit#gid=0",
"cachedResultName": "Zillow"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit",
"cachedResultName": "Property Data Sheet"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
"name": "Google Sheets OAuth2"
}
},
"typeVersion": 4.6
},
{
"id": "74062322-6e62-40d6-8876-dada77a319fc",
"name": "β
Check If Scraping Complete",
"type": "n8n-nodes-base.if",
"position": [
-1320,
540
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "35ed620d-b5d5-4e97-bcc5-52b283d85616",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "ready"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "25326b0a-7fb3-4ee5-9d6a-56c2d1d4cf41",
"name": "π Validate Property Data Exists",
"type": "n8n-nodes-base.if",
"position": [
-1080,
480
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f01bd215-c406-493c-a6e4-2b8ec5686b44",
"operator": {
"type": "number",
"operation": "notEquals"
},
"leftValue": "={{ $json.records }}",
"rightValue": "={{ 0 }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "3a7c4645-e5e9-4feb-8635-0953b6ae6a6a",
"name": "Google Sheet Template Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2080,
300
],
"parameters": {
"color": 7,
"width": 280,
"content": "Sample Google Sheet Template:\nhttps://docs.google.com/spreadsheets/d/SAMPLE_SHEET_ID/edit\n\nMake a copy and update the workflow with your Sheet ID"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "1be06750-3f46-4f87-ab33-829b4e8f3079",
"connections": {
"β±οΈ Wait Before Retry": {
"main": [
[
{
"node": "β³ Check Scraping Job Status",
"type": "main",
"index": 0
}
]
]
},
"β³ Check Scraping Job Status": {
"main": [
[
{
"node": "β
Check If Scraping Complete",
"type": "main",
"index": 0
}
]
]
},
"β
Check If Scraping Complete": {
"main": [
[
{
"node": "π Validate Property Data Exists",
"type": "main",
"index": 0
}
],
[
{
"node": "β±οΈ Wait Before Retry",
"type": "main",
"index": 0
}
]
]
},
"π₯ Fetch Property Listing Data": {
"main": [
[
{
"node": "π Save Property Data to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"π Validate Property Data Exists": {
"main": [
[
{
"node": "π₯ Fetch Property Listing Data",
"type": "main",
"index": 0
}
]
]
},
"π€ Trigger Bright Data Scraping Job": {
"main": [
[
{
"node": "β³ Check Scraping Job Status",
"type": "main",
"index": 0
}
]
]
},
"π Form Trigger - Start Property Search": {
"main": [
[
{
"node": "π€ Trigger Bright Data Scraping Job",
"type": "main",
"index": 0
}
]
]
}
}
}