Yelp Photos Scraper avatar

Yelp Photos Scraper

Pricing

$2.00 / 1,000 photos

Go to Apify Store
Yelp Photos Scraper

Yelp Photos Scraper

Download every photo from any Yelp business — the complete gallery, not just the first 30. Get full-resolution image and video URLs, captions, categories, dimensions, dates, and uploader profiles. Search by keyword + location or paste business URLs. Export CSV, JSON, or Excel.

Pricing

$2.00 / 1,000 photos

Rating

0.0

(0)

Developer

Beat Analytics

Beat Analytics

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Yelp Photos Scraper — download every photo and video from any Yelp listing

This is the only dedicated Yelp photo extractor on Apify. It pulls the complete photo set for a business — often 1,000+ images for popular restaurants and hotels — each with its caption, category, uploader, and full-resolution URL. General Yelp scrapers treat photos as an afterthought and cap out around 30 images per business; this Yelp photos scraper doesn't stop until the gallery does.

Use it to download all Yelp photos as a Yelp image scraper, a bulk Yelp photo downloader, or a Yelp photo API alternative — the official Yelp Fusion API returns at most 3 photos per business. Point it at business URLs, Yelp business IDs, or a search query + location, filter by category (food, drink, menu, interior, videos), and scrape Yelp pictures in seconds — no API key, no OAuth, no image cap.

Why use this Yelp photos scraper?

  • 📸 Full gallery, no cap — every photo on the business page, even 1,000+, well past the ~30-image limit of general Yelp scrapers
  • 🖼️ Bulk Yelp image scraper — download all Yelp photos and pictures across many businesses in one run
  • 🏷️ Rich metadata — caption, category, uploader, dimensions, and upload date for every shot
  • 🔗 Full-resolution image URLs — original o.jpg links, not compressed thumbnails
  • 🎯 Category filtering — pull only food, drink, menu, interior, or videos shots
  • 🎥 Photos and videos in one feed — direct MP4 links, poster thumbnails, and durations
  • 📥 Flexible input — business URLs, Yelp business IDs, or search query + location
  • 👤 Uploader profiles (optional) — who posted each shot, with review/photo/friend counts and Elite year
  • 🧾 Clean JSON/CSV/Excel output, or via API
  • 🔑 No Yelp API key or OAuth — just add a business URL and run

What data can you extract with this Yelp photo scraper?

For every photo or video in a business's gallery:

  • business_id — Yelp business ID
  • business_alias — Yelp URL slug (e.g. the-old-fashioned-madison)
  • business_url — link to the Yelp business page
  • category — the media category the gallery was scraped under
  • media_id — unique photo or video identifier
  • typephoto or video
  • caption — caption describing the media (if any)
  • date — upload date (ISO 8601)
  • url — full-resolution photo URL (null for videos)
  • width / height — image dimensions in pixels (null for videos)
  • share_url — link to the photo or video on Yelp
  • thumbnail_url — video poster image (null for photos)
  • video_url — direct MP4 URL (null for photos)
  • duration — video length in milliseconds (null for photos)
  • user — uploader profile (name, image, review/photo/friend counts, Elite year), included only when Include sensitive data is enabled

How to download Yelp photos

  1. Create a free Apify account — sign up at apify.com, no credit card required.
  2. Open the Yelp Photos Scraper — from the Apify Store or this page, click Try for free.
  3. Add your input — paste one or more Yelp business URLs (or aliases/IDs), or enter a search query + location to scrape every matching business. Optionally set a category and a max number of media items per business.
  4. Run the actor — click Start and watch the gallery stream into the dataset.
  5. Download your data — export as CSV, JSON, Excel, XML, or HTML from the Storage tab.

Input parameters

