Zomato Reviews Scraper avatar

Zomato Reviews Scraper

Pricing

$2.60 / 1,000 reviews

Go to Apify Store
Zomato Reviews Scraper

Zomato Reviews Scraper

Collect public Zomato restaurant reviews from the URLs you choose. Get full review text, ratings, reviewer details, and available comments and management replies for feedback research.

Pricing

$2.60 / 1,000 reviews

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Share

🍽️ Read Zomato restaurant feedback in one dataset

Restaurant teams and researchers can collect public Zomato reviews from restaurant URLs. Get full review text, ratings, and available reviewer details, comments, and management replies to study customer feedback without copying each review by hand.

Use cases

📄 Zomato review text and source details

Each saved row is one public restaurant review. It includes full text and a restaurant link. Other fields appear when Zomato provides them, such as ratings, posting times, dining or delivery labels, reviewer profiles, likes, tags, photo links, comments, and management replies.

The Actor returns source data. It does not calculate sentiment scores or restaurant summaries, and it does not download photos.

▶️ Collect reviews from your restaurant URLs

  1. Add one or more Zomato restaurant or review-page URLs.
  2. Set a review limit per restaurant, or leave it empty to collect all available reviews until the source is exhausted.
  3. Start the run and open Restaurant reviews in the output.

If one restaurant is unavailable, the run continues with the other URLs. Public access and available review counts can vary by restaurant.

⚙️ Input

Input fields

FieldTypeWhat it does
startUrlsarray of objectsRequired list of Zomato restaurant or review-page URLs. Each object has a url value.
maxReviewsPerRestaurantintegerOptional positive review limit for each restaurant. Leave it empty to return all available reviews until the source is exhausted. The source may provide fewer reviews than requested.

Successful default input

This public input is copied from the successful hosted default-input run.

{
"startUrls": [
{
"url": "https://www.zomato.com/bangalore/meghana-foods-jayanagar"
}
],
"maxReviewsPerRestaurant": 10
}

🧾 Output

Dataset link

FieldTypeWhat it does
reviewsstringLink to the collected restaurant reviews in a table.

Review fields

Only restaurantUrl and text are required. Other fields may be absent when the source does not provide them.

FieldTypeWhat it does
reviewIdstringSource ID for matching the review across runs.
reviewUrlstringSource link to the review.
restaurantUrlstringSource link to the restaurant.
restaurantIdstringSource ID for grouping reviews from the same restaurant.
restaurantNamestringRestaurant name shown by Zomato.
textstringFull review text shown by the source.
ratingnumberSource-reported review rating.
postedTimestringPosting date or relative time shown by the source.
experiencestringDining or delivery category shown for the review.
reviewerobjectPublic reviewer details.
reviewer.idstringSource ID for the reviewer.
reviewer.namestringReviewer name.
reviewer.profileUrlstringSource link to the reviewer profile.
reviewer.imageUrlstringSource link to the reviewer image.
reviewer.reviewCountintegerReview total reported for the reviewer.
reviewer.followerCountintegerFollower total reported for the reviewer.
likeCountintegerReview like total reported by the source.
commentCountintegerComment total reported by the source, which may include comments not returned here.
tagsarray of stringsReview tags shown by the source.
photoUrlsarray of stringsSource links to attached review photos.
commentsarray of objectsAvailable public comments.
comments[].idstringSource ID for a comment.
comments[].textstringFull comment text.
comments[].postedTimestringComment posting date or relative time.
comments[].authorobjectPublic comment author details.
comments[].author.idstringSource ID for the comment author.
comments[].author.namestringComment author name.
comments[].author.profileUrlstringSource link to the comment author profile.
managementResponsesarray of objectsAvailable public restaurant management replies.
managementResponses[].textstringFull reply text.
managementResponses[].postedTimestringReply posting date or relative time.
managementResponses[].authorNamestringName shown for the person or restaurant replying.
externalReferencesarray of objectsExternal references attached to the review by the source.
externalReferences[].urlstringSource link to the external reference.
externalReferences[].titlestringReference title shown by the source.

Example review

This complete row is copied from a successful run on the current beta build. Source text may contain HTML tags.

{
"reviewId": "37792563",
"reviewUrl": "https://www.zoma.to/vpmnke",
"restaurantUrl": "https://www.zomato.com/ahmedabad/behrouz-biryani-vejalpur",
"restaurantId": "18371311",
"restaurantName": "Behrouz Biryani",
"text": "Biryani is An Emotion<br/>Behrouz serves one of the Finest Biryani made with all the Amazing spices which makes you Drool while opening.××××××××××××××××××××××××××××××××××××××××××××××<br/> <br/>I ordered Dum Gosht Biryani (Boneless)<br/>Read The Full Review On My Blog :)",
"rating": 4,
"postedTime": "Jul 24, 2018",
"experience": "dining",
"reviewer": {
"id": "48022357",
"name": "Durgam",
"profileUrl": "https://www.zomato.com/RuthwikKumar",
"imageUrl": "https://b.zmtcdn.com/data/user_profile_pictures/927/3e91d5cfb17c1fa75dcb4f736358d927.jpg?fit=around%7C100%3A100&crop=100%3A100%3B%2A%2C%2A",
"reviewCount": 0,
"followerCount": 2890
},
"likeCount": 4,
"commentCount": 1,
"tags": [],
"photoUrls": [],
"comments": [],
"managementResponses": [
{
"text": "We hereby declare you as an official dweller of The kingdom of Behrouz!! (AA)",
"postedTime": "Aug 26, 2020",
"authorName": "Behrouz Biryani"
}
],
"externalReferences": [
{
"url": "https://www.zomato.com/spoonback?u=https%3A%2F%2Fnomnomfoodieinzo.wordpress.com%2F2018%2F07%2F24%2Fbehrouz-biryani%2F&r=37792563&to=48022357&k=08b63067f41044368e324d3b565a1622",
"title": "Read full post on https://nomnomfoodieinzo.wordpress.com/2018/07/24/behrouz-biryani/"
}
]
}

💳 Pricing

One review event is charged for each public restaurant review with full text saved to your dataset. The current event price appears in the pricing panel. A run with no saved reviews does not trigger this event.

🔌 Integrations

Open the review dataset in Apify, export it as JSON or CSV, or read its rows through the Apify dataset API for your own analysis.

❓ FAQ

What happens if one restaurant is unavailable?

The run continues with the other restaurant URLs. Access to every review or a full review history is not guaranteed.

Why can the comment total be larger than the comments array?

The source may report comments that are not publicly returned. The row keeps the source total and the available public comments.

Can I collect all available reviews?

Yes. Leave the review limit empty to collect all available reviews until the source is exhausted. A number sets a separate limit for each restaurant.

Does it find restaurants by city or keyword?

No. Add the restaurant or review-page URLs you want to read.

Does it score the feedback or download photos?

No. It returns source review data for your own analysis. Photos are returned as links when available.

📝 Changelog

v0.0 (04-10-2026)

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré