Yelp Search Scraper API
for local businesses, ratings, and review highlights
Search Yelp for local businesses and get the results as clean JSON. One request returns each business with rating, review count, categories, address, and photos, for any keyword and location, with proxies handled for you.
of requests succeed
median response
95% finish faster
per 1k business searches at volume
Yelp keeps changing its markup. Your parser shouldn't care.
- Sponsored results mixed into organic
- Ratings and review counts nested
- Categories and tags shifting shape
- Proxies and captchas per search
- Re-parse listings after each redesign
One GET Request. That's the whole integration.
Start with just a query. Add more parameters when your use case needs them.
curl -G 'https://api.hasdata.com/scrape/yelp/search' \
--data-urlencode 'keyword=McDonald'\''s' \
--data-urlencode 'location=New York, NY' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json'keyword * Search Querylocation * Locationl Areastart Result Offsetdomain Domaincurl -G 'https://api.hasdata.com/scrape/yelp/place' \
--data-urlencode 'placeId=mcdonalds-new-york-386' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json'placeId * Place IDdomain DomainEvery business, one predictable schema
Each result carries the same keys, rating, reviews, categories, and a stable place ID you can pass to the place endpoint. Map the fields once and forget about it.
[
{
"position": 1,
"placeId": "aafpXHYvWq1g2uVhUJxRCw",
"placeAlias": "kamari-coffee-san-francisco",
"url": "https://www.yelp.com/biz/kamari-coffee-san-francisco",
"title": "Kamari Coffee",
"streetAddress": "333 Market St, San Francisco",
"categories": [{ "title": "Coffee & Tea" }],
"rating": 4.8,
"reviews": 15,
"tags": ["Hot and New"],
"snippet": "Thank goodness for Yelp because I would not have known about this spot...",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/bphoto/vtEdjPkPbPlHbKBl.jpg"
}
]position numberRank within the search results
placeId / placeAlias stringStable IDs to pass to the place endpoint
url stringBusiness page on Yelp
title / streetAddress stringBusiness name and address
categories object[]Category labels the business is listed under
rating / reviews numberAverage rating and review count
tags string[]Badges like Hot and New or Ad
snippet / thumbnail stringFeatured review excerpt and cover photo
// The place endpoint: full business profile by place ID or alias.
{
"name": "Kamari Coffee",
"url": "https://www.yelp.com/biz/kamari-coffee-san-francisco",
"phone": "(714) 202-7402",
"website": "http://kamaricoffee.co",
"address": "333 Market St, San Francisco, CA 94105",
"categories": ["Coffee & Tea"],
"rating": 4.8,
"reviews": 15,
"operationHours": { "lastUpdate": "Updated 2 months ago",
"hours": [ { "day": "Mon", "hours": "7:00 AM - 3:00 PM" } ]
},
"features": [ { "title": "Offers catering", "isActive": true } ],
"reviewHighlights": [
{ "author": "Michelle N.", "review": "The Iced Banana Bread Latte is their popular item..." }
]
}name / phone / website / address stringCore contact details
categories string[]Yelp categories for the business
rating / reviews numberAverage rating and review count
operationHours objectHours per day, with a last-updated note
features[] object[]Amenities like catering, each with an active flag
reviewHighlights[] object[]Featured review excerpts with their authors
// Sponsored businesses, kept in their own array so you can drop them in code.
[
{
"placeId": "HdZLo3v4zNVpzx1CQjg5MA",
"placeAlias": "capital-one-cafe-san-francisco-3",
"url": "https://www.yelp.com/biz/capital-one-cafe-san-francisco-3",
"title": "Capital One Cafe",
"phone": "+1-415-248-4920",
"price": "$",
"categories": [{ "title": "Cafes" }],
"rating": 4.3,
"reviews": 511,
"thumbnail": "https://s3-media0.fl.yelpcdn.com/offerphoto/abc.jpg"
}
]placeId / placeAlias stringStable IDs to pass to the place endpoint
title / phone / price stringBusiness name, phone, and price tier
categories object[]Category labels for the business
rating / reviews numberAverage rating and review count
thumbnail stringCover photo URL
An all-in-one scraping service
Every feature you need to collect data from thousands to millions of requests.
Discover similar
scrapers and APIs
to expand your projects.
Google Maps Search API
Local Market Research • $0.37 / 1k Request
Yellow Pages Scraper API
Local Business Data • $0.75 / 1k Request
Fits right into your stack.
Works with the tools you already use.
View Documentation ->Teams that deleted their scraper
Now it's the part of the pipeline they don't think about
HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.
We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.
Great web scraping API which is incredibly easy to use. It requires minimal effort to get up and running, and the documentation is very clear and helpful.
I needed to scrape some information they didn't already support, and they wrote the code for me right away, which was super nice of them.
We were particularly impressed with how easily we could integrate HasData into our existing workflow.
Plans that get cheaper at scale
Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.
Free
Startup
Business
RecommendedEnterprise
Monthly business search volume
Start with 200 free business searches. No credit card required.
Questions, answered
There's a free trial, 200 business searches with every field included and no credit card. After that it's paid by usage, from 5 credits per search. Yelp's own Fusion API is separate and rate-limited. This one just returns the search page as JSON.
Both. The search endpoint takes a keyword and location and returns matching businesses. The place endpoint takes a Yelp ID or alias and returns one business in full. The search results hand you the IDs you feed the place endpoint.
Per successful request, whether it's a search page or a single business. A failed request costs nothing.
One business search costs 5 credits. The unit price drops with volume, from about $1.23 down to $0.37 per 1,000 searches. Need more than the top plan covers? We'll set a custom rate.
JSON. Each business is a flat object with rating, reviews, categories, address, and a stable place ID, so it drops straight into a database or a lead list.
No. Requests run on HasData's infrastructure, so there's nothing to provision or maintain. You're responsible for using the results in line with each target site's terms and applicable law.
Yes, you can cancel your subscription at any time from your dashboard in a few seconds. Once cancelled, there are no recurring payments.
Your first business search
is minutes away
200 business searches free · no credit card