Zillow Agents Scraper

A real-estate agent's profile,
as one row.

Point it at a zillow.com/profile/ page and the agent comes back as a record - name and brokerage, phone and website, their rating and review count, sales count and price range, location, licence number, screen name, photo and the profile link.

one-time 500 free rows$0.002 per row after14 columnsCSV · XLSX · JSON
How it works

One profile in,
one row out.

Worth knowing before you start: this takes the same URL as our Zillow Transactions Scraper, and returns something different. That one gives you a row per deal. This one gives you a row per agent.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the Zillow Agents Scraper.
  3. STEP 3Paste your agent profile URLs - https://www.zillow.com/profile/agent-name/ - one per line, or upload a CSV, XLSX, TXT or Parquet file.
  4. STEP 4Set a limit per query, or leave it at zero to take everything.
  5. STEP 5Point the run at a residential proxy. Without one Zillow returns nothing.
  6. STEP 6Choose your output format and click Get Data.

One row per agent, tagged with the profile URL it came from. Pages are fetched through our proxy pool rather than your real IP - but the pool alone is not enough here, which the next section explains.

Why teams use it

A directory you can sort,
not a page you scroll.

The whole profile on one line

Name, brokerage, phone, website, rating, review count, sales count, price range, location and licence - the things a profile page spreads across several panels arrive as fourteen columns on a single row. A shortlist of agents becomes a table you can sort.

Contact details are in the export

Unlike our Zillow transactions export, which carries none, this one has phone, website and the profile link. That makes it the Zillow service to reach for when you need to get in touch rather than only to measure.

A whole roster in one run

Paste a column of profile URLs, or upload the file you already keep them in, and the run works through the lot. Every row carries the profile URL it came from, so a file covering an entire brokerage still traces back cleanly to each person.

Before you run it

Zillow needs a residential proxy,
and the failure is silent.

This is the first thing to know about this scraper, so it is not buried further down the page.

Zillow blocks datacenter IPs, and PerimeterX is the mechanism. A run without a residential proxy does not error, does not warn and does not stop - it finishes successfully and hands you a file with the fourteen-column header row and nothing under it. That is a worse failure than a crash, because an empty file looks exactly like a profile URL that does not resolve. If a profile you know exists comes back empty, check the proxy before you check the URL.

We can say that with some confidence rather than as a disclaimer. Every run export we hold for this service is empty, and so is every one for our other two Zillow profile scrapers - the transactions and reviews services - across runs spread over several months. Every one carries a correct header row and zero data rows. That is a consistent, well-corroborated picture of what happens without a residential exit, and it is why the requirement is in the hero rather than in a footnote.

The consequence for this page is that the column names are solid and the cell contents are not. The fourteen names below, and their order, are confirmed twice over - by the identical XLSX header row of twenty-eight separate runs and by the column array the platform publishes for this service, which agree exactly. What we will not do is tell you what the values look like, because we have not seen one. Where a description below would have needed a format, a scale or a vocabulary, it says so instead of guessing.

Data dictionary

Fourteen columns,
in export order.

The export's header row, in order. Descriptions say what each field is for; they deliberately claim nothing about its format, scale or vocabulary - see the note above.

query
The agent profile URL you submitted, repeated on the row it produced. With one row per agent this is your join key back to the list you started from.
name
The agent's name as their profile shows it.
business_name
The brokerage or business the agent is listed under. A separate column from name, so a roster groups by employer without any parsing.
phone
The contact number on the profile. We have not seen it populated, so do not assume a format - our other exports vary by market, and normalising on the way in is the safe habit.
rating
The agent's score. There is no companion scale column in this export - no max_rating - so the scale is not recoverable from the file itself. Confirm it against a real run before comparing these against another platform.
review_count
How many reviews sit behind that rating. Whether it arrives as a number or a string is unconfirmed - but note that its presence is what makes rating readable at all.
sales_count
The number of sales attributed to the agent on their profile. Format unconfirmed.
sale_price_range
The price range the agent works in. The name points at a band rather than a single number, and that is as far as we will go - we have not seen its format or vocabulary.
location
Where the agent operates. We have not seen this populated, so do not assume whether it is a city, a region, a full address or several places at once.
license
The agent's professional licence number. Worth knowing that licence formats differ by US state, so do not size or validate a column for it on the basis of one example.
website
The agent's own site, where the profile lists one.
screen_name
The agent's Zillow screen name. A separate column from name - that much is clear from the header row - but we have not seen either populated, so we cannot tell you how they differ in practice.
photo
The agent's profile photograph, on Zillow's image host.
profile_url
The canonical link to the profile. This is also what the service accepts as input, so it round-trips.