FieldTypeDescription
searchQueriesarraySearch terms (e.g. pizza, coffee) to find businesses. Combined with every searchLocations entry; each matching business's gallery is scraped.
searchLocationsarrayLocations to search in (e.g. Madison, WI). Used together with searchQueries.
businessUrlsarrayYelp business URLs to scrape media for. Use instead of or alongside aliases/IDs and/or search.
businessAliasesOrIdsarrayBusiness aliases (e.g. the-old-fashioned-madison) or IDs.
maxResultsPerSearchintegerMax businesses per search query + location combination. Default 10.
categorystringMedia category slug to filter by, e.g. food, drink, menu, videos. Defaults to all (the full gallery). Available slugs are business-specific and appear in the output when scraping all.
maxPhotosintegerMaximum number of photos and videos to fetch per business. Default 0 (the complete gallery). Set a cap to control cost on high-volume businesses.
includeSensitiveDatabooleanInclude uploader personal information (name, profile image, counts, Elite year). Default false.

Output example

Each dataset item is one photo or video. Example (a photo):

{
"business_id": "RJNAeNA-209sctUO0dmwuA",
"business_alias": "the-old-fashioned-madison",
"business_url": "https://www.yelp.com/biz/the-old-fashioned-madison",
"category": "all",
"media_id": "WnuUTbdmPde3zCaBORRrpA",
"type": "photo",
"caption": "Cheese curds in poutine",
"date": "2026-04-25T15:42:37+00:00",
"url": "https://s3-media0.fl.yelpcdn.com/bphoto/WnuUTbdmPde3zCaBORRrpA/o.jpg",
"width": 1995,
"height": 1995,
"share_url": "https://www.yelp.com/biz_photos/RJNAeNA-209sctUO0dmwuA?select=WnuUTbdmPde3zCaBORRrpA",
"thumbnail_url": null,
"video_url": null,
"duration": null,
"user": null
}

And a video (with Include sensitive data enabled):

{
"business_id": "RJNAeNA-209sctUO0dmwuA",
"business_alias": "the-old-fashioned-madison",
"business_url": "https://www.yelp.com/biz/the-old-fashioned-madison",
"category": "videos",
"media_id": "h83zxgXSvi4inSQ6POfNeQ",
"type": "video",
"caption": null,
"date": "2025-04-15T18:48:28+00:00",
"url": null,
"width": null,
"height": null,
"share_url": "https://www.yelp.com/biz_photos/RJNAeNA-209sctUO0dmwuA?select_video=h83zxgXSvi4inSQ6POfNeQ",
"thumbnail_url": "https://image.mux.com/iKjAMATs00fQeMXek3qWaVZGp7ekDdu700Yxbtx0077sY4/thumbnail.jpg?height=720&time=0",
"video_url": "https://stream.mux.com/iKjAMATs00fQeMXek3qWaVZGp7ekDdu700Yxbtx0077sY4/high.mp4",
"duration": 16066,
"user": {
"id": "CSQWcZoOuWfX-1iD5HLY_Q",
"name": "Casey W.",
"image": "https://s3-media0.fl.yelpcdn.com/photo/V8ixvP1Io44cFCe13rxoJQ/60s.jpg",
"friendCount": 1,
"reviewCount": 27,
"photoCount": 27,
"eliteYear": null
}
}

Every run is also available as CSV, Excel, JSON, XML, and HTML — all automatic Apify export formats, ready for spreadsheets, databases, or downstream pipelines.

How much does the Yelp photos scraper cost?

This actor is pay-per-result: $2.00 per 1,000 media items (one photo or video = one result). A typical restaurant gallery of 100 photos costs about $0.20. Apify's free tier includes $5 of monthly usage, enough to scrape roughly 2,500 photos before paying anything. You only pay for what you scrape — no subscriptions, no Yelp developer account, no per-seat licensing.

