Zillow Agent Scraper API
Our Zillow agents scraper reads the listing agent straight off a property page: pass a homedetails URL or a zpid and the response returns the agent name and brokerage as JSON, tied to the home's address, price, and zpid for easy lead building.
Quickstart
curl "https://api.zillowscraperapi.com/api/v1/zillow/property?url=https://www.zillow.com/homedetails/6505-44th-Ave-NE-Seattle-WA-98115/463504654_zpid/&api_key=$API_KEY" import requests
BASE = "https://api.zillowscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Read the listing agent + brokerage from a property page.
data = requests.get(
f"{BASE}/api/v1/zillow/property",
params={
"url": "https://www.zillow.com/homedetails/6505-44th-Ave-NE-Seattle-WA-98115/463504654_zpid/",
"api_key": API_KEY,
},
timeout=30,
).json()
# listing_agent is "<agent name>, <brokerage>".
agent = data["listing_agent"]
name, _, brokerage = agent.partition(", ")
print("Agent:", name)
print("Brokerage:", brokerage)
print("Listing:", data["name"], "| zpid", data["zpid"]) Response
{
"name": "6505 44th Avenue NE, Seattle, WA, 98115",
"listing_agent": "Eric Nissen, Real Property Associates, Inc.",
"url": "https://www.zillow.com/homedetails/6505-44th-Ave-NE-Seattle-WA-98115/463504654_zpid/",
"zpid": "463504654",
"home_status": "FOR_SALE",
"address": {
"street_address": "6505 44th Avenue NE",
"address_locality": "Seattle",
"address_region": "WA",
"postal_code": "98115"
},
"trade_info": [
{ "currency": "USD", "price": 899900, "price_per_area_unit": 633, "trade_type": "sale" }
],
"property_type": "house",
"latitude": 47.675953,
"longitude": -122.281136
} | Field | Type | Description |
|---|---|---|
listing_agent | string | The listing agent and brokerage as one string, e.g. Eric Nissen, Real Property Associates, Inc. Falls back to the brokerage alone when no individual agent is attributed. |
name | string | The full property address, so each agent is tied to the exact listing. |
address | object | Structured address parts for the listing: street_address, address_locality, address_region, postal_code. |
trade_info | array | The listing's offer, with price, currency, price_per_area_unit, and trade_type, useful for qualifying a lead by price band. |
property_type | string | Normalized property type: house, apartment, or land. |
home_status | string | Raw listing status, e.g. FOR_SALE, so you know if the listing is still active. |
zpid | string | The stable Zillow property id, the key to dedupe listings and agents. |
url | string | The canonical homedetails URL for the listing. |
Use it for
Agent lead lists
Brokerage market share
Recruiting and partnerships
CRM enrichment
Pricing
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
How do I scrape Zillow agents?
Send a GET request to our zillow/property endpoint with a homedetails URL or a zpid and your api_key. The response includes a listing_agent field with the agent name and brokerage for that listing, returned as clean JSON alongside the property address, price, and zpid. We handle Zillow's PerimeterX challenge, the proxies, and the parsing, so you build an agent list without running a scraper of your own.
What agent details does the API return?
The endpoint returns the listing_agent as a single string in the form agent name, brokerage, for example Eric Nissen, Real Property Associates, Inc. When Zillow attributes only a brokerage and no individual agent, the field returns the brokerage name. The agent is tied to the property record, so you also get the address, price, status, and zpid for the home they are listing.
Does the Zillow agent scraper return phone numbers?
The public property page attributes the listing agent by name and brokerage, and that is what the listing_agent field returns. Zillow does not publish a direct agent phone number in the property page markup we parse, so we leave it out and never fabricate a number. To reach an agent, use the name and brokerage to look them up through the brokerage or a licensing directory, and always follow lawful outreach rules such as Do-Not-Call requirements.
Can I build an agent list for a whole city?
Yes, in two steps. Use the zillow/search endpoint to pull the listings for a location and collect each home's zpid, then call zillow/property for each zpid to read the listing_agent. Counting how often each agent or brokerage appears across a city's listings gives you a ranked view of who is most active in that market.
Is scraping Zillow agent data legal?
Scraping publicly visible listing pages is generally treated as lawful in the United States, but agent names tied to a person can be personal data, and Zillow's Terms of Use restrict automated collection, so review the terms and applicable privacy and anti-spam laws before you use the data for outreach. This is general information, not legal advice.
How fast is the Zillow agent scraper?
Median end-to-end response is about 2.6 seconds per property, including proxy routing, PerimeterX handling, retries, and parsing. Each call returns the full property record with the listing agent, so you do not chain extra requests, and you are billed only for successful requests. The free tier includes 1,000 requests to test with.