The names are solid; the contents are not yet. The fourteen columns above and their order are corroborated by two independent sources - the identical XLSX header row of twenty-eight separate run exports and the column array the platform publishes for this service - so build your schema around those names with confidence. What this page will not tell you is what the cells hold: every export we hold is a header with no rows beneath it. Note the one structural gap: there is no max_rating column here, so the rating's scale is not recoverable from the file and needs confirming against a real run. And Zillow blocks datacenter IPs, so a live run needs a residential proxy - that is the reason those exports are empty, not any doubt about the column set.

What it accepts

An agent profile,
the same one either way.

One URL per line, and it has to be a profile page. The same URL works on our Zillow Transactions Scraper - the difference is what comes back, not what goes in.

https://www.zillow.com/profile/agent-name/ One profile URL per line CSV · XLSX · TXT · Parquet upload Limit per query, or 0 for everything One row per agent Never your real IP Datacenter IPs blocked - residential proxy required No sort option
Common workflows

Three jobs people
most often run here.

A few examples of what a roster is worth once it is a table rather than a set of pages you open one at a time.

Roster building

Turn a list of profiles into a contactable table

Feed in the agents working a market and get name, brokerage, phone and website as columns. Because the contact details are in this export rather than the transactions one, a shortlist becomes something you can actually act on in a single pass.

Sales · Recruiting
Segmentation

Group a market by brokerage and price band

business_name and sale_price_range are their own columns, so a file of profiles sorts into who works for whom and at what end of the market - without reading a single profile page.

Market research · Strategy
Cross-reference

Pair the summary with the deals behind it

Run the same profile URLs through our Zillow Transactions Scraper and join on the profile URL. You get the agent's own summary figures next to the transactions listed on their page - two views of the same person from one list of URLs.

Due diligence · Analysis
Pricing

Pay only for the agents
you actually pull.

No subscription, no minimum, no recurring bill. Your first 500 rows are on us - after that, pay-as-you-go at the same flat rate as every other scraper here.

Free tier

500 free rows - $0

Every new account, one-time. No credit card required. Per-query limits, file upload and every export format included. The residential proxy this scraper needs is yours to supply, on the free tier and after it.

$0 forever
Pay-as-you-go

$0.002 per row, after the free tier

The same flat rate as every other scraper on the platform. With one row per agent, a row here is a person - which makes the estimator easy to read. It shows the row count and credit cost before a run starts.

Most popular
Volume

Custom · high volume

Volume pricing, dedicated workers and an SLA for running large agent rosters on a schedule. Tell us your numbers and we will quote.

Talk to us
10% off your first paid run.Use code LIVESCRAPER10 at checkout.
Sign up
Pairs well with

The same profile URL,
read three ways.

This one summarises the agent. These take the same input and return something else, or cover the same ground elsewhere.

The legal bit

Is it legal to scrape
Zillow agent profiles?

Short answer: the profiles are public, but Zillow's own terms are the part that actually governs this - and this export holds more about a person than most of our others do.

Everything in these fourteen columns is shown on a public Zillow agent profile to any visitor, signed in or not. No login is used, no paywall is crossed and no account is touched, and the run is fetched through our proxy pool rather than your own IP. Agents publish these details precisely so that clients can find and contact them.

That is not the same as permission. Zillow's terms of use restrict automated access to their site, and the datacenter-IP blocking is there because they mean it. "The page is public" is an argument about the data, not about the contract you accept by using the site - so read those terms and decide whether your use is consistent with them before you scale a run. On this page that is the sentence that matters most, and we would rather put it here than in small print.

Be more careful with this export than with our Zillow transactions one. That one describes deals and buildings; this one describes a person - name, phone, photo, screen_name and a professional license number. Those are business-capacity details the agent chose to publish, which puts them at the lighter end of the scale, but they are still personal data about an identifiable individual and a licence number is an identifier. If you are in the EU or the UK, running this makes you the controller: you need a lawful basis, and because the data did not come from the person, you have to tell them you hold it and where it came from. Marketing rules govern what you then send, separately. We run no third-party trackers on the data layer, and your exports auto-delete after 30 days.

livescraper.app · principles
Public profile pages only
No logins, no accounts touched
Never your real IP
A named agent's phone and licence are personal data!
Exports auto-delete (30 days)
Check Zillow's own terms before scaling.
Common questions

Things people
ask before signing up.

The questions we hear most. Anything else? Talk to us - humans, not bots, write the answers.

