Restaurant Discovery API by City
Pricing
from $1.50 / 1,000 restaurant records
Restaurant Discovery API by City
Restaurants by city/country: ratings, reviews count, phone, address, coordinates, price, menu, cuisines, hours, delivery/booking, awards and review snippets. Optional full reviews.
Pricing
from $1.50 / 1,000 restaurant records
Rating
0.0
(0)
Developer
Carlos Quiala
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Share
Get every restaurant in a city, country or TripAdvisor geo with the data you actually need — ratings, contact details, location, menus, hours, cuisines, awards and review snippets — plus optional full reviews.
This is not "just reviews". It's a restaurant directory + local discovery + review intelligence dataset, ready for market research, recommendation apps and hospitality lead-gen.
Why this Actor
- 🌍 Search by name or geoId — type
DubaiorSpain, or pass an exactgeoId. - 📦 Complete records — 25+ fields per restaurant, consistent nulls, arrays for cuisines / schedule / snippets, numeric coordinates.
- 🔁 Beyond the 10k cap — large geos are recursively partitioned by facets with global de-duplication, so you get the full catalog.
- 🎯 Server-side filters —
minRating,minReviews,onlyOpenNow,includeSponsored, applied before optional review enrichment. - 💬 Optional full reviews — text, ratings per aspect, owner responses.
- 🛡️ Resilient — real-browser session warm-up, rate limiting, backoff, session rotation, proxy support.
Input
| Field | Description |
|---|---|
query | City / country / municipality name (e.g. Dubai, Spain) |
geoId | Exact TripAdvisor geo id (e.g. 295424) — overrides query |
maxItems | Cap on restaurants fetched (default 100) |
getAllResults | Ignore maxItems and fetch the entire geo (auto-partitions) |
includeSponsored | Keep paid listings (default true) |
minRating | Keep only rating ≥ value (0–5) |
minReviews | Keep only with ≥ N reviews |
onlyOpenNow | Keep only currently open |
withReviews | Also fetch full reviews per restaurant |
reviewsLimit | Reviews per restaurant (empty = all) |
proxyConfiguration | Use Apify Residential (prefilled) |
Minimal run:
{ "query": "Dubai", "maxItems": 100, "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] } }
Output
One item per restaurant in the dataset. Real example (trimmed):
{"geo_id": 295424,"location_id": 1062228,"name": "Fish Market","url": "https://www.tripadvisor.com/Restaurant_Review-g295424-d1062228-Reviews-Fish_Market-Dubai_Emirate_of_Dubai.html","rating": 4.6,"review_count": 1147,"telephone": "+971 4 205 7033","full_address": "2nd Floor, Plaza Building, Baniyas Road, Deira, Dubai 0000 United Arab Emirates","postal_code": "0000","country": "United Arab Emirates","parent_geo": "Dubai","parent_geo_id": 295424,"latitude": 25.265236,"longitude": 55.31004,"price_range": "$$$$","menu_url": null,"cuisines": ["Seafood"],"establishment_types": ["Restaurants"],"open_status": "OPEN","open_status_text": "Open now","has_delivery": null,"has_reservation": null,"is_sponsored": false,"is_premium": false,"award_type": "COE","award_year": 2025,"thumbnail": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/23/5d/a7/72/fish-market-restaurant.jpg?w={width}&h={height}&s=1","schedule": { "mon": [{ "open_time": "12:30:00", "close_time": "23:00:00" }], "tue": "..." },"review_snippets": [{"text": "You can pick from a wide variety of fish seabass, snapper, salmon to calamari...","url": "https://www.tripadvisor.com/ShowUserReviews-g295424-d1062228-r1033153743-Fish_Market-Dubai_Emirate_of_Dubai.html"}],"reviews": []}
When withReviews is enabled, each restaurant's reviews[] is filled with
real review objects:
{"review_id": 939549784,"restaurant_name": "Swiss Butter","rating": 5,"title": "Amazing!","text": "The food was delicious and the service was amazing. Everyone was so friendly. Their secret sauce was incredible, i dipped literally everything in it. Can't wait to go back.","language": "en","published_date": "2024-02-26","trip_type": "FRIENDS","user_name": "Julia Marie C","user_contributions": 2,"additional_ratings": { "Value": 5, "Service": 5, "Food": 5, "Atmosphere": 5 },"mgmt_response_text": "Thank you for your feedback💚","mgmt_response_date": "2024-02-27","photos": []}
Use cases
- Market research / BI — benchmark a city by rating, review volume, cuisine mix, price level and awards.
- Recommendation & travel apps — geo, hours, menus, snippets and delivery / booking signals out of the box.
- Hospitality lead-gen — phone, address, URL and type for outreach or
enrichment, filtered by
minReviews/minRating.
How it works & limitations
- A real browser warms the session (solving TripAdvisor's datadome challenge), then fast HTTP pagination reuses that session.
- Geos above TripAdvisor's ~10,000 cap are split recursively by facets (neighbourhoods → cuisines → …) and de-duplicated globally.
- Use Apify Residential proxies. Datacenter IPs are challenged and may return no data. The input prefills the residential group.
maxItemscaps fetched rows; filters reduce the final count afterwards — raisemaxItemsif you need N rows after filtering.- Data comes from TripAdvisor's public pages; use responsibly and in line with applicable terms and local regulations.