~ / endpoints / Agent API

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.

Get a free API keyAll data types
1,000
free requests
2.6s
median response
JSON
structured output
1
call per property

Quickstart

cURL
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"
Python
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

200 OK
{
  "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
}
FieldTypeDescription
listing_agentstringThe 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.
namestringThe full property address, so each agent is tied to the exact listing.
addressobjectStructured address parts for the listing: street_address, address_locality, address_region, postal_code.
trade_infoarrayThe listing's offer, with price, currency, price_per_area_unit, and trade_type, useful for qualifying a lead by price band.
property_typestringNormalized property type: house, apartment, or land.
home_statusstringRaw listing status, e.g. FOR_SALE, so you know if the listing is still active.
zpidstringThe stable Zillow property id, the key to dedupe listings and agents.
urlstringThe canonical homedetails URL for the listing.

Use it for

>

Agent lead lists

Run a set of homedetails URLs through the endpoint and collect the listing agent and brokerage for each, tied to the property, to build a targeted outreach list.
>

Brokerage market share

Scrape agents across a location's listings and count how often each brokerage appears to measure who controls inventory in a market.
>

Recruiting and partnerships

Identify active listing agents in a target area by the volume of homes they represent, then reach out for recruiting or referral partnerships.
>

CRM enrichment

Attach the listing agent and brokerage to each property record in your CRM so teams see who represents a home next to its price and status.

Pricing

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky 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.

Get agent api as JSON
Free plan, 1,000 requests. No credit card required.
Get a free API key All endpoints