How do I scrape Zillow agent profiles?+
Using the Zillow Agents Scraper: sign in to the platform, open the Zillow Agents Scraper, paste your agent profile URLs - https://www.zillow.com/profile/agent-name/ - one per line (or upload a CSV, XLSX, TXT or Parquet file), set a limit per query or leave it at zero to take everything, point the run at a residential proxy, then choose your output format and click Get Data.
What is the difference between this and the Zillow Transactions Scraper?+
The input is the same and the unit is different. This one returns one row per agent - the profile summary, with name, brokerage, phone, website, rating, review count, sales count, price range, location, licence, screen name, photo and the profile link. The transactions scraper returns one row per deal listed on that same profile. If you want both, run the same list of URLs through each and join on the profile URL.
Do I need a residential proxy?+
Yes. Zillow blocks datacenter IPs and a run without a residential proxy comes back with nothing. Every run export we hold for this service is empty, as is every one for our other two Zillow profile scrapers - the transactions and reviews services - each a correct header row with zero data rows beneath it. Supply a residential exit and that is the difference between an empty file and a full one.
Why did my run finish successfully but return an empty file?+
Almost certainly the proxy. This is the failure mode worth knowing about, because it is silent: the job does not error or warn, it completes and hands you the fourteen-column header with nothing under it. An empty file looks identical to a profile URL that does not resolve, so check the proxy before you check the URL.
What columns will I get?+
Fourteen, in this order: query, name, business_name, phone, rating, review_count, sales_count, sale_price_range, location, license, website, screen_name, photo and profile_url. Those names and that order are confirmed twice over - by the identical XLSX header row of twenty-eight separate run exports and by the column array the platform publishes for this service.
What scale is the rating on?+
We cannot tell you, and the file cannot either. There is no max_rating column in this export - that is verifiable from the header row itself - so the scale is not recoverable from the data. Confirm it against a real run before you compare these ratings against another platform, and read review_count alongside it so you know how much weight a score is carrying.
Does the export include the agent's email address?+
No. It carries phone, website and the profile URL, but no email column. If you need one, take the name from this export and the domain from the website column and run them through our Email Addresses Finder, which returns a work address with a status saying how sure it is.
Is it legal to scrape Zillow agent profiles?+
The profiles are public and agents publish these details so clients can contact them - but Zillow's terms of use restrict automated access to their site, and that is the part that actually governs this. Read them before you scale. Note too that this export holds more about a person than our Zillow transactions one does: a name, a phone number, a photo and a professional licence number are personal data about an identifiable individual, so if you are in the EU or the UK you are the controller of them.
How much does it cost?+
The first 500 rows are free and one-time, with no credit card. After that it is $0.002 per row - the same flat rate as every other scraper on the platform. The estimator shows the cost of a run before it starts. The residential proxy is a separate cost, and it is on you.

Turn a list of profiles
into a table you can work.

Your first 500 rows are free - no card, no subscription. After that it is $0.002 per row, flat.

Activates instantly · no card required

Scrape Zillow agent profiles into rows

A Zillow agent profile spreads what it knows across several panels - who the agent is, which brokerage they work for, how to reach them, how they are rated and what they have sold. The Zillow Agents Scraper puts all of it on one row. The input is a zillow.com/profile/ URL, pasted one per line or uploaded as a CSV, XLSX, TXT or Parquet file, and each agent comes back as a record with the name and business name, phone and website, rating and review count, sales count and sale price range, location, licence number, screen name, photo and the canonical profile URL. Fourteen columns, one row per agent, each tagged with the URL it came from.

It is worth being clear about how this differs from our Zillow Transactions Scraper, because the two take the same input. This one returns one row per agent - the profile summary. That one returns one row per transaction listed on the same profile. Run one list of URLs through both and join on the profile URL, and you get an agent's own headline figures sitting next to the deals behind them. Note also that the contact details live here rather than there: this export carries a phone and a website, and the transactions export carries neither.

One thing needs saying before you plan a run. Zillow blocks datacenter IPs, and a run without a residential proxy returns nothing. Worse, it does not tell you: the job finishes successfully and hands you the fourteen-column header row with no data under it, which looks exactly like a profile URL that does not resolve. Every export we hold for this service is in that state, as is every one for our other two Zillow profile scrapers, across runs spread over several months - which is why the requirement is stated at the top of this page rather than in a footnote.

That has an honest consequence for what this page claims. The column names are confirmed and the cell contents are not. The fourteen names and their order are corroborated by two independent sources - the identical header row of twenty-eight separate runs and the published column array - so you can build a schema around them with confidence. But we will not tell you what format phone, license or sale_price_range arrive in, whether location is a city or a region, or how screen_name differs from name, because we have never seen one populated. What is verifiable from the header alone is that there is no max_rating column, so the rating's scale cannot be recovered from the file and needs confirming against a real run. On the legal side: the profiles are public, but Zillow's terms restrict automated access, and this export holds a named person's phone, photo and licence number - treat it as personal data. Start free: your first 500 rows cost nothing and need no credit card, and after that it is $0.002 per row, flat, with the residential proxy as a separate cost.