Restaurant Discovery API by City avatar

Restaurant Discovery API by City

Pricing

from $1.50 / 1,000 restaurant records

Go to Apify Store
Restaurant Discovery API by City

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

Carlos Quiala

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

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 Dubai or Spain, or pass an exact geoId.
  • 📦 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 filtersminRating, 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

FieldDescription
queryCity / country / municipality name (e.g. Dubai, Spain)
geoIdExact TripAdvisor geo id (e.g. 295424) — overrides query
maxItemsCap on restaurants fetched (default 100)
getAllResultsIgnore maxItems and fetch the entire geo (auto-partitions)
includeSponsoredKeep paid listings (default true)
minRatingKeep only rating ≥ value (0–5)
minReviewsKeep only with ≥ N reviews
onlyOpenNowKeep only currently open
withReviewsAlso fetch full reviews per restaurant
reviewsLimitReviews per restaurant (empty = all)
proxyConfigurationUse 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

  1. Market research / BI — benchmark a city by rating, review volume, cuisine mix, price level and awards.
  2. Recommendation & travel apps — geo, hours, menus, snippets and delivery / booking signals out of the box.
  3. 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.
  • maxItems caps fetched rows; filters reduce the final count afterwards — raise maxItems if you need N rows after filtering.
  • Data comes from TripAdvisor's public pages; use responsibly and in line with applicable terms and local regulations.