Zillow agent data API
One real-estate agent, as a directory listing card or a full profile-page fetch. To get these records, set mode to agents, which reads locations. Or set mode to agent, which reads agentProfileUrls.
- Record type
agent- Fields
- 42
- From
- $2.60 per 1,000 records
- Billed as
agentagent-detail
Example request and record
The request below is the one this record answers, taken from a real run. The names, usernames, photos and contact details of people in it are fictional. Long text and long lists are shortened here. The download has the whole record.
{ "source": "zillow", "type": "agent", "zuid": "X1-ZUz4xwivip62vd_1y8fb", "name": "Realty Austin Compass", "businessName": "Realty Austin Compass", "profileUrl": "https://www.zillow.com/profile/Realty%20Austin", "image": "https://photos.zillowstatic.com/fp/292a231052db48a40b996f5bff344df1-h… "isTopAgent": false, "reviewCount": 3132, "rating": 5, "stats": { "team price range": "$17K - $5M", "team sales last 12 months": "266", "team sales in Austin": "11,774" }, "tags": [ "example_tag_1" ], "screenName": "Realty Austin", "url": "https://www.zillow.com/profile/Realty Austin", "businessAddress": "14010 N US-183, Suite 400, Austin, TX, 78717", "phone": "(555) 010-0001", "phones": { "cell": "(512) 241-1300", "business": "(512) 600-1800" }, "email": "[email protected]", "isPremium": false, "licenses": [], "mlsIds": [], "otherLicenses": [ { "expiration": null } ], "yearsInIndustry": 23, "specialties": [ "Buyer's Agent", "Listing Agent", "Relocation" ], "languages": [ "Spanish", "French", "Mandarin" ], "website": "https://www.realtyaustin.com", "bio": "<p><span style=\"color: rgb(0,0,0);background-color: transparent;font… "videoUrl": null, "facebookUrl": "https://www.facebook.com/realtyaustincompass", "linkedInUrl": "https://www.linkedin.com/company/realty-austin-compass", "instagramUrl": "https://www.instagram.com/realtyaustincompass", "youtubeUrl": "https://www.youtube.com/@RealtyAustinCompass", "forSaleCount": 326, "forSaleListings": [ { "zpid": 250825810, "address": "149 Fannin Battleground Ln, Georgetown, TX 78628", "price": 750000, "beds": 5, "baths": 4, "status": "fsba", "brokerageName": "Compass RE Texas, LLC", "photoUrl": "https://photos.zillowstatic.com/fp/c8977d3b687c022b5ca6c6bbcf1… "url": "https://www.zillow.com/homedetails/149-Fannin-Battleground-Ln-Georg… }, { "zpid": 102671344, "address": "2101 Polaris Ave APT 7, Austin, TX 78757", "price": 260000, "beds": 2, "baths": 2, "status": "fsba", "brokerageName": "Compass RE Texas, LLC", "photoUrl": "https://photos.zillowstatic.com/fp/371d0b2c8088be6eb13c24598bf… "url": "https://www.zillow.com/homedetails/2101-Polaris-Ave-APT-7-Austin-TX… }, { "zpid": 29581806, "address": "1906 Birds Nest Ct, Cedar Park, TX 78613", "price": 435000, "beds": 5, "baths": 3, "status": "fsba", "brokerageName": "Compass RE Texas, LLC", "photoUrl": "https://photos.zillowstatic.com/fp/6dedf1d646ef5f48ead1b19a45d… "url": "https://www.zillow.com/homedetails/1906-Birds-Nest-Ct-Cedar-Park-TX… } ], "forRentCount": 40, "forRentListings": [ { "zpid": 29354488, "address": "381 Fantail Loop APT A, Austin, TX 78734", "price": 1700, "beds": 2, "baths": 2, "status": "forRent", "brokerageName": "Compass RE Texas, LLC", "photoUrl": "https://photos.zillowstatic.com/fp/06597b2977ae4ba9c491f4aad5e… "url": "https://www.zillow.com/homedetails/381-Fantail-Loop-APT-A-Austin-TX… }, { "zpid": 331626748, "address": "5300 Fresno Ave, Pflugerville, TX 78660", "price": 2900, "beds": 4, "baths": 3, "status": "forRent", "brokerageName": "Compass RE Texas, LLC", "photoUrl": "https://photos.zillowstatic.com/fp/dc5b323ec205d5199fc7b83d213… "url": "https://www.zillow.com/homedetails/5300-Fresno-Ave-Pflugerville-TX-… }, { "zpid": 145544727, "address": "9200 China Rose Dr, Austin, TX 78724", "price": 1800, "beds": 3, "baths": 2, "status": "forRent", "brokerageName": "Compass RE Texas, LLC", "photoUrl": "https://photos.zillowstatic.com/fp/22e1eaa2406be536458684979df… "url": "https://www.zillow.com/homedetails/9200-China-Rose-Dr-Austin-TX-787… } ], "pastSalesCount": 24165, "pastSales": [ { "soldDate": "9/16/2026", "price": "--", "address": "16429 Broadbay Dr, Austin, TX, 78717", "represented": "Seller", "zpid": 70992743, "photoUrl": "https://maps.googleapis.com/maps/api/streetview?location=16429… "url": "https://www.zillow.com/homedetails/16429-Broadbay-Dr-Austin-TX-7871… }, { "soldDate": "9/14/2026", "price": "--", "address": "505 Gabrielle Anne Dr, Leander, TX, 78641", "represented": "Seller", "zpid": 250928943, "photoUrl": "https://maps.googleapis.com/maps/api/streetview?location=505+G… "url": "https://www.zillow.com/homedetails/505-Gabrielle-Anne-Dr-Leander-TX… }, { "soldDate": "9/14/2026", "price": "--", "address": "3015 Val Dr, Austin, TX, 78723", "represented": "Seller", "zpid": 29410137, "photoUrl": "https://maps.googleapis.com/maps/api/streetview?location=3015+… "url": "https://www.zillow.com/homedetails/3015-Val-Dr-Austin-TX-78723/2941… } ], "reviews": [ { "rating": 5, "comment": "Taylor more than exceeded my expectations. He rented my house c… "reviewer": "Jordan Example", "createDate": "2026-09-24T11:44:00.000Z", "rebuttal": null, "workDescription": "Found a tenant for a Single Family home in Rosewood, Au… }, { "rating": 5, "comment": "Emerson Sample was highly recommended by a friend, and I am pay… "reviewer": "Casey Example", "createDate": "2026-09-21T16:16:00.000Z", "rebuttal": null, "workDescription": "Sold a home in 2026." }, { "rating": 5, "comment": "Quinn is a great realtor. He is friendly and easy to work with,… "reviewer": null, "createDate": "2026-09-20T06:29:00.000Z", "rebuttal": null, "workDescription": "Found a tenant for a home." } ], "salesStats": { "totalSales": 24165, "forSaleCount": 326, "forRentCount": 40, "reviewCount": 3132, "reviewAverage": 5 }, "preferredLenders": [], "professionalInformation": [ { "term": "Broker address", "lines": [ "Realty Austin Compass", "14010 N US-183, Suite 400", "Austin, TX 78717" ] }, { "term": "Cell phone", "description": "(512) 241-1300" }, { "term": "Websites", "links": [ { "text": "Website", "url": "https://www.realtyaustin.com" }, { "text": "Facebook", "url": "https://www.facebook.com/realtyaustincompass" }, { "text": "Instagram", "url": "https://www.instagram.com/realtyaustincompass" } ] } ], "team": { "teamLeadInfo": { "teamName": null, "children": [ { "name": "Morgan Example", "screenName": "Taylor Example", "ratings": { "count": 221, "average": 5 }, "profilePhotoUrl": "https://example.com/avatars/1.jpg", "isTopAgent": false, "encodedZuid": "X1-ZUexample10000000000" }, { "name": "Avery Example", "screenName": "averyexample", "ratings": { "count": 125, "average": 5 }, "profilePhotoUrl": "https://example.com/avatars/2.jpg", "isTopAgent": false, "encodedZuid": "X1-ZUexample20000000000" }, { "name": "Quinn Example", "screenName": "Parker Example", "ratings": { "count": 96, "average": 5 }, "profilePhotoUrl": "https://example.com/avatars/3.jpg", "isTopAgent": false, "encodedZuid": "X1-ZUexample30000000000" } ] }, "teamMemberInfo": null }, "serviceAreas": [ { "regionId": 7882, "text": "Westlake, TX", "url": "https://www.zillow.com/westlake-tx/" }, { "regionId": 9602, "text": "Leander, TX", "url": "https://www.zillow.com/leander-tx/" }, { "regionId": 10221, "text": "Austin, TX", "url": "https://www.zillow.com/austin-tx/" } ], "id": "X1-ZUz4xwivip62vd_1y8fb", "event": "agent-detail", "collectedAt": "2026-09-25T14:46:07.353Z"}Each field name links to its row in the field table. Long values are shortened.
| Field | Type | What it holds |
|---|---|---|
zuid | string | Zillow's agent ID. |
name | string | Agent's display name. |
businessName | string | Business or team name displayed on the card, or null. |
profileUrl | string | https URL of the agent's Zillow profile. |
image | string | URL of the agent's profile photo, or null (search records only). |
isTopAgent | boolean | True when Zillow flags the agent as a top agent. |
reviewCount | integer | Total number of reviews, or null. |
rating | integer | Average review rating, 1 to 5, or null. |
stats | object | Label-to-formatted-value pairs shown on the directory card, for example "team sales last 12 months"; keys vary (search records only). |
tags | array | Tag labels shown on the directory card, for example "TEAM" (search records only). |
screenName | string | Agent's Zillow screen name, or null (profile records only). Present on agent-detail. |
businessAddress | string | Agent's business street address, as one formatted string, or null (profile records only). Present on agent-detail. |
phone | string | Agent's primary phone number (cell, else business), or null. Present on agent-detail. |
phones | object | {cell, business} agent's phone numbers, either null when not listed (profile records only). Present on agent-detail. |
email | string | Agent's email address, or null (profile records only). Present on agent-detail. |
isPremium | boolean | True when the agent has Zillow's premium-agent status (profile records only). Present on agent-detail. |
licenses | array | Real-estate licenses: {number, state, status, type, expiration}; expiration is a date string or null (profile records only). Present on agent-detail. |
mlsIds | array | The agent's MLS member IDs; empty when none (profile records only). Present on agent-detail. |
otherLicenses | array | Additional licenses, same shape as licenses; empty when none (profile records only). Present on agent-detail. |
yearsInIndustry | integer | null | Years the agent has worked in real estate, as an integer, or null (profile records only). Present on agent-detail. |
specialties | array | The agent's specialties, for example "Buyer's Agent"; empty when none are listed (profile records only). Present on agent-detail. |
languages | array | Languages the agent speaks; empty when none are listed (profile records only). Present on agent-detail. |
website | string | Agent's website URL, or null (profile records only). Present on agent-detail. |
bio | string | Agent's bio text from their profile, or null (profile records only). Present on agent-detail. |
videoUrl | null | string | URL of the agent's intro video, or null (profile records only). Present on agent-detail. |
facebookUrl | string | Agent's Facebook profile URL, or null (profile records only). Present on agent-detail. |
linkedInUrl | null | string | Agent's LinkedIn profile URL, or null (profile records only). Present on agent-detail. |
instagramUrl | null | string | Agent's Instagram profile URL, or null (profile records only). Present on agent-detail. |
youtubeUrl | null | string | Agent's YouTube channel URL, or null (profile records only). Present on agent-detail. |
forSaleCount | integer | Total count of the agent's for-sale listings, as an integer (profile records only). Present on agent-detail. |
forSaleListings | array | The agent's active for-sale listings, same shape as forRentListings (profile records only). Present on agent-detail. |
forRentCount | integer | Total count of the agent's for-rent listings, as an integer (profile records only). Present on agent-detail. |
forRentListings | array | The agent's active for-rent listings: {zpid, address, price, beds, baths, status, brokerageName, photoUrl, url} (profile records only). Present on agent-detail. |
pastSalesCount | integer | Total count of the agent's past sales, as an integer, or null (profile records only). Present on agent-detail. |
pastSales | array | The agent's past sales: {soldDate, price, address, represented, zpid, photoUrl, url} (profile records only). Present on agent-detail. |
reviews | array | Individual reviews: {rating, comment, reviewer, createDate, rebuttal, workDescription} (profile records only). Present on agent-detail. |
salesStats | object | totalSales, forSaleCount, forRentCount, reviewCount, reviewAverage from the profile's sales section, or null (profile only). Present on agent-detail. |
preferredLenders | array | The agent's preferred lenders; empty when none are listed (profile records only). Present on agent-detail. |
professionalInformation | array | Profile detail rows such as broker address, cell phone or websites; null when the page carries none (profile records only). Present on agent-detail. |
team | object | Team roster details when the agent is part of a team, including teamLeadInfo/teamMemberInfo, or null (profile records only). Present on agent-detail. |
serviceAreas | array | Areas the agent serves: {regionId, text, url} (profile records only). Present on agent-detail. |
Fields
Every field of agent records, read from real Zillow records. Where a field does not apply to an item it is null or an empty list, not left out. Each record starts with the envelope: source, type, event, id, url, collectedAt.
| Field | Type | What it holds | Present on |
|---|---|---|---|
zuid | string | Zillow's agent ID. | All |
name | string | Agent's display name. | All |
businessName | string | Business or team name displayed on the card, or null. | All |
profileUrl | string | https URL of the agent's Zillow profile. | All |
image | string | URL of the agent's profile photo, or null (search records only). | All |
isTopAgent | boolean | True when Zillow flags the agent as a top agent. | All |
reviewCount | integer | Total number of reviews, or null. | All |
rating | integer | Average review rating, 1 to 5, or null. | All |
stats | object | Label-to-formatted-value pairs shown on the directory card, for example "team sales last 12 months"; keys vary (search records only). | All |
tags | array | Tag labels shown on the directory card, for example "TEAM" (search records only). | All |
searchLocation | string | The location string the search was run for, or null (search records only). | Only agent |
screenName | string | Agent's Zillow screen name, or null (profile records only). | Only agent-detail |
businessAddress | string | Agent's business street address, as one formatted string, or null (profile records only). | Only agent-detail |
phone | string | Agent's primary phone number (cell, else business), or null. | Only agent-detail |
phones | object | {cell, business} agent's phone numbers, either null when not listed (profile records only). | Only agent-detail |
email | string | Agent's email address, or null (profile records only). | Only agent-detail |
isPremium | boolean | True when the agent has Zillow's premium-agent status (profile records only). | Only agent-detail |
licenses | array | Real-estate licenses: {number, state, status, type, expiration}; expiration is a date string or null (profile records only). | Only agent-detail |
mlsIds | array | The agent's MLS member IDs; empty when none (profile records only). | Only agent-detail |
otherLicenses | array | Additional licenses, same shape as licenses; empty when none (profile records only). | Only agent-detail |
yearsInIndustry | integer | null | Years the agent has worked in real estate, as an integer, or null (profile records only). | Only agent-detail |
specialties | array | The agent's specialties, for example "Buyer's Agent"; empty when none are listed (profile records only). | Only agent-detail |
languages | array | Languages the agent speaks; empty when none are listed (profile records only). | Only agent-detail |
website | string | Agent's website URL, or null (profile records only). | Only agent-detail |
bio | string | Agent's bio text from their profile, or null (profile records only). | Only agent-detail |
videoUrl | null | string | URL of the agent's intro video, or null (profile records only). | Only agent-detail |
facebookUrl | string | Agent's Facebook profile URL, or null (profile records only). | Only agent-detail |
linkedInUrl | null | string | Agent's LinkedIn profile URL, or null (profile records only). | Only agent-detail |
instagramUrl | null | string | Agent's Instagram profile URL, or null (profile records only). | Only agent-detail |
youtubeUrl | null | string | Agent's YouTube channel URL, or null (profile records only). | Only agent-detail |
forSaleCount | integer | Total count of the agent's for-sale listings, as an integer (profile records only). | Only agent-detail |
forSaleListings | array | The agent's active for-sale listings, same shape as forRentListings (profile records only). | Only agent-detail |
forRentCount | integer | Total count of the agent's for-rent listings, as an integer (profile records only). | Only agent-detail |
forRentListings | array | The agent's active for-rent listings: {zpid, address, price, beds, baths, status, brokerageName, photoUrl, url} (profile records only). | Only agent-detail |
pastSalesCount | integer | Total count of the agent's past sales, as an integer, or null (profile records only). | Only agent-detail |
pastSales | array | The agent's past sales: {soldDate, price, address, represented, zpid, photoUrl, url} (profile records only). | Only agent-detail |
reviews | array | Individual reviews: {rating, comment, reviewer, createDate, rebuttal, workDescription} (profile records only). | Only agent-detail |
salesStats | object | totalSales, forSaleCount, forRentCount, reviewCount, reviewAverage from the profile's sales section, or null (profile only). | Only agent-detail |
preferredLenders | array | The agent's preferred lenders; empty when none are listed (profile records only). | Only agent-detail |
professionalInformation | array | Profile detail rows such as broker address, cell phone or websites; null when the page carries none (profile records only). | Only agent-detail |
team | object | Team roster details when the agent is part of a team, including teamLeadInfo/teamMemberInfo, or null (profile records only). | Only agent-detail |
serviceAreas | array | Areas the agent serves: {regionId, text, url} (profile records only). | Only agent-detail |
Options
These inputs and switches change what comes back. Every request also takes maxItems and maxItemsPerInput.
| Option | Type | Default | What it does |
|---|---|---|---|
locations | array | none | e.g. Austin, TX |
fetchAgentProfiles | boolean | false | In the agent directory, also open each agent for their full profile with contact details (billed as an agent profile per result). |
agentProfileUrls | array | none | Zillow agent profile URLs to collect in agent-profile mode. |
Zillow agents pricing
You pay once for each record you receive, at the price of the event it carries. A request that returns nothing costs nothing.
| Event | Per 1,000 records | Per record |
|---|---|---|
agent | $2.60 | $0.00260 |
agent-detail | $72.00 | $0.07200 |
Edge cases
- With
fetchAgentProfiles: true, each agent is billed once, asagent-detail, instead ofagent. - Each location's directory is read for up to 20 pages.
- An agent URL that does not open a profile returns no record and costs nothing.