Use cases

  • Competitive analysis of a location — search a query + city (e.g. pizza in Chicago, IL) and audit every rival's photo gallery to compare how they present food, interiors, and ambiance.
  • Menu and dish research — pull menu and food photos to catalog offerings and pricing across a market.
  • Listing and gallery building — source visual content to power directories, aggregators, or travel sites.
  • Training data for computer vision — build labeled image datasets of dishes, storefronts, and interiors.
  • Brand monitoring — track which photos customers upload of your business and spot outdated or unflattering images.
  • Real estate and location scouting — review interior and exterior shots before visiting or leasing.
  • Marketing and social content — find high-performing user-generated imagery (with proper attribution/permissions).
  • Video content discovery — extract customer-shot MP4 clips for research or engagement analysis.

Integrations and API access

Run the actor programmatically with the Apify API or SDKs.

Python:

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('beatanalytics/yelp-photos-scraper').call(
run_input={
'searchQueries': ['pizza'],
'searchLocations': ['Chicago, IL'],
'maxResultsPerSearch': 20,
'category': 'food',
'maxPhotos': 200,
}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['url'])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('beatanalytics/yelp-photos-scraper').call({
businessUrls: [
{ url: 'https://www.yelp.com/biz/the-old-fashioned-madison' },
],
category: 'food',
maxPhotos: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((i) => i.url));

You can also trigger runs from Make, Zapier, or n8n, or wire up webhooks to push new media into your own systems automatically.

Frequently asked questions

Can I download all photos from a Yelp business?

Yes — that's the default. With the category left at all and maxPhotos at 0, the scraper paginates through every photo and video Yelp exposes for the business. Set maxPhotos only if you want to cap the count.

Does this scraper get videos too?

Yes. The media feed includes both photos and videos. Each item has a type field, and videos come with a video_url (direct MP4), a thumbnail_url poster, and a duration. Filter to videos to get only clips.

How do I filter photos by category?

Set the category input to a slug like food, drink, menu, interior, or outside. The available slugs differ per business — scrape with all first and the categories appear in Yelp's own gallery tabs; the slugs mirror those tabs.

Do I need a Yelp API key?

No. Unlike the official Yelp Fusion API, this actor needs no API key, no OAuth, and no Yelp developer account. And where the Fusion API returns at most 3 photos per business, this scraper downloads the full gallery — the only structured way to get every photo and video.

How do I find a business's alias or ID?

The alias is the slug in the Yelp URL — for https://www.yelp.com/biz/the-old-fashioned-madison, the alias is the-old-fashioned-madison. You can paste the full URL, the alias, or the internal business ID; the scraper resolves any of them.

Can I scrape multiple businesses at once?

Yes. Add several URLs, aliases, or IDs — or a search query + location — and the actor scrapes each matching business, tagging every media item with its business_id and business_alias. Businesses reached through more than one input are scraped only once.

Can I find businesses by search instead of pasting URLs?

Yes. Enter one or more searchQueries (e.g. pizza) and searchLocations (e.g. Chicago, IL); every combination is searched and the full gallery of each result is scraped. Use maxResultsPerSearch to control how many businesses per search.

Is there a limit on how many photos I can scrape?

No hard cap. Popular restaurants and hotels often have 1,000+ photos, and the scraper paginates through all of them. General Yelp scrapers typically stop at around 30 images per business — this one keeps going until the gallery ends. Use maxPhotos if you want to limit the count per business.

What image resolution do I get?

Photo url links point to the original full-resolution image (o.jpg). You can derive smaller sizes from the same URL if you need thumbnails.

The actor collects publicly visible data. You are responsible for how you use it — respect Yelp's terms, copyright, and applicable privacy laws, and obtain permission before republishing user-generated content.

What format is the output?

Datasets export to JSON, CSV, Excel, XML, and HTML. Use the format that fits your workflow — spreadsheets for quick review, JSON for pipelines.

How much does it cost?

$2.00 per 1,000 media items, with Apify's free monthly tier covering your first runs. See the cost section above.

Building a complete Yelp dataset? Combine this with our other Yelp tools: