Yelp Photos Scraper

Every photo on a listing,
as a spreadsheet.

Name the Yelp businesses you care about - a /biz/ URL, a slug, or just the id - and get their photos back as rows: the query you sent, the business, a direct link to the image, and a caption. Four columns, and one thing to know before you start: Yelp hard-blocks datacentre addresses, so this scraper needs your own US residential proxy.

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

In goes a business,
out come its photos.

One input, one control. There is no market to choose and no format to configure - you name the businesses and say how many photos you want from each.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the Yelp Photos Scraper.
  3. STEP 3Paste Yelp /biz/ URLs, slugs or business ids, one per line - or upload a CSV, XLSX or TXT file.
  4. STEP 4Configure a US residential proxy - Yelp hard-blocks free and datacentre IPs.
  5. STEP 5Set a limit per business, or leave it empty to take everything, and click Get Data.
  6. STEP 6Download the result as CSV, XLSX or JSON.

Mixing the three input forms in one list is fine - the form takes a URL, a slug and an id on consecutive lines without complaint.

Why teams use it

One listing,
every picture on it.

A link to the image, not to a page

photo_url is the image file itself - the tool's own preview grid takes that value and puts it straight into an <img> tag. So the column is usable as-is: feed it to a downloader, an image model, or a contact sheet, without a scraping step in between.

URL, slug or id - take your pick

Paste the full /biz/ link if that is what you have, the slug if your list is already tidy, or the bare business id if you are working from an export. All three go one per line, and all three can arrive as a CSV, XLSX or TXT upload instead of typed.

The proxy is a hard requirement

Yelp blocks free and datacentre addresses outright, so this scraper runs through your own paid US residential proxy. Not residential in general - the tool asks for a US one. Without it a run finishes and comes back empty, which is the one cause the tool names for an empty result.

What you get

Four columns,
one row per photo.

Each row is a single photo on a single business: the query you sent, the business it belongs to, a direct link to the image, and its caption.

The column list below is the header row of real run exports, corroborated by the column array the run screen renders - the two match exactly. What it is not is a sample. Read the note under the table before you write code against any of these fields, because it says what we have seen this scraper return and what we have not.

Data dictionary

Four columns,
and no guesses about them.

The names are exact - they are the workbook's header row and the run screen's column array, and the two agree. The descriptions say what each column is for. They do not describe its format, and the note under the table explains why.

query
The line you submitted for this business - the column every scraper here uses to echo your input back, so a result set joins cleanly to the list you sent. Whether it comes back exactly as you typed it or normalised to one of the three accepted forms, we have not observed and do not claim.
business
The Yelp business the photo belongs to. This and query are what group a result set by listing.
photo_url
A direct link to the image file. This one we can describe - the tool's own results grid renders this value straight into an <img src> and wraps it in a link, so it points at the picture rather than at a page containing it.
caption
The caption carried with the photo.

Read this before you plan against the table above. Every run export we hold for this scraper came back empty - four runs between 2026-07-06 and 2026-07-15, each a workbook with this header row and no data rows beneath it - because Yelp hard-blocks free and datacentre IPs and the runs were made without the US residential proxy the tool requires. So the four names are solid, and nothing else here is: no example values, and no format for any field except photo_url, whose shape the tool's own rendering establishes. In particular this page does not tell you whether business is a display name, a slug or an id; what a caption contains; or whose photos these are - owner-uploaded, customer-uploaded, or both - because neither the export nor the tool says.

Run controls

One dial,
not a control panel.

There is a single setting on this form: how many photos to take per business. Everything else is about how you hand over the list - typed, or uploaded and merged into what you typed.

/biz/ URL input Slug input Business id input Limit per business Empty or 0 takes all Paste one per line CSV upload XLSX upload TXT upload US residential proxy
Handing over the list

Uploads merge,
they don't replace.

An uploaded file does not clear the box. The tool reads the file, adds those lines to whatever you had already typed, and de-duplicates the result - so you can build a list in two passes without worrying about repeats, and running the same file twice changes nothing.

It reads the first column only. In a CSV or TXT that is everything before the first comma on each line; in an XLSX it is column A of the first sheet. A spreadsheet with the business URL in column C will load a column of the wrong thing, so move it left before you upload.

The picker lists Parquet alongside CSV, XLSX and TXT, but it cannot actually read one in the browser and will tell you so - use one of the other three.

livescraper.app · the upload
CSV · XLSX · TXT
Parquet is listed but not read!
First column only
Merged with what you typed
Duplicates removed
Typed and uploaded lines end up in one de-duplicated list.
Common workflows

Three jobs people
run here most.

A few of the ways teams use listing photos to answer a question they actually have.

Brand

Audit how your locations look

Pull the photos on every one of your listings and look at them together rather than one tab at a time. Branches with thin, dated or unflattering galleries are obvious in a contact sheet and invisible in a dashboard.

Marketing · Ops
Competitive

See what a category looks like

Take the businesses you compete with and export their photos in one run. What a well-presented listing looks like in your category stops being a matter of opinion once you can see thirty of them side by side.

Marketing
Data

Feed images to a model

Because photo_url is the image file rather than a page, the column drops straight into a download or captioning pipeline. Classify interiors, spot menu shots, or build a training set without writing a scraper first.

Data science
Pricing

Pay for the photos
you actually pull.

No subscription, no minimum, no recurring invoice. 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 rows free - $0

On every new account, one time. No credit card. Per-business limits, file upload and every export format included. The US residential proxy this scraper needs is yours to supply.

$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, and a row here is one photo. The estimator shows the row count and credit cost before a run starts - no surprise bills, no compute units to translate.

Most popular
Volume

Custom · high volume

Volume pricing, dedicated workers and an SLA for ongoing monitoring or very large historical pulls. Tell us your numbers and we will quote it.

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

The same job,
on the other map.

The input here is Yelp-specific, so the closest neighbours are the tools that do this on Google's side of local search.

The legal bit

Is it legal to scrape
Yelp photos?

Short answer: the photos are public, and the copyright in them is not yours - those are two different questions and this page keeps them apart.

The access question is the easy one. A Yelp listing's photo gallery is shown to anyone who opens the page, logged in or not. Collecting publicly visible material for research and analysis is long-settled practice, and nothing here touches a login or a paywall.

The reuse question is the one worth care. A photograph is a copyrighted work, and scraping a link to one transfers no rights in it. Looking at a gallery, measuring it, classifying it, or reporting on what it shows are ordinary analytical uses. Republishing someone else's photograph as your own marketing material is not, and no export can make it so.

Yelp's terms restrict automated access, and Yelp enforces that hard at the network level - which is why a US residential proxy is a requirement here rather than a suggestion. That makes this a contractual question as well as a technical one. We run no third-party trackers on the data layer, and your exports self-delete after 30 days.

livescraper.app · principles
Public listing photos only
No logins, no accounts touched
Copyright stays with the photographer!
Needs your own US residential proxy
Exports self-delete (30 days)
Check Yelp's own terms before you scale up.
FAQ

What people ask
before signing up.

The questions we get most. Anything else? Talk to us - humans write the answers, not a bot.

How do I scrape Yelp photos?+
Using the Yelp Photos Scraper:
  1. Sign in to the platform.
  2. Open the Yelp Photos Scraper.
  3. Paste Yelp /biz/ URLs, slugs or business ids, one per line - or upload a CSV, XLSX or TXT file.
  4. Configure a US residential proxy - Yelp hard-blocks free and datacentre IPs.
  5. Set a limit per business, or leave it empty to take everything, and click Get Data.
  6. Download the result as CSV, XLSX or JSON.
What can I put in the input box?+
Any of three forms, one per line: a full Yelp /biz/ URL, the slug on its own, or the business id. The form accepts all three and its own placeholder shows one of each, so you do not have to normalise a mixed list before you run it.
Do I need a proxy for this one?+
Yes, and a US residential one specifically. Yelp hard-blocks free and datacentre addresses, so this scraper runs through your own paid US residential proxy, configured as PROXY_URL. Without one a run completes and comes back empty.
My run came back empty. Why?+
The tool names one cause: no US residential proxy. That is also the honest reading of our own evidence - all four run exports we hold came back empty, and all four were made without one. Check the proxy first. We are not going to list a second explanation we have not seen for ourselves.
Can I get the photos themselves, not just links?+
The export gives you photo_url, which is a direct link to the image file rather than to a page about it - the tool renders that same value straight into its own preview grid. Downloading the files is a step you run yourself against that column.
Can I choose a country or a language?+
No. There is one control on this form, the per-business limit. Unlike some scrapers here there is no country selector and no language selector, and the job the form sends carries neither.
Why does this page show no example values?+
Because we will not print values we have not seen. Every run export we hold for this scraper returned zero rows - four runs between 2026-07-06 and 2026-07-15, each a workbook with the header row and no data beneath it. That makes the four column names trustworthy, because two independent sources list them in this order, and makes any claim about their contents a guess. So this page does not tell you whether business is a name or a slug, what a caption looks like, or whose photos these are.
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. A row is one photo. The US residential proxy is a separate cost, and it is yours.

Your first 500 photos,
on the house.

500 free rows, one time, on every new account - no expiry. After that it is $0.002 per row, pay as you go, with no card on file until you decide. The US residential proxy is yours to bring.

Live in seconds · no card

Scrape Yelp business photos at scale

Livescraper's Yelp Photos Scraper turns a list of businesses into image data. You submit Yelp businesses - as /biz/ URLs, as slugs, or as bare business ids, typed one per line or uploaded as a CSV, XLSX or TXT file - set how many photos to take from each, and download the gallery as a clean CSV, Excel or JSON file.

Each row is one photo: the query you sent, the business it belongs to, a direct link to the image, and its caption. That third column is the one worth noting before you write a parser. photo_url points at the image file itself rather than at a page containing it, which is how the tool's own preview grid can render it directly - so the column feeds a downloader or an image model without a scraping step in between.

Brand and operations teams pull the photos on every location they own and review them as one contact sheet, where a thin or dated gallery is obvious in a way no dashboard makes it. Marketing teams export a competitive set in a single run and stop arguing about what a good listing looks like in their category. Data teams take the URL column straight into a classification or captioning pipeline.

Two things are stated here rather than buried. Yelp hard-blocks free and datacentre addresses, so this scraper needs your own paid US residential proxy - US specifically - to return anything at all, and that is the single cause the tool names when a run comes back empty. And this page publishes no example values and no field formats, with one exception, because every run export we hold returned zero rows; the exception is photo_url, whose shape the tool's own rendering establishes. The four column names are exact and cross-checked. Everything else is what your first free-tier run will tell you. Start free: your first 500 rows cost nothing and need